如何更改图像轴标签

时间:2013-02-25 16:02:31

标签: matlab matlab-figure

我正在尝试用一些纬度/经度更改图像轴标签,但我找不到怎么做。我尝试了一些基本命令,如:

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

但是这些表达出现了:

  

imagesc(数据),axis(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

2 个答案:

答案 0 :(得分:11)

根据您的问题,我推断您要将x轴标签设置为-180到180,y轴标签设置为-90到90.为此,您应该更改XTickLabel和轴对象的YTickLabel属性(请注意,您还需要通过相应地修改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 :(得分: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的数字增长...