python - 条形图图例基于按组而不是值对条形进行着色

标签 python pandas matplotlib bar-chart

我已经按照描述创建了一个条形图 here我有多个变量(在“值”列中指示)并且它们属于重复组。我根据组成员身份对条形进行了着色。

我想创建一个最终相​​当于颜色字典的图例,显示与给定组成员身份相对应的颜色。

代码在这里:

d = {'value': [1, 2, 4, 5, 7 ,10], 'group': [1, 2, 3, 2, 2, 3]}
df = pd.DataFrame(data=d)
colors = {1: 'r', 2: 'b', 3: 'g'}
df['value'].plot(kind='bar', color=[colors[i] for i in df['group']])
plt.legend(df['group'])

这样,我只得到一个具有一种颜色 (1) 而不是 (1, 2, 3) 的图例。

谢谢!

最佳答案

您可以使用sns:

sns.barplot(data=df, x=df.index, y='value', 
            hue='group', palette=colors, dodge=False)

输出:

enter image description here

关于python - 条形图图例基于按组而不是值对条形进行着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59973931/

相关文章:

python - 如何从未命名的 :0 to columns with increment number in python 重命名列

Python:os.remove() 和 os.unlink() 之间的区别以及使用哪一个?

python - for循环的字典输出

python - Pandas:使用范围内的随机整数在 df 中创建新列

python - 迭代 pandas DataFrame 中的行并创建一个字典

python - 零值的 Matplotlib 对数刻度

python - pyplot : Plot a curve with ticks on one side

python - Matplotlib - Python 错误

python - python中的透视投影和旋转

python - 创建与 EXCEL OFFSET 函数等效的 pandas 函数