2013-02-25 162 views
5

我正在嘗試更改某些緯度/經度的圖像軸標籤,但找不到如何操作。我嘗試了一些基本的命令,如:如何更改圖像軸標籤

imagesc(data) 
axis(meshgrid([-180:20:180],[-90:20:90])) 
colorbar 

但這些表達出現了:

於imagesc(數據),軸(meshgrid([ - 180:20:180],[ - 90:20:90 ])),colorbar ||的操作數並且& &運算符必須可以轉換爲邏輯標量 的值。

Error in axis>allAxes (line 448) 
result = all(ishghandle(h)) && ... 

Error in axis (line 57) 
if ~isempty(varargin) && allAxes(varargin{1}). 

任何人可以幫助我嗎?僅供參考,我的圖像軸標籤是數據順序(從0到N)。

我期望的結果是圖像看起來像一個世界地圖,與刻度/網格線作爲軸。應該看起來像this

enter image description here

+1

嗨。你必須比_多一點信息「......但它沒有工作」 _。你能提供一個期望結果的例子嗎? – 2013-02-25 16:06:13

+0

M_Map是這樣的事情有用:http://www.eos.ubc.ca/~rich/map。html – nkjt 2013-02-25 16:22:14

回答

10

從你的問題我推斷你要設置x軸標籤從-180到180,y軸標籤從-90到90.要做到這一點,你應該改變軸對象的XTickLabelYTickLabel屬性(請注意,您還需要通過相應修改XTickYTick屬性來調整每個軸刻度數)。

因此,假設您的圖像存儲在矩陣data和你imagesc(data)顯示它,這裏是如何改變x軸的刻度標籤是從-180到180:

xticklabels = -180:20:180; 
xticks = linspace(1, size(data, 2), numel(xticklabels)); 
set(gca, 'XTick', xticks, 'XTickLabel', xticklabels) 

同樣,這裏是如何改變y軸的刻度標籤爲-90〜90:

yticklabels = -90:20:90; 
yticks = linspace(1, size(data, 1), numel(yticklabels)); 
set(gca, 'YTick', yticks, 'YTickLabel', flipud(yticklabels(:))) 

這是它應該是什麼樣子:

enter image description here

+1

它的工作原理,非常感謝您的幫助:) – 2013-02-25 16:54:45

+0

我無法在這裏重現所有垂直和/或水平翻轉的提議http://stackoverflow.com/q/39923300/54964 – 2016-10-07 18:23:49

2

不能說我完全理解你的意思,所以這裏去。要將label添加到軸使用xlabelylabel,例如:

xlabel('time [sec]'); ylabel('Amplitude'); 

要更改軸的標籤,使用類似:

plot(1:4) 
set(gca,'Xtick',1:4,'XTickLabel',{'a', 'b', 'c', 'd'}) 

imagesc工作,你可能想添加此行:

set(gca, 'YDir', 'reverse'); 

這將設置在Ticks上的數字增長爲左下角...

+0

我試過了你的腳本,但結果看起來不像我想要的結果(世界地圖) – 2013-02-25 16:29:37

+0

我很難回答這個問題。 – bla 2013-02-25 16:45:01