Python 将浮点数转换为具有固定指数的科学格式

Python 将浮点数转换为具有固定指数的科学格式,python,matplotlib,format,axis,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刻度?使用。这是一个MWE import matplotlib.pyplot as plt x = range(2) y = [0.00000012, 0.0000012] plt.plot(

我想转换以下内容:

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刻度?

使用。这是一个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()
生产,

您可以使用此选项(您需要定义请求的精度):


要设置数字格式,请使用以下方法:

>>> 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
{:0=5.3f}
表示“零位,符号和数字之间的填充,总字段宽度8,小数点后3位,定点格式”

>>> 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