如何在垂直轴上强制使用科学记数法?

时间:2014-08-27 18:29:00

标签: matlab function plot

我有一组来自函数的输出。我如何绘制它们以便域从某个值开始,并在每个特定步骤显示一个值。例如:

>> Ox = [40:10:90];

水平轴应显示40到90之间的所有数字,它们是10的倍数。 纵轴应该类似地表示。但是,它由一组更大的值组成:

>> Oy = [1000:500:200000];

如何绘制一组函数输出,以便垂直轴以科学格式表示(2.6e + 3或2.6 * 10 ^ 3)。

               ^
  2.6 * 10 ^3  |
               |
               |
               |                          *
               |                      *     
               |            *    *
               |   *     *
               |
               +-------------------------------->
                40    50    60    70    80   90 

我可以将函数绘制为:

plot(x,fx,'-r');

并为每个轴添加标签:

xlabel('domain')
ylabel('codomain')

我找不到将垂直轴值表示为科学值的方法。

1 个答案:

答案 0 :(得分:1)

对于较大的值,Matlab应以科学计数法自动显示它们。

否则你可以像这样使用sprintf:

x = 1000:200:10000;

plot(x,x.^2)

XSci = 0:0.1e4:0.1e5;
YSci = 0:0.1e4:0.1e5;

set(gca,'XTickLabel',sprintf('%2.0e|',XSci));
set(gca,'YTickLabel',sprintf('%2.0e|',YSci));

输出:

enter image description here

好吧这可能不是最好的例子,但你明白了这一点:)