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

Matplotlib中用add_axes创建轴后如何激活plt.show()显示图形?

解决方案:matplotlib中add_axes配合plt.show()无响应问题

问题根源

直接通过plt.Figure()创建的Figure对象,不会被matplotlib的pyplot模块自动跟踪管理。plt.show()默认只显示pyplot上下文里的当前Figure,所以这种情况下调用plt.show()不会弹出窗口;而fig.savefig()能正常工作是因为它直接操作Figure实例本身,不需要依赖pyplot的上下文管理。

两种可行解决方法

方法1:使用pyplot接口创建Figure

用plt.figure()替代plt.Figure(),创建的Figure会自动被pyplot设为当前图形并纳入管理,后续调用plt.show()就能正常弹出窗口:

import matplotlib.pyplot as plt

fig = plt.figure()  # 替换为plt.figure()
ax = fig.add_axes(rect=(0.1, 0.0, 0.9, 1.0))
plt.show()

方法2:手动将自定义Figure设为pyplot当前图形

如果必须手动实例化plt.Figure(),可以通过plt.scf(fig)将其设置为pyplot的当前图形,让plt.show()能识别并显示它:

import matplotlib.pyplot as plt

fig = plt.Figure()
ax = fig.add_axes(rect=(0.1, 0.0, 0.9, 1.0))
plt.scf(fig)  # 将自定义Figure设为当前图形
plt.show()

内容的提问来源于stack exchange,提问作者Paweł Wójcik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 03:33:12