首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >747x3360143像素的图像尺寸太大。在每个方向上必须小于2^16 :当使用图例时

747x3360143像素的图像尺寸太大。在每个方向上必须小于2^16 :当使用图例时
EN

Stack Overflow用户
提问于 2021-07-12 23:30:37
回答 1查看 79关注 0票数 0
代码语言:javascript
运行
复制
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个图表的表示,我把每个图表的图例,我有一个大小的错误。我已经附加了带有错误的输出图像

EN

回答 1

Stack Overflow用户

发布于 2021-07-13 12:59:34

我想这一切都是因为你的传奇。我不确定为什么它会像你发布的图片那样工作--我不能用你的代码重新创建那个行为。我建议尝试注释掉这个图例,看看你的代码是否能正常工作。您可能会发现matplotlib文档legend tutorial很有帮助。

如果您能提供有关e1、e2、e3和e4值的更多信息,这将有助于更有效地模拟和排除故障。

还有一些其他的评论:

  1. 你不需要行ax = plt.gca(),它已经被定义为这样的
  2. 如果e1'E‘和其他类似的是pandas序列或numpy数组,那么你不需要为每个变量

重新初始化数组

我尝试模拟一些与您的代码类似的代码行,并在您的代码中实现。

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68350060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档