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

如何为Matplotlib绘制的多子图分别添加独立标题?

为Matplotlib子图添加独立标题的解决方法

问题描述

我使用以下Matplotlib代码绘制了2行4列的直方图子图,每个子图对应指定城市的不同参数分布,请问如何为每个子图添加独立标题?
代码如下:

fig, axs = plt.subplots(ncols=4, nrows=2, figsize=(16,8))
for city, nrow in zip(['City1', 'City1'], [0, 1]):
    df = data[(data.city==city)&(data.sdate.dt.year==2021)]
    for col, ncol in zip(['parameterX', 'parameterY', 'parameterZ', 'parameterH'], [0,1, 2,3]):
    axs[nrow, ncol].hist(df[col], bins=50)

解决方法

你可以通过调用子图对象的set_title()方法,结合城市名称和参数名生成独立标题。修改后的完整代码如下:

fig, axs = plt.subplots(ncols=4, nrows=2, figsize=(16,8))
for city, nrow in zip(['City1', 'City1'], [0, 1]):
    df = data[(data.city==city)&(data.sdate.dt.year==2021)]
    for col, ncol in zip(['parameterX', 'parameterY', 'parameterZ', 'parameterH'], [0,1, 2,3]):
        axs[nrow, ncol].hist(df[col], bins=50)
        # 为每个子图设置独立标题
        axs[nrow, ncol].set_title(f"{city} - {col}")
# 调整子图间距,避免标题与其他元素重叠
plt.tight_layout()
plt.show()

关键说明

  • set_title()是Matplotlib轴(Axes)对象的内置方法,用于设置子图的标题,这里用f-string将城市名和参数名拼接成清晰的标题(例如City1 - parameterX)
  • plt.tight_layout()会自动优化子图布局,防止标题、坐标轴标签等元素互相遮挡,提升图表的可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:35:25