如何修改Matplotlib多轴绘图的窗口标题(替换Figure 1)
解决Matplotlib窗口标题修改问题
你混淆了绘图内容标题和窗口标题的设置逻辑:
plt.title()是用来设置整个绘图区域的中心标题(显示在子图上方),并非窗口标题栏的文字;- 要修改弹出窗口的标题(默认是"Figure 1"),需要操作Figure对象的窗口管理器属性。
正确修改方式
直接对plt.subplots()返回的fig对象调用窗口标题设置方法,替换掉原代码中的plt.title('title'):
修改后的完整plotTaskGrids函数示例:
def plotTaskGrids(task): nTrain = len(task['train']) fig, ax = plt.subplots(2, nTrain, figsize=(3*nTrain, 3*2)) for i in range(nTrain): plotGrid(ax[0, i], task['train'][i]['input'], 'train input') plotGrid(ax[1, i], task['train'][i]['output'], 'train output') plt.tight_layout() # 设置窗口标题,替换原plt.title fig.canvas.manager.set_window_title('自定义窗口标题') plt.show()
补充说明
- 如果你的Matplotlib后端是TkAgg,也可以用
fig.canvas.set_window_title('自定义窗口标题'),但fig.canvas.manager.set_window_title()是更通用的写法,适配更多后端; - 若需要同时保留绘图内容的中心标题,可以继续使用
plt.title(),它和窗口标题互不冲突。
内容的提问来源于stack exchange,提问作者Paul Jurczak
相关产品推荐
相关产品推荐

