あなたはあなたがして、小数点以下のドットの後に固定の桁数よりも多くを必要としないことを確認している場合:
>>> from numpy import r_
>>> a = r_[10**(-9), 10**(-3), 3*10**(-3), 6*10**(-3), 9*10**(-3), 1.5*10**(-2)]
>>> for x in a: print "%.1e"%x
...
1.0e-09
1.0e-03
3.0e-03
6.0e-03
9.0e-03
1.5e-02
ここでキャッチが最後、あなたは形式として%.0e
を使用していたことです数は1e-2
EDITとして印刷されます:あなたはmatplotlib
を使用しているので、それは別の話だ:あなたは、TeXのレンダリングエンジンを使用することができます。間に合わせと-例:確かに新しい.format
文字列フォーマットと少しきれいになり
fig = plt.figure()
ax = fig.add_subplot(111)
x = 1.5*10**(-2)
l = ("%.0e"%x).split("e")
x_str = r"$ %s \times 10^{%s}$" % (l[0], l[1])
ax.set_title(x_str)
plt.show()
。
EDIT2:ちょうど完全性と今後の参考のために、ここでコメントからのOPの途中で私の感想です:
ここ
x = 1.5*10**(-2)
l = ("%.0e"%x).split("e")
x_str = r"$%s \times 10^{%s}$" % (l[0], str(int(l[1])))
私はint型に変換することだし、戻って先行ゼロを避けるために:-02
を - >-2
など
また、str.formatを試すこともできます - http://docs.python.org/2/library/string.html#formatstrings – dmg
プロットはどのように作成していますか?それは単にASCIIアートのようなプロットですか、 'matplotlib'や他のライブラリを使用していますか? – Bakuriu
''%s 10 ^(%s)'%(number1、number2)'は動作しますか? – dmg