2016-09-20 43 views
0

下面是使用imagesc命令以縮放顏色顯示矩陣的相當簡單的代碼。問題是,最後的數字已經貼錯標籤和標籤的犯規顯示下半年(它應該是從1到21,但它是從1到10)爲什麼matlab跳過第二半標籤?

figure; 
imagesc(magic(21)); 
set(gca,'XTickLabel',{'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'}) 
set(gca,'YTickLabel',{'1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11' '12' '13' '14' '15' '16' '17' '18' '19' '20' '21'}) 

enter image description here

我使用Ubuntu 16.04和Matlab 2016b。

回答

3

您必須爲這些刻度指定位置,而不僅僅是添加標籤。

figure; 
imagesc(magic(21)); 
ax1 = gca; 
ax1.YTick = 1:21; 
ax1.XTick = 1:21; 
ax1.XTickLabels = {'One','Two','Three',... 
ax1.YTickLabels = {'Red','Brown','Green',... 

此外,由於Matlab 2014b Mathworks創建了一個新的圖形系統。您可以直接訪問圖形作爲對象,而不是在任何地方使用setget

+0

很好的答案。現在如果爲標籤而不是數字,我想設置一個字符串列表(例如幾個月)? – Woeitg

+0

@Woeitg你誤會了。 'Xtick'告訴你在哪裏放置標籤,'Xticklabels'說這些標籤寫的是什麼。你需要使用兩者。 –

+0

@Woeitg不錯;)接受最能幫助你的答案;) –

7

您設置了標籤文本,但沒有設置位置,因此它會自動放置標籤位置,然後替換文本。

要設置標籤的位置,首先做:

set(gca,'XTickLabel',{'banana', 'platano', 'potato',... }) 
+0

你能用完整的代碼改進你的答案嗎? – Woeitg

+0

@Woeitg我特別留下來說明你的標籤不需要他們的位置文字。你可以把任何東西放在'...'中,例如'1:10:100',但我認爲在你的情況下,你需要'1:21' –

1

您可以測試此:

set(gca,'XTick',...) 

然後你就可以在那些無論你preffer標籤寫enter image description here

imagesc(magic(21)); 
set(gca,'XLim',[1 21]) 
set(gca,'XTick',[1:1:21]) 
set(gca,'XTickLabel',{'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'}) 
set(gca,'YLim',[1 21]) 
set(gca,'YTick',[1:1:21]) 
set(gca,'YTickLabel',{'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'}) 
+0

沒有xlim和ylim它也顯示了相同的結果 – Woeitg

+0

是的,但如果你不使用'XTick',那麼'XLim'會有點像'[0.5 21.5]'。 – NKN

+0

我看,有一個區別,但是我更喜歡在沒有Xlim和YLim的情況下使用它。至少它看起來更好:-) – Woeitg

相關問題