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

Matplotlib绘制10张子图仅显示9个标题的问题求解

问题原因

标题设置和子图创建的顺序颠倒,且使用了plt.title()这类依赖当前活跃轴的全局方法,导致标题没有对应到正确的子图上:

  • 第1次循环先执行plt.title()时还未创建子图,标题被设置到画布默认空白轴上,随后创建的第1张子图未拿到对应标题
  • 第210次循环执行`plt.title()`时,当前活跃轴是上一次循环创建的第19张子图,因此标题依次对应到了第1到第9张子图
  • 第10张子图创建完成后没有后续的标题设置逻辑,最终仅9张子图显示标题
解决方法

调整代码顺序,在子图创建完成后,直接通过子图对象ax的set_title方法设置标题,避免全局方法的隐式逻辑出错。修正后代码如下:

plt.figure(figsize=(25,10))
plt.subplots_adjust(left=0.125, bottom=0.1,  right=0.9, top=0.9, wspace=0.2, hspace=0.4)
n = 1

for idx, i in enumerate(top_10_df_event_copy['Code'].unique()):
    top_10_df_event_copy_list[i] = pd.Series(winsorize(top_10_df_event_copy_list[i].values, limits=[0, 0.1]))
    stl = seasonal_decompose(top_10_df_event_copy_list[i].values, freq=3)
    ax = plt.subplot(4,3,n)
    # 子图创建完成后再设置对应标题
    ax.set_title(f"{i}", fontsize=15)
    ax.plot(stl.seasonal + stl.trend)
    ax.plot(stl.observed, color='red', alpha=0.5)
    n += 1
    print(i)
    
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:54:02