将刻度标签更改为' 10 ^ - 样式'外观

时间:2015-07-21 20:35:21

标签: matlab axis-labels

虽然对于这类问题有很多已回答的问题,但我无法为我的确切问题找到合适的解决方案。反正。

我尝试格式化我的刻度标签,如下例所示:

我已经发现'sprintf'命令提供了改变刻度格式的可能性。我最接近我想要的是电子符号'由以下命令触发:

set(ax,'YTickLabel',sprintf('%2.0e|',yticks))

但是,我希望我的标签看起来就像示例图片中所示。有没有一种简单的方法可以做到这一点?

非常感谢您提前,

2 个答案:

答案 0 :(得分:3)

您可以使用Latex格式和sprintfc来生成您想要的内容。 (实际上你可能根本不需要sprintfc,但这是一种很好的方法,可以用一行中的数字创建一个字符串的单元格数组。):

set(ax,'YTickLabels',sprintfc('10^{%i}',yticks)

在一般示例中(此处使用x轴格式化):

clear
clc
close all

x = 0:100000;
y = log(x);

figure
semilogx(x,y)

xt = get(gca,'XTick');

set(gca,'XTickLabels',sprintfc('10^{%i}',0:numel(xt)-1))

输出以下内容:

enter image description here

答案 1 :(得分:2)

我错过了什么吗?为什么不使用semilogy

x = -3:0;
y = 10.^x;
semilogy(x, y);
set(gca, 'YMinorGrid', 'on')

Graph