【问题标题】:Grouped bar graphs with numerical values in pythonpython中带有数值的分组条形图
【发布时间】:2021-07-28 17:03:38
【问题描述】:
我无法共享我的数据集,但它看起来像这样。
| category |
sales |
profit |
| (7 types) |
(float) |
(float) |
实际上有 6 列带有数值变量。我想在 python 上将其绘制为一个分组条形图,其中类别作为 x 轴,单个条形线作为数值列的平均值。 seaborn 的 catplot 中的 hue 参数只接受分类值,所以我不能使用它。
还有其他方法可以绘制吗?
【问题讨论】:
标签:
python
graph
seaborn
data-visualization
【解决方案1】:
Seaborn 更喜欢 "long form" 中的数据。您可以使用df.melt(id_vars='category') 转换数据框。
这是一个例子:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
sns.set()
df = pd.DataFrame({'category': np.random.choice([*'abcdefg'], 100),
'sales': np.random.randint(1000, 2000, 100),
'profit': np.random.randint(100, 200, 100)})
long_df = df.melt(id_vars='category')
sns.barplot(data=long_df, x='category', y='value', hue='variable', order=[*'abcdefg'], ci=None)
plt.show()
如果您确实需要指示置信区间的误差线,请忽略 ci=None。