使用固定指数将浮点数转换为科学格式

时间:2017-02-15 14:07:38

标签: python matplotlib format axis

我想转换以下内容:

0.00000012 to 0.1e-6 
0.0000012  to 1.2e-6

并发现:

  

'%1E' %var

哪个

0.00000012 to  1.2e-7
0.0000012  to  1.2e-6

我如何格式化以保持指数固定?

如何将相同的格式应用于matplotlib刻度?

3 个答案:

答案 0 :(得分:1)

您可以使用它(您需要定义所需的精度):

number_to_convert = 0.00000012
precision = 3
print ("%0.*e"%(precision,number_to_convert))

答案 1 :(得分:0)

使用plt.ticklabel_format。这是一个MWE。

import matplotlib.pyplot as plt

x = range(2)
y = [0.00000012, 0.0000012]
plt.plot(x, y)

plt.xticks(x)
plt.yticks(y)
plt.ticklabel_format(style='sci', axis='y', scilimits=(0, 0))

plt.show()

生产,

答案 2 :(得分:0)

要格式化数字,请使用以下方式:

>>> for i in [.12e9,1.2e9,12e9,120e9]:
...     print('{:.3e} => {:0=5.3f}e9'.format(i, i/1e9))

1.200e+08 => 0.120e9
1.200e+09 => 1.200e9
1.200e+10 => 12.000e9
1.200e+11 => 120.000e9

documentation{:0=5.3f}表示"零填充,填充符号和数字,总字段宽度为8,小数点后3位,定点格式"。