使用yticklabes matlab添加colorbar

时间:2014-12-04 14:31:44

标签: matlab colorbar

我运行Matlab R2013b

我想在我的图表中运行一个颜色条,而不是指定的4个标签

figure
plot(1:100,rand(100))
hcb = colorbar('YTickLabel',{'Sleeping','Very light','Light','Moderate to vigorous'});

我得到6个标签:{'Sleeping','Very light','Light','Moderate to vigorous','Sleeping','Very light'}

2 个答案:

答案 0 :(得分:4)

默认情况下,

colorbar使用64色的色彩图。这导致Matlab默认情况下在颜色栏中放置6个刻度,即10,20,... 60。

设置'Yticklabel'属性时,如果传递的字符串少于yticks的数量,则循环使用这些字符串。这就是你观察到的行为。

解决方法是将yticks的数量减少到4,以便它与您拥有的字符串数量相匹配。您可能还想使用4色colormap:

figure
plot(1:100,rand(100))
colormap(hsv(4)) %// example colormap with 4 colors.
hcb = colorbar;
set(hcb, 'Ytick', [1:4]+.5); %// 4 yticks, each "in the middle" of one color
set(hcb, 'YTickLabel', {'Sleeping','Very light','Light','Moderate to vigorous'});

enter image description here

答案 1 :(得分:1)

我认为您还需要指定相同长度的向量Ticks,例如(R2014b的语法,对于R2013b可能略有不同):

colorbar('Ticks',[0 0.3 0.6 0.9],...
         'TickLabels',{'Sleeping','Very light','Light','Moderate to vigorous'})