You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib导出图片空白求助:Ising模型仿真绘图异常

解决Matplotlib导出空白图的问题

问题根源

  1. plt.show() 顺序错误
    plt.show() 运行后会弹出图形窗口,同时清空当前绘图上下文。你在这之后调用plt.savefig(),自然只能保存空白图——因为绘图内容已经被清空了。

  2. 图形对象创建错误
    代码里 fig = plt.figure 只是把函数本身赋值给了变量,没有实际创建图形实例,正确写法是 fig = plt.figure()。这就是你看到<Figure size 640x480 with 0 Axes>提示的原因:图形未正确初始化,后续坐标轴也没绑定到有效图形上。

修正后的完整代码

import numpy as np
import matplotlib.pyplot as plt

M = 1000
plot = np.zeros(M)
# 正确创建图形实例
fig = plt.figure()
ax = plt.axes(xlim=(0, M), ylim=(-400,400))

for x in range(M):
    plot[x] = x
    
xarr = range(0, M)
ax.plot(xarr, plot, 'r-')
ax.set_ylabel("Magnetism")
ax.set_xlabel("Steps")
# 先保存再显示,顺序别搞反
plt.savefig("output_mplot.png")
plt.show()

额外优化建议

  • 推荐用ax.set_xxx这类面向对象的方式设置标签、刻度,比直接用plt.xxx更清晰,多子图场景下不易出错。
  • 如果不需要弹出图形窗口,直接删掉plt.show()即可,节省资源。

内容的提问来源于stack exchange,提问作者Faith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:37:05