import matplotlib
import matplotlib.pyplot as plt
x =[0,1,2,3,4]
plt.rcParams.update({"text.usetex": False, "font.family": "serif", "font.serif": ["Palatino"]})
y1 =np.array([e1["E"]/-28486.111])
y2 =np.array([e2["E"]/-28372.065])
y3 =np.array([e3["E"]/-28258.018])
y4 =np.array([e4["E"]/-27687.787])
x1 =np.array([e1["step"]/10000000])
x2 =np.array([e2["step"]/10000000])
x3 =np.array([e3["step"]/10000000])
x4 =np.array([e4["step"]/10000000])
fig, ax = plt.subplots(figsize=(12,8),frameon=False, dpi=100)
ax = plt.gca()
ax.plot(x1,y1,"o:",label= '300K',c='blue',linewidth=0.5)
ax.plot(x1,y2,"o:",label= '400K',c='red',linewidth=0.5)
ax.plot(x1,y3,"o:",label= '500K',c='black',linewidth=0.5)
ax.plot(x1,y4,"o:",label= '1000K',c='green',linewidth=0.5)
#corners = ((x1, y1), (x1, y2),(x1, y3),(x1, y4))
#ax.update_datalim(corners)
plt.grid()
plt.tick_params(axis ='both', labelsize =12)
plt.legend(loc="best")
plt.title(r"Variation of the kinetic energy of system",
fontdict={'family': 'serif',
'color':'black',
'weight':'bold',
'size':18})
plt.xlabel(r'Time(ns)',
fontdict={'family': 'serif','color':'black','weight':'bold','size':16})
plt.ylabel(r"$\mathbf{E}$/$\mathbf{E_0}$",fontsize=16)
ax.set_xticks(x)
plt.savefig("energy.png")
#plt.show()
ValueError: Image size of 747x3360143 pixels is too large. It must be less than 2^16 in each direction.
大家好,当我验证这段代码的4个图表的表示,我把每个图表的图例,我有一个大小的错误。我已经附加了带有错误的输出图像
发布于 2021-07-13 12:59:34
我想这一切都是因为你的传奇。我不确定为什么它会像你发布的图片那样工作--我不能用你的代码重新创建那个行为。我建议尝试注释掉这个图例,看看你的代码是否能正常工作。您可能会发现matplotlib文档legend tutorial很有帮助。
如果您能提供有关e1、e2、e3和e4值的更多信息,这将有助于更有效地模拟和排除故障。
还有一些其他的评论:
重新初始化数组
我尝试模拟一些与您的代码类似的代码行,并在您的代码中实现。
import matplotlib
import matplotlib.pyplot as plt
x =[0,1,2,3,4]
plt.rcParams.update({"text.usetex": False, "font.family": "serif", "font.serif": ["Palatino"]})
#e appears to be some large array
#simulate with some large array
e = np.linspace(0.001, 4, 1000)
x1 = x2 = x3 = x4 = e
y1 = np.log(e)
y2 = np.log(e) + 0.5
y3 = np.log(e) + 1
y4 = np.log(e) + 1.5
fig, ax = plt.subplots(figsize=(12,8),frameon=False, dpi=100)
ax.plot(x1,y1,"o:",label= '300K',c='blue',linewidth=0.5)
ax.plot(x1,y2,"o:",label= '400K',c='red',linewidth=0.5)
ax.plot(x1,y3,"o:",label= '500K',c='black',linewidth=0.5)
ax.plot(x1,y4,"o:",label= '1000K',c='green',linewidth=0.5)
plt.grid()
plt.tick_params(axis ='both', labelsize =12)
plt.legend(loc="best")
title = plt.title(r"Variation of the kinetic energy of system", fontsize=18, fontweight='bold')
x_label = plt.xlabel(r'Time(ns)', fontsize=16, fontweight='bold')
y_label = plt.ylabel(r"$\mathbf{E}$/$\mathbf{E_0}$",fontsize=16)
#ax.set_xticks(x)
https://stackoverflow.com/questions/68350060
复制相似问题