gpt4 book ai didi

python - 许多 Pandas Dataframes 的箱线图

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:45 25 4
gpt4 key购买 nike

我有三个数据框,其中包含 17 组数据,A、B 和 C 组。A 显示在以下代码片段中

import pandas as pd
import numpy as np
data1 = pd.DataFrame(np.random.rand(17,3), columns=['A','B','C'])
data2 = pd.DataFrame(np.random.rand(17,3)+0.2, columns=['A','B','C'])
data3 = pd.DataFrame(np.random.rand(17,3)+0.4, columns=['A','B','C'])

我想绘制一个箱形图来比较三个组,如下图所示 enter image description here我正在尝试使用 seaborn's box plot 制作情节如下

import seaborn as sns
sns.boxplot(data1, groupby='A','B','C')

但显然这是行不通的。有人可以帮忙吗?

最佳答案

考虑分配一个像位置这样的指示符来区分你的三组数据。然后连接所有三个并融合数据以检索一个 value 列、一个 Letter 分类列和一个 Location 列,所有输入到 sns.boxplot:

import pandas as pd
import numpy as np
from matplotlib.pyplot as plt
import seaborn as sns

data1 = pd.DataFrame(np.random.rand(17,3), columns=['A','B','C']).assign(Location=1)
data2 = pd.DataFrame(np.random.rand(17,3)+0.2, columns=['A','B','C']).assign(Location=2)
data3 = pd.DataFrame(np.random.rand(17,3)+0.4, columns=['A','B','C']).assign(Location=3)

cdf = pd.concat([data1, data2, data3])
mdf = pd.melt(cdf, id_vars=['Location'], var_name=['Letter'])
print(mdf.head())

# Location Letter value
# 0 1 A 0.223565
# 1 1 A 0.515797
# 2 1 A 0.377588
# 3 1 A 0.687614
# 4 1 A 0.094116

ax = sns.boxplot(x="Location", y="value", hue="Letter", data=mdf)
plt.show()

Histogram Output

关于python - 许多 Pandas Dataframes 的箱线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42004381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com