尝试从数据框数据创建堆叠的条形图

时间:2018-12-06 16:37:59

标签: python python-3.x pandas bar-chart

我正在尝试创建一个堆叠的条形图,以显示2008年至2015年之间每年的总婚姻数。

import pandas as pd
import numpy as np
import io
import requests
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
url = "https://data.code4sa.org/api/views/r4bb-fvka/rows.csv"
file=requests.get(url).content
c=pd.read_csv(io.StringIO(file.decode('utf-8')))

在这里,我要添加每年的结婚总数,然后按“结婚年”和“月份”分组以得出每个月的结婚总数

c['Total'] = c['MarriageYear']
months = c.groupby(['MarriageYear','MarriageMonth'])['Total'].count()

我认为该指数应该既是结婚年份又是结婚月份,因为我希望每年每个月的结婚总数???

months.set_index(['MarriageYear','MarriageMonth'])\
      .reindex(months.set_index('MarriageMonth').sum().sort_values().index, axis=1)\
      .T.plot(kind='bar', stacked=True,
              colormap=ListedColormap(sns.color_palette("GnBu", 10)), 
              figsize=(24,28))

如果您确实发布了任何潜在的解决方案,或者我应该再次看什么,请说明为什么/哪里出了问题以及应该如何解决这个问题

1 个答案:

答案 0 :(得分:3)

尝试一下:

c.groupby(['MarriageYear', 'MarriageMonth']).size() \
 .unstack().plot.bar(stacked=True, colormap='GnBu', figsize=(12, 14))

enter image description here