2015-04-21 269 views
0

我需要在Matlab中用離散的colorbar繪圖。我這樣做以下列方式:如何在Matlab中對齊colorbar刻度線標籤和線條

data = randi(10, 20); 
imagesc(data) 
my_colormap = rand(10, 3); 
colormap(my_colormap) 
cb = colorbar 
set(cb,'YTickLabel',{'A';'B';'C';'D';'E';'F';'G';'H';'I';'J';}) 

現在我的問題是,彩條刻度標記和小線路中的彩條沒有很好地對齊。我怎樣才能連彩條刻度標記和所述小線更好,如以下示出的PIC:

enter image description here

回答

1

的TickLabel在彩條的每一個對應於一個值(蜱)。要將TickLabels放置在中間,您需要將刻度線放在中間。爲了使這種動態(以便它在調整圖像大小時不會改變)我有點棘手,我記得,我不記得。要設置蜱只是一次並不難,雖然,

set(hCbar,'YTicks',RightYTicks); 

編輯:

根據要求,我將發佈一個例子。這應該暗示要做什麼。

x = 1:10; 
y = 1:10; 
cmap = jet(10); 

[x, y] = meshgrid(x,y); %x and y grid 

c = x-0.1; %Set color code to increase to the right 
hFig = figure; 
scatter(x(:),y(:),10,c(:),'filled'); % Simpler for the example 
set(gca(hFig),'CLim',[0,10]); 
colormap(cmap); 
hCbar = colorbar; 
set(hCbar,'YTicks',0.5:9.5); 
set(hCbar,'YTickLabels',{'A','B','C','D','E','F','G','H','I','J'}); 

對於較新的matlab版,該YTicks可能已更名爲TicksYTickLabels可稱爲TickLabels

+0

謝謝你的幫助,我可以問問,什麼是hCb和RightYTicks?我對Matlab還不是很熟練x)我猜我的代碼中hCb是cb?是否正確使用值的向量?說... RightYTicks = 1:10?你能給我一個MWE嗎? :) – jjepsuomi

+0

@jjepsuomi對不起,hCb是彩條的句柄,RightYTicks是正確的YTicks。因此,例如對於顏色條中的7種顏色,您希望在0.5:1:6.5處具有滴答。 – patrik

+0

謝謝=)欣賞它 – jjepsuomi

相關問題