gpt4 book ai didi

python - 为分组列创建直方图

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:12 26 4
gpt4 key购买 nike

如何创建一个单行三列的图表,并在每一列中绘制直方图?数据来自这个 DataFrame:

import pandas as pd
import matplotlib as plt
d = {'col1': ['A','A','A','A','A','A','B','B','B','B','B','B','C','C','C','C','C','C'],
'col2': [3, 4, 3, 4, 6, 7, 8, 9, 3, 2, 3, 4, 5, 3, 4, 1, 2, 6 ]}
df = pd.DataFrame(data=d)

在 DataFrame 中,我们有三个组(A、B、C),但我可以有 N 个组,但我仍然想要一个包含一行的图表,每一列是每个组的直方图。

最佳答案

您可以旋转数据框并链接 plot 命令以生成图形。

import pandas as pd
import matplotlib.pyplot as plt

d = {'Category': ['A','A','A','A','A','A','B','B','B','B','B','B','C','C','C','C','C','C'],
'Values': [3, 4, 3, 4, 6, 7, 8, 9, 3, 2, 3, 4, 5, 3, 4, 1, 2, 2 ]}
df = pd.DataFrame(d)

df.pivot(columns='Category', values='Values').plot(kind='hist', subplots=True, rwidth=0.9, align='mid')

enter image description here

编辑:您可以使用下面的代码在一行中绘制所有子图。然而,对于三个以上的类别,图开始看起来非常压扁。

df2 = df.pivot(columns='Category', values='Values')
color = ['blue', 'green', 'red']
idx = np.arange(1, 4)
plt.subplots(1, 3)
for i, col, colour in zip(idx, df2.columns, color):
plt.subplot(1, 3, i)
df2.loc[:, col].plot.hist(label=col, color=colour, range=(df['Values'].min(), df['Values'].max()), bins=11)
plt.yticks(np.arange(3))
plt.legend()

enter image description here

关于python - 为分组列创建直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50892710/

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