Dav*_*PNY 10 python matplotlib
使用matplotlib,我想在我的图上写文字,以正常的科学记数法显示,例如,1.92x10 -7而不是默认的1.92e-7.我已经找到了如何为轴上的数字标记刻度而不是文本功能的帮助.以下是我想要更改的代码示例:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,0.5)
y = x*(1.0-x)
a=1.92e-7
plt.figure()
plt.plot(x, y)
plt.text(0.01, 0.23, r"$a = {0:0.2e}$".format(a), size=20)
plt.show()
Run Code Online (Sandbox Code Playgroud)
xnx*_*xnx 11
这样做的一种稍微晦涩的方法是从Python字符串表示中为数字构建自己的tex字符串.通过as_si,定义如下,你的数字和小数位数,它将产生这个tex字符串:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,0.5)
y = x*(1.0-x)
def as_si(x, ndp):
s = '{x:0.{ndp:d}e}'.format(x=x, ndp=ndp)
m, e = s.split('e')
return r'{m:s}\times 10^{{{e:d}}}'.format(m=m, e=int(e))
a=1.92e-7
plt.figure()
plt.plot(x, y)
plt.text(0.01, 0.23, r"$a = {0:s}$".format(as_si(a,2)), size=20)
plt.show()
Run Code Online (Sandbox Code Playgroud)
