我想转换以下内容:
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刻度?
答案 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位,定点格式"。