Matlab colorbar有两个轴

时间:2015-09-14 20:24:48

标签: matlab matlab-figure colorbar

我使用地图工具箱创建了一个等高线图,其中contourfm() contourcbar()caxis()标记了颜色条。将第二个轴添加到颜色条以使其看起来像这样的最佳方法是什么?

A mock up of a two-axis colorbar

如果它有所作为,我在RHEL6上使用-nodesktop和-nodisplay运行Matlab v2014b。提前谢谢!

编辑1:我使用了Benoit_11的答案来提出一些示例代码来重现问题。等待创建绘图,然后重新调整图形窗口的大小。您会看到第二个颜色条轴(左侧)没有与图的其余部分正确缩放。任何建议来解决这个问题将非常感谢!

figure('Color','white')
worldmap('north america')
load topo
R = georasterref('RasterSize',[180 360], 'Latlim',[0 80],'Lonlim',[-160 -50]);

contourfm(topo, R, -7000:1000:3000)
caxis([-8000 4000])


hBar1 = contourcbar
contourcmap('jet')
caxis([1 10])
BarPos = get(hBar1,'position');
ylabel(hBar1,'Total electron content','FontSize',12);
haxes = axes('position',BarPos,'color','none','ytick',0:5:15,'ylim',[0 
15],'xtick',[]);
ylabel('Approximate position error','FontSize',12)

1 个答案:

答案 0 :(得分:1)

您可以使用与第一个颜色条相同的位置创建第二个轴,并将其ylabel属性设置为您想要的标题,并将ytick属性设置为您需要的属性。

虚拟例子:

%// Create colorbar
hBar1 = colorbar;

%// Set its ylabel property
ylabel(hBar1,'Total electron content','FontSize',12);

%// Get its position
BarPos = get(hBar1,'position');

%// Create an axes at the same position
haxes = axes('position',BarPos,'color','none','ytick',0:5:15,'ylim',[0 
15],'xtick',[]);

%// Set its ylabel property
ylabel('Approximate position error','FontSize',12)

输出(裁剪):

enter image description here

您只需要确定颜色条的正确位置,使其不与包含图形的轴重叠。请注意,左下方的黑线来自空轴,因此在您的情况下它不会出现。

希望有所帮助!

相关问题