如何在matplotlib上将两个不同的panda数据帧绘制成一个图表



我有两组使用panda的独立数据:

>>> suicides_sex = suicides_russia.groupby("sex")["suicides_no"].sum()
>>> suicides_sex
sex
female    214330
male      995412

&

>>> suicides_age = suicides_russia.groupby("age") 
>>> ["suicides_no"].sum().sort_values()
>>> suicides_age
age
5-14 years       8840
75+ years       74211
15-24 years    148611
25-34 years    231187
55-74 years    267753
35-54 years    479140

我想学习如何使用matplotlib创建一个双条形图,或者创建两个单独的条形图,在那里我可以按性别区分每个年龄组。

如何将两组数据组合起来,为每个性别创建一个双栏条形图或两个单独的条形图?

您可以使用布尔掩码来分离数据,然后像以前一样按年龄分组。

import matplotlib.pyplot as plt
suicide_male = suicide_russia.loc[suicide_russia['sex']=='male', :]
# now you basically have the same dataframe but for male only
suicide_male_age = suicides_male.groupby("age")["suicides_no"].sum()
plt.bar(height=suicide_male_age.values, x=np.arange(suicide_male_age.index))
plt.xticks(labels=suicide_male_age.index)
plt.show()

然后你可以对女性重复同样的操作。这可能不是最有效的方法,但它是有效的。

此外,我假设"age"列的值是字符串,所以我将np.arange作为条的x位置,将值本身作为xticks。

希望它能有所帮助!

最新更新