你能告诉我如何更改轴的“乘数”吗?我的意思是图片中圈出来的值,比如说我想要x10^3而不是x10^4。
ax = get(gca);
ax.YAxis.Exponent = -3;
这里有一个稍微有些棘手的解决方案:
YTickMode
设置为manual
。YTickLabel
。如下所示:
set(gca, 'YTickMode', 'manual');
set(gca, 'YTickLabel', get(gca,'YTick') / 1000);
text(0, 1.02 * get(gca,'YLim')(2), 'x 10^3');
在第三行尝试使用乘数1.02
来调整你的文本位置。
随着 sprintf
格式化。
tick2text(gca,'yformat', @(x) sprintf('%2u', x/10^9)
感谢 @Macduff。 - kozooh将您的数据缩小0.1倍,这样您就得到了想要的乘数。
然后覆盖刻度标签,使刻度1.0标记为10,以此类推。
num2str
会创建一个新的字符串数组,而不是单行字符串。我还注意到,num2str
是多余的。现在请再试一次。 - vz_text(0, 1.02 * get(gca,'YLim')(2), 'x 10^3');
更改为tmp = get(gca,'YLim'); text(0, 1.02 * tmp(2), 'x 10^3');
。也许我的版本不接受您的索引表达式类型。无论如何,这也是可以接受的答案。谢谢! - kozoohtext
中使用'{\times}10^3'
。 - sancho.s ReinstateMonicaCellio