7

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

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

但出现了这些表达:

imagesc(data),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)。

我想要的结果是图像看起来像一张世界地图,以标线/网格线为轴。它应该看起来像这样

在此处输入图像描述

4

2 回答 2

12

根据您的问题,我推断您希望将 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(:)))

这应该是这样的:

在此处输入图像描述

于 2013-02-25T16:34:37.290 回答
3

不能说我完全理解你的意思,所以就这样吧。要将 a 添加label到轴上,请使用xlabeland ylabel,例如:

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

要更改轴刻度的标签,请使用以下内容:

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

imagesc您合作可能需要添加此行:

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

这将设置刻度上的数字在左下角增长......

于 2013-02-25T16:15:37.550 回答