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

如何直接用多个Numpy数组作为Seaborn箱线图的输入?

直接用NumPy数组绘制多箱体箱线图的简便方法

当然有更直接的办法啦!Matplotlib本身就支持直接传入NumPy数组的列表来绘制多个箱线图,完全不需要依赖Pandas DataFrame,步骤简单又直接,刚好能满足你的需求——把5个各含20个元素的NumPy数组作为独立箱体并排展示,清晰呈现每个数组的方差和分布。

具体实现步骤

你只需要把多个NumPy数组打包成一个列表,直接传给plt.boxplot()函数就可以了。下面是完整的示例代码:

import numpy as np
import matplotlib.pyplot as plt

# 生成5个各含20个元素的NumPy数组(这里用正态分布模拟数据,你可以替换成自己的数组)
np.random.seed(42)  # 固定随机种子,确保结果可复现
group1 = np.random.normal(loc=0, scale=1, size=20)
group2 = np.random.normal(loc=1, scale=1.2, size=20)
group3 = np.random.normal(loc=2, scale=0.8, size=20)
group4 = np.random.normal(loc=3, scale=1.5, size=20)
group5 = np.random.normal(loc=4, scale=1, size=20)

# 把所有数组放到一个列表里,直接传入boxplot
plt.boxplot([group1, group2, group3, group4, group5])

# 给图表添加必要的标签和标题,让结果更直观
plt.title("Boxplots of 5 NumPy Arrays")
plt.xlabel("Array Group")
plt.ylabel("Element Values")
plt.xticks(ticks=range(1, 6), labels=["Group 1", "Group 2", "Group 3", "Group 4", "Group 5"])

plt.show()

代码说明

  • 如果你的数组已经是单独的变量(比如上面的group1到group5),直接把它们放进列表里传给plt.boxplot()就行;如果是一开始就生成的数组列表(比如data = [arr1, arr2, ...]),直接传列表也完全没问题。
  • 运行这段代码后,你会得到5个并排的箱体,每个箱体对应一个NumPy数组的分布,箱体的宽窄、whisker的长度会直观展示每个数组的方差大小,完全符合你想要的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:19:22