我正在尝试用一些纬度/经度更改图像轴标签,但我找不到怎么做。我尝试了一些基本命令,如:
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:
答案 0 :(得分:11)
根据您的问题,我推断您要将x轴标签设置为-180到180,y轴标签设置为-90到90.为此,您应该更改XTickLabel
和轴对象的YTickLabel
属性(请注意,您还需要通过相应地修改XTick
和YTick
属性来调整每个轴中的刻度数。)
因此,假设您的图像存储在矩阵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(:)))
这应该是这样的:
答案 1 :(得分:2)
不能说我完全明白你的意思,所以这里。要将label
添加到轴,请使用xlabel
和ylabel
,例如:
xlabel('time [sec]'); ylabel('Amplitude');
要更改轴刻度的标签,请使用以下内容:
plot(1:4)
set(gca,'Xtick',1:4,'XTickLabel',{'a', 'b', 'c', 'd'})
使用imagesc
您可能想要添加以下内容:
set(gca, 'YDir', 'reverse');
这将设置左下角Ticks的数字增长...