如何使用matplotlib.pyplot在x轴上创建分组的条形图(按月和年),在y轴上创建值的条形图?

时间:2020-09-22 06:55:09

标签: python pandas matplotlib

这是我的数据框:

   Year  Month    Views
0  2016      5    97162
1  2016      6   415627
2  2016      7   675071
3  2016      8   962525
4  2016      9  1244306

我希望视图在y轴上绘制,而在x轴上,我想要这样的月份和年份:like so。如何使用matplotlib.pyplot可视化我的数据框,如上图所示?

2 个答案:

答案 0 :(得分:2)

您可以简单地使用seaborn代替。在大多数情况下,它的着色更好,更易于使用。

例如:

import pandas as pd
import seaborn as sns

df = pd.DataFrame({"year": [1,1,1,1,2,3,2,3,2,3],
                   "month": [4, 6, 7, 5, 4, 6, 7, 1, 1, 4],
                   "value": list(range(5,15))})


sns.barplot(data=df, y='value', x='year', hue='month')

输出如下:

enter image description here

答案 1 :(得分:1)

DataFrame.pivotDataFrame.plot.bar一起使用:

df.pivot('Year','Month','Views').plot.bar()

如果需要月份名称,请在透视后添加rename

month_dict = {1 : "January", 2 : "February", 3 : "March", 4 : "April", 
              5 : "May" , 6 : "June", 7 : "July", 8 : "August", 
              9 : "September", 10 : "October" ,11 : "November",12 : "December"}

df.pivot('Year','Month','Views').rename(columns=month_dict).plot.bar()