Matplotlib中‘Current Figure’指什么?多图形时如何判定当前图形?
Matplotlib中的「当前图形(Current Figure)」是什么?
1. 什么是Current Figure
Matplotlib里的「当前图形(Current Figure)」就是Pyplot状态机当前默认操作的Figure对象。所有通过pyplot模块(比如plt.plot()、plt.title())执行的绘图操作,都会默认作用在这个当前图形上,它相当于Pyplot状态机的“操作焦点”。
matplotlib.pyplot.gcf()函数的作用就是直接获取这个当前图形对象,拿到后你可以对它做各种自定义操作,比如修改尺寸、保存图片、调整布局等。
2. 多图形场景下如何确定当前图形
当创建多个图形时,Matplotlib会维护一个图形栈,当前图形始终是栈顶的那个对象。以下几种情况会改变当前图形:
- 调用
plt.figure(num):如果指定编号的图形已存在,会将它移到栈顶设为当前;如果不存在,就创建新图形并设为当前。 - GUI交互中点击图形窗口:对应的图形会被自动设为当前图形。
- 调用
plt.scf(fig):手动将指定的fig对象设置为当前图形。 - 创建子图/坐标轴时:如果当前没有图形,会自动创建新图形并设为当前;如果已有图形,会在当前图形内操作,保持该图形的当前状态。
举个简单示例:
import matplotlib.pyplot as plt # 创建第一个图形,此时它是当前图形 fig1 = plt.figure() plt.plot([1,2,3]) # 创建第二个图形,它成为新的当前图形 fig2 = plt.figure() plt.plot([3,2,1]) # 手动将fig1设为当前图形 plt.scf(fig1) plt.title("当前图形的标题") # 这个标题会应用在fig1上 # 获取当前图形,此时返回的是fig1 current_fig = plt.gcf()
内容的提问来源于stack exchange,提问作者Akshay Sapra
相关产品推荐
相关产品推荐

