首页 > 解决方案 > 在 matplotlib(或 seaborn)中为 x 值着色并以图例而不是刻度显示

问题描述

我有一个很大的 df,我已将其分组以绘制在条形图中。我做了这个模拟 df 来说明我的意思。(而且我创造它的乐趣太多了......)

my = pd.DataFrame(
{'names': ['Andrea', 'Donna', 'Kelly', 'Brenda', 'Allison', 'Jo', 'Amanda', 'Jane', 'Kerry', 'Abby', 'Elizabeth', 'Haleh'],
'episodes': [ 147, 292, 292, 111, 160, 111, 199, 172, 250, 189, 160,184 ],
'tv-show' : ['Beverly Hills, 90210', 'Beverly Hills, 90210', 'Beverly Hills, 90210', 'Beverly Hills, 90210',
'Melrose place', 'Melrose place', 'Melrose place', 'Melrose place',
'ER', 'ER', 'ER', 'ER']})
my

然后我分组并绘制它:my.groupby('tv-show').sum().plot(kind='bar', stacked = True) 在此处输入图像描述

我想要的是一个情节,其中电视节目的名称位于图例中而不是 x 轴下方,并且节目具有不同的颜色(当然)。

标签: pythonpandasmatplotlibseaborn

解决方案


直接使用熊猫:

ax = my.groupby('tv-show').sum().transpose().plot.bar()
ax.set_xticks([])

在此处输入图像描述


推荐阅读