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

如何在Python中将子图与指定的图形编号关联?

解决Python中关联指定编号图形与子图的问题

MATLAB里figure(3)是指定用编号为3的窗口,再用subplot在这个窗口里创建子图。你原来的Python代码问题在于:plt.subplots(3)会自动新建一个独立的figure,和之前的plt.figure(3)不关联,所以达不到预期效果。

下面是几种正确的实现方式:

方法1:先指定编号figure,再逐个添加子图

import matplotlib.pyplot as plt

# 激活或创建编号为3的图形窗口
plt.figure(3)
# 在该窗口中创建3行1列的第1个子图
ax1 = plt.subplot(3, 1, 1)
# 继续创建剩余子图
ax2 = plt.subplot(3, 1, 2)
ax3 = plt.subplot(3, 1, 3)

# 示例:给第一个子图绘图
ax1.plot([1, 2, 3, 4])

方法2:面向对象方式(更推荐)

import matplotlib.pyplot as plt

# 获取或创建编号为3的figure对象,清空原有内容(避免之前的绘图残留)
fig = plt.figure(3)
fig.clear()

# 向该figure添加子图
ax1 = fig.add_subplot(3, 1, 1)
ax2 = fig.add_subplot(3, 1, 2)
ax3 = fig.add_subplot(3, 1, 3)

方法3:直接用subplots指定编号

如果你习惯用subplots一次性生成子图,可以通过num参数指定图形编号:

import matplotlib.pyplot as plt

# 直接创建编号为3的figure,并生成3个子图
fig, axs = plt.subplots(3, num=3)

# 对子图进行操作,比如给第一个子图绘图
axs[0].plot([1, 2, 3])
axs[1].scatter([1,2,3], [4,5,6])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:10:20