在下面的脚本中,如果我在不设置 y 轴范围的情况下运行它,最终的绘图如下:
如果我通过以下方式设置 y 轴范围:
plt.ylim(-941.510, -941.505)
或通过:
axes = plt.gca()
axes.set_ylim([-941.510, -941.505])
我得到以下信息:
y 轴上的抽动不再显示为-941.495, -941.500
等,而是显示为一个比例,即乘以左角给出的数字 (-9.415e2)。
如何实现与第一个图类似的 y 轴配置,其中没有乘以因子?
代码:
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# Intial candidates for fit:
E0_init = -941.510817926696
V0_init = 63.54960592453
B0_init = 76.3746233515232
B0_prime_init = 4.05340727164527
def BM(x, E0, V0, B0, B0_prime):
return E0+ (2.293710449E+17)*(1E-21)*( (9.0/16.0)*(V0*B0) * ( (((V0/x)**(2.0/3.0)-1.0)**3.0)*B0_prime + ((V0/x)**(2.0/3.0)-1)**2 * (6.0-4.0*(V0/x)**(2.0/3.0)) ))
# A variable:
FU_Vat = 18.0
# Data:
V_Vate_W, E_Vate_W = np.loadtxt('./compilation_EOS.out', skiprows = 1).T
E_Vate_W = E_Vate_W/FU_Vat
V_Vate_W = V_Vate_W/FU_Vat
init_vals = [E0_init, V0_init, B0_init, B0_prime_init]
popt_Vate_W, pcov_Vate_W = curve_fit(BM, V_Vate_W, E_Vate_W, p0=init_vals)
# Plotting the fitting curves:
# the scattered points:
p7 = plt.scatter(V_Vate_W, E_Vate_W, color='green', marker="^", facecolors='none', label='', s=100)
p8, = plt.plot(V_Vate_W, BM(V_Vate_W, *popt_Vate_W), 'k--', label='')
fontP = FontProperties()
fontP.set_size('small')
plt.legend((p7, p8 ),("data", "fit" ), prop=fontP)
#axes = plt.gca()
plt.xlabel('x')
plt.ylabel('y')
#axes.set_ylim([-941.510, -941.505])
#plt.ylim(-941.510, -941.505)
plt.show()