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

如何将多组boxplot箱线图合并为一张可视化图片?

修改代码实现多属性箱线图合并为一张图

可以通过子图网格布局实现所有属性箱线图合并到一张图中,以下是调整后的代码:

import matplotlib.pyplot as plt
import seaborn as sns
import math

# 设定子图的列数,可根据需求调整(比如2、3)
cols = 2
num_list = Final_dataset.columns.values.tolist()
rows = math.ceil(len(num_list) / cols)  # 根据属性数量自动计算行数

# 创建子图网格
fig, axs = plt.subplots(rows, cols, figsize=(cols*6, rows*4))  # 调整figsize适配子图数量

for i, column in enumerate(num_list):
    # 获取当前子图的位置
    ax = axs.flat[i]
    # 在指定子图上绘制箱线图
    sns.boxplot(x="label", y=column, data=Final_dataset, palette='Set2', ax=ax)
    ax.set_title(f'Boxplot of {column}')  # 设置子图标题
    ax.tick_params(axis='x', rotation=45)  # 可选:旋转x轴标签避免重叠

# 隐藏多余的子图(当属性数量不是cols的整数倍时)
for j in range(i+1, rows*cols):
    axs.flat[j].axis('off')

# 调整子图间距,避免标签重叠
plt.tight_layout()
# 保存整张图
plt.savefig('all_boxplots.png')
plt.show()

关键改动说明:

  • 用plt.subplots()创建统一的子图网格,替代循环中重复创建新图的操作
  • 循环时通过axs.flat[i]指定当前箱线图绘制的子图位置
  • 添加子图标题并可选旋转x轴标签,提升可读性
  • 使用plt.tight_layout()自动调整子图间距,避免元素重叠
  • 最后统一保存整张图,而非循环保存单张图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:01:00