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

2024-10-03 23:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用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-国家/地区.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


Tags: csvimportdfplotvalueasbarblue