我运行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'}
答案 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'});
答案 1 :(得分:1)
我认为您还需要指定相同长度的向量Ticks
,例如(R2014b的语法,对于R2013b可能略有不同):
colorbar('Ticks',[0 0.3 0.6 0.9],...
'TickLabels',{'Sleeping','Very light','Light','Moderate to vigorous'})