如何使用Matplotlib创建双重或堆积条形图

时间:2019-05-20 16:00:16

标签: python pandas matplotlib seaborn

如何使用Python中csv文件中的三组value_counts()数据创建分组或堆叠的条形图?我可以使用以下代码分别单独绘制每个集合的图形:

dfwidget1.country.value_counts().plot('bar', color='blue')

但是,我不知道如何将它们全部绘制到同一张图上。显然,我尝试过的方法不起作用:

dfwidget1.country.value_counts().plot('bar', color='blue')
dfwidget2.country.value_counts().plot('bar', color='red')
dfwidget3.country.value_counts().plot('bar', color='yellow')

研究之后,我也尝试使用groupby(),但没有成功。如果那是要走的路,那么我很高兴能按照这些原则进行确认,然后我将继续学习。如果有更简单的方法可以做到,那么我会不知所措。

这是玩具df(另存为widget-by-country.csv):

Toy DataFrame

这是我尝试过的代码:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

%matplotlib inline
sns.set()

df = pd.read_csv('widget-by-country.csv')

dfwidget1 = df[df['category'].str.contains('widget1', na=False)]
dfwidget2 = df[df['category'].str.contains('widget2', na=False)]
dfwidget3 = df[df['category'].str.contains('widget3', na=False)]

dfwidget1.country.value_counts().plot('bar', color='blue')
dfwidget2.country.value_counts().plot('bar', color='red')
dfwidget3.country.value_counts().plot('bar', color='yellow') 

这就是我得到的,但没有显示出制作每个小部件的国家的完整分布:

enter image description here

我真的很想查看显示此数据的分组条形图,看起来像这样:

enter image description here

0 个答案:

没有答案