【问题标题】:hide a range of color from colorbar从颜色栏中隐藏一系列颜色
【发布时间】:2014-06-03 01:12:58
【问题描述】:

我有一个包含从 0 到 1 的值以及 NaN 内容的映射。 我设法在 MATLAB 中使用以下代码定义了类似地图的轮廓:

imagesc(map)
contourcmap('jet',[-0.3 0 0.3 0.6])
myMap = [[1 1 1]; ...
         [1 0 0]; ... 
         [0 1 0]; ... 
         [0 0 1]];
colormap(myMap);
cbar = colorbar

我得到的是这样的地图:

但是我想在颜色条上只显示红色、绿色和蓝色并摆脱白色范围(即 [-0.3,0))但不想更改主地图上的色阶.这在matlab中可以吗?

【问题讨论】:

  • repmats 似乎是多余的。
  • 你说得对,我忘记改正了。

标签: matlab colorbar


【解决方案1】:

colorbar 是一个axes object,因此您可以修改它的properties,包括颜色限制。这是通过'YLim' 属性完成的,如下所示:

colorbar('YLim', [0 0.6]);

或者您可以随时使用对象句柄进行修改:

cbar = colorbar;
set(cbar, 'YLim', [0 0.6]);

【讨论】:

  • 实际上当我使用hcont = contourcmap('jet',[-0.2:0.2:0.6],'colorbar','on','Location', 'horizontal'set(hcont,'YLim',[0 0.6]) 时它不起作用。你知道原因吗?
  • 因为hcontcontourcmap 对象的句柄,而不是colorbar 对象。如果你想修改颜色条的属性,你必须通过h = colorbar;获得一个单独的句柄。
  • 是的,但是当我使用 colorbar 时,ytick 上的值不在我想要的确切位置,几乎没有移动。对于contourcmaphandel,我使用了不同的比例,例如set(hcont,'XLim',[1.5 9.5])),它可以工作,但不知道为什么会这样。
  • 您也可以通过轴属性 ('YAxisLocation') 选择刻度位置。看看答案中的链接。
猜你喜欢
  • 1970-01-01
  • 2015-05-07
  • 2015-08-03
  • 1970-01-01
  • 2018-08-12
  • 2015-11-24
  • 2011-12-12
  • 1970-01-01
  • 2018-08-07
相关资源
最近更新 更多