2014-12-04 44 views
0

我跑Matlab的R2013b加彩條與yticklabes matlab的

我想運行一個彩條到我的圖形,但不是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'}

回答

4

colorbar默認使用的64種顏色的顏色表一。這會導致Matlab在默認情況下在色條中放置6個yticks,即10,20,... 60.

當您設置'Yticklabel'屬性時,如果您傳遞的字符串少於yticks的數量,則這些字符串循環。這是你觀察到的行爲。

解決方案是將yticks的數量減少到4,以便它匹配您擁有的字符串數量。您可能還需要使用4色的顏色表:

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

+0

感謝。我添加了一些空的標籤...這不完美但可以接受。 – gabboshow 2014-12-04 14:43:06

+1

對於默認的'jet'色彩地圖,你可以使用:'set(hcb,'YTick',[1:4] * 64/5);' – 2014-12-04 14:51:29

+0

謝謝!是否有可能仍然使用色彩地圖的所有顏色? – gabboshow 2014-12-04 14:56:11

1

我想你還需要指定長度相同的矢量Ticks,例如(語法R2014b,可以是用於R2013b略有不同):

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

這個工程的MATLAB 2014可惜不是2013年 – gabboshow 2014-12-04 14:40:34