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

如何用For循环优化2×3子图的Python绘制代码?

优化2×3子图绘制代码:用循环消除重复逻辑

你的原代码里重复创建各地区数据子集、重复调用绘图函数和设置标题,完全可以通过循环遍历+统一处理来简化,既减少冗余,后期修改也更方便。

优化后的代码

import seaborn as sns
import matplotlib.pyplot as plt

# 初始化画布和子图
fig, axes = plt.subplots(2, 3, figsize=(15, 8), sharey=True)
fig.tight_layout(h_pad=4)

# 定义要展示的地区列表,顺序对应子图位置(从上到下、从左到右)
regions = ['Africa', 'Asia', 'Europe', 'Middle East', 'Oceania', 'The Americas']

# 把二维的axes数组展平成一维,方便循环遍历
flat_axes = axes.flatten()

# 遍历地区和对应的子图轴
for region, ax in zip(regions, flat_axes):
    # 筛选当前地区的数据
    region_data = df[df.Region == region]
    # 绘制直方图+KDE,统一设置参数
    sns.histplot(ax=ax, data=region_data, x="Life Expectancy Female", 
                 kde=True, stat='probability').set(xlabel=None)
    # 设置子图标题
    ax.set_title(region)

# 设置整体标题和布局调整,顺便修正原代码里的拼写错误
fig.suptitle('Histogram and KDE of Life Expectancy of Women', fontsize=15)
plt.subplots_adjust(top=0.9)

关键优化点

  • 把所有地区名称整理成一个列表,避免逐个创建变量存储子集数据
  • 用axes.flatten()把二维子图数组转成一维,不用手动写axes[0,0]这类索引
  • 通过zip配对地区和子图轴,一次循环完成所有绘图和标题设置
  • 所有重复的参数(比如kde=True、stat='probability')只写一次,后期修改只需改一处
  • 修正了原代码中整体标题的拼写错误,保证内容准确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:55:18