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

如何将Matplotlib绘图存储为变量实现无需重算即可调用展示

Matplotlib多图存储复用方案

核心实现逻辑

直接将绘图生成的Figure、Axes对象赋值给自定义变量存储,只要变量不被释放,画布上的所有绘图数据都会保留,不需要重复计算y值或者重写绘图逻辑。

可直接运行的示例代码

import numpy as np
import matplotlib.pyplot as plt

# 仅计算一次x、两个y值,不需要重复计算
x = np.arange(0.2, 10, 0.01)
y_linear = x + 2
y_square = x ** 2

# 存储第一张图的画布和轴对象
fig1, ax1 = plt.subplots()
ax1.plot(x, y_linear)

# 存储第二张图的画布和轴对象
fig2, ax2 = plt.subplots()
ax2.plot(x, y_square)

后续调用方式

  • 显示第一张图:执行fig1.show()
  • 显示第二张图:执行fig2.show()
  • 可直接对存储的轴对象做二次修改,比如给第一张图加坐标轴标注:
    ax1.set_xlabel("x值")
    ax1.set_ylabel("y值")
    # 修改后刷新显示即可
    fig1.canvas.draw_idle()
    

原写法问题说明

你之前用plt.figure(序号)的写法,在非交互式运行环境或者画布被关闭后,切换序号时会重建空白画布,原有绘图数据会丢失;存为自定义变量后就不会出现这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:36:04