【问题标题】:How to change image axis labels如何更改图像轴标签
【发布时间】:2013-02-10 20:09:17
【问题描述】:

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

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)。

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

【问题讨论】:

  • 嗨。你必须比 “...但它没有工作” 提供更多的信息。你能提供一个期望结果的例子吗?
  • M_Map 对这类事情很有用:eos.ubc.ca/~rich/map.html

标签: matlab matlab-figure


【解决方案1】:

根据您的问题,我推断您希望将 x 轴标签从 -180 设置为 180,将 y 轴标签从 -90 设置为 90。为此,您应该更改 XTickLabel 和 @987654324轴对象的@ 属性(请注意,您还需要通过相应地修改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(:)))

它应该是这样的:

【讨论】:

【解决方案2】:

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

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

要更改轴的标签ticks,使用类似的东西:

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

使用imagesc,您可能需要添加这一行:

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

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

【讨论】:

  • 我试过你的脚本,但结果看起来不像我想要的结果(世界地图)
  • 我无法回答这个评论。
猜你喜欢
  • 2018-11-16
  • 2013-10-23
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 2011-05-04
  • 2015-12-09
相关资源
最近更新 更多