Python无法修改绘图函数时,如何为生成的图表添加自定义标题
解决方案
核心思路
原函数内部创建了Figure对象但未返回,调用函数后可通过plt.gcf()获取当前活动的图表对象,再为其添加标题。
具体实现代码
假设你有一个标题列表titles,循环调用函数并添加标题的代码如下:
import matplotlib.pyplot as plt # 自定义标题列表 titles = ["样本A时间空间分布图", "样本B时间空间分布图", "样本C时间空间分布图"] for idx, title in enumerate(titles): # 调用你的绘图函数(obj是对应类的实例对象) obj.plot_calibrated_im() # 获取当前创建的图表对象 fig = plt.gcf() # 添加全局标题(若要子图标题,可改用ax.set_title) fig.suptitle(title, fontsize=12) # 可选:重新调整布局避免标题被截断 fig.tight_layout() # 保存生成的图表 plt.savefig(f"calibrated_fig_{idx}.png", dpi=200, bbox_inches="tight") # 关闭图表释放内存(批量生成时必须) plt.close(fig)
关键说明
plt.gcf()会获取当前活动的Figure对象,原函数中plt.figure()创建新图表时会自动将其设为当前活动对象,因此调用函数后立即执行plt.gcf()就能拿到正确的图表,不会返回空白图。- 若要添加子图级标题,可通过
ax = fig.gca()获取图表的轴对象,再调用ax.set_title(title)。 - 循环生成大量图表时,务必调用
plt.close(fig)关闭已处理的图表,避免内存泄漏。
内容的提问来源于stack exchange,提问作者Gabraltur
相关产品推荐
相关产品推荐

