如何在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
相关产品推荐
相关产品推荐

