Matplotlib scalarformatter未将y记号转换为标准格式
我试图使用ScalarFormatter将y轴刻度转换为标准形式,但经过多次实验,我没有成功,我也不知道为什么。MWE:Matplotlib scalarformatter未将y记号转换为标准格式,matplotlib,Matplotlib,我试图使用ScalarFormatter将y轴刻度转换为标准形式,但经过多次实验,我没有成功,我也不知道为什么。MWE: import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl import scipy.constants as const k = 1/(4*np.pi*const.epsilon_0) def force_e(q_1,q_2,x): return k*q_1*q_2/x**
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import scipy.constants as const
k = 1/(4*np.pi*const.epsilon_0)
def force_e(q_1,q_2,x):
return k*q_1*q_2/x**2
d = 10
delta = 0.1*d
x = np.linspace(0+delta,d-delta,1000)
q1 = 2e-6
q2 = -2e-6
q = 1e-9
F = force_e(q1,q,x) - force_e(q2,q,d-x)
fig,ax1 = plt.subplots(1, figsize=(6,6))
ax1.plot(x, F)
ax1.yaxis.set_major_formatter(mpl.ticker.ScalarFormatter(useMathText=True))
ax1.set_xlabel("Separation $r$ (m)")
ax1.set_ylabel("Force $F$ (N)")
plt.tight_layout()
plt.show()
它生成的图形如下所示:
其中,我希望它显示1.75x10^5等。删除设置格式化程序的行,并将其替换为
ax1.ticklabel\u格式(scilimits=(-2,2),useMathText=True)
。删除设置格式化程序的行,并将其替换为ax1.ticklabel\u格式(scilimits=(-2,2),useMathText=True)
。