Matlab中如何设置垂直轴数值自下向上递增
Matlab imagesc垂直轴显示异常修复方案
问题根因
imagesc 默认采用矩阵索引坐标系:矩阵的第一行对应绘制图像的顶部,因此Y轴默认从上到下数值递增,和常规笛卡尔坐标系自下向上递增的逻辑相反。你之前使用的flipr()是对矩阵做左右翻转,自然无法调整垂直轴的显示顺序。
修复方法
有两种常用方案可选,优先推荐第一种,无需修改原始数据:
方案1:直接修改Y轴方向
在imagesc代码后添加一行设置轴方向的语句即可:
clear all;close all;clc x = linspace(pi,2*pi,20); y = linspace(0,pi,20); C = [1 2]; imagesc(x,y,C) colorbar % 新增语句,将Y轴设置为自下向上递增的常规模式 set(gca,'YDir','normal')
方案2:翻转输入的颜色矩阵
如果需要保持imagesc默认的轴方向逻辑,也可以对颜色矩阵做上下翻转:
imagesc(x,y,flipud(C))
该方案效果和方案1一致,只是修改对象为输入数据而非坐标轴属性。
内容的提问来源于stack exchange,提问作者Maximus Su
相关产品推荐
相关产品推荐

