Matlab自定义X轴刻度标签:保留自动刻度值的获取方法
获取Matlab自动生成的X轴刻度值并自定义标签
其实操作很简单,你可以通过xticks()函数直接获取当前自动生成的刻度位置(也就是你提到的tickValues),具体步骤如下:
- 先完成基础绘图:
y = data; x = timeInSec; plot(x , y); - 调用不带参数的
xticks(),就能获取当前显示的自动刻度位置:tickValues = xticks; - 接着用你自己的逻辑把这些刻度值转换成小时分钟格式的标签,再设置回坐标轴:
timeInHrMin = datestr(tickValues, 'HH:MM'); xticklabels(timeInHrMin);
额外提个小细节:如果之后你调整图像窗口大小或者进行缩放操作,Matlab可能会重新自动生成刻度。要是想固定刻度位置不让它变动,可以在获取tickValues后,再加一行xticks(tickValues)把刻度位置锁定,这样后续调整窗口时刻度位置就不会改变了:
tickValues = xticks; xticks(tickValues); % 固定刻度位置 timeInHrMin = datestr(tickValues, 'HH:MM'); xticklabels(timeInHrMin);
内容的提问来源于stack exchange,提问作者Steeven




