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

如何用Matplotlib在循环中实现多图多曲线(仿Matlab figure功能)

在Matplotlib中实现类似Matlab的指定图形更新功能

完全可以实现和Matlab一致的操作逻辑,不需要子图或多个独立循环,核心是利用Matplotlib的plt.figure(num=...)指定目标图形,直接在循环中切换图形并添加曲线即可,具体代码如下:

import matplotlib.pyplot as plt
import numpy as np

# 生成对应Matlab示例的x数据
x = np.arange(0, 20.2, 0.2)

for n in [1, 2, 3, 4]:
    # 切换到编号为1的图形,不存在则创建
    plt.figure(num=1)
    # 添加曲线
    plt.plot(x, n * x)
    # 确保保留已有内容(Matplotlib默认已开启,显式写更稳妥)
    plt.hold(True)
    
    # 切换到编号为2的图形,不存在则创建
    plt.figure(num=2)
    plt.plot(x, x ** n)
    plt.hold(True)

# 分别保存两个图形为SVG文件,满足出版需求
plt.figure(num=1)
plt.savefig('figure1.svg')
plt.figure(num=2)
plt.savefig('figure2.svg')

# 可选:显示图形
plt.show()

关键说明:

  • plt.figure(num=figure_number) 等价于Matlab的figure(the_figure_number):第一次调用会创建对应编号的图形窗口,后续调用会直接切换到该图形,允许继续添加内容。
  • Matplotlib默认不会清除原有曲线(类似Matlab的hold on),显式调用plt.hold(True)可以确保这一行为,避免意外清除。
  • 全程仅需一次数据遍历,避免多循环带来的效率损耗,循环结束后可单独导出每个图形为SVG文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:08:11