将刻度标签更改为“10^ - 样式”外观
Alter tick labels to a '10^ - style' appearance
虽然对这类问题有很多回答,但我无法找到适合我的确切问题的解决方案。不管怎样
我尝试格式化我的刻度标签,如下例所示:
我已经发现“sprintf”命令提供了改变刻度格式的可能性。我最接近我想要的是由以下命令触发的 'e-notation':
set(ax,'YTickLabel',sprintf('%2.0e|',yticks))
但是,我希望我的标签显示如示例图片所示。有简单的方法吗?
非常感谢您,
乔
您可以使用 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))
输出如下:
我错过了什么吗?为什么不使用 semilogy
?
x = -3:0;
y = 10.^x;
semilogy(x, y);
set(gca, 'YMinorGrid', 'on')
虽然对这类问题有很多回答,但我无法找到适合我的确切问题的解决方案。不管怎样
我尝试格式化我的刻度标签,如下例所示:
我已经发现“sprintf”命令提供了改变刻度格式的可能性。我最接近我想要的是由以下命令触发的 'e-notation':
set(ax,'YTickLabel',sprintf('%2.0e|',yticks))
但是,我希望我的标签显示如示例图片所示。有简单的方法吗?
非常感谢您,
乔
您可以使用 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))
输出如下:
我错过了什么吗?为什么不使用 semilogy
?
x = -3:0;
y = 10.^x;
semilogy(x, y);
set(gca, 'YMinorGrid', 'on')