0

在下面的脚本中,如果我在不设置 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()
4

0 回答 0