我有一个数据集:
ReviewDate_year,ReviewDate_month,Sales
2010,11,1
2011,02,2
2011,11,1
2011,12,6
2012,01,11
2012,02,8
2012,03,3
2012,04,1
2012,05,8
2012,06,3
2012,07,1
2012,08,2
2012,09,1
2012,11,1
2012,12,8
2013,01,2
2013,02,2
2013,03,4
2013,04,4
2013,05,7
2013,06,5
2013,07,6
2013,08,4
2013,09,4
2013,10,5
2013,11,3
2013,12,5
2014,01,9
2014,02,4
2014,03,8
2014,04,7
2014,05,3
2014,06,7
2014,07,1
如何在不同行中按月和不同年份绘制销售额
我当然可以按年完成
df_2013 = df_monthlycount[df_monthlycount['ReviewDate_year'] == 2013]
df_2014 = df_monthlycount[df_monthlycount['ReviewDate_year'] == 2014]
df_2013.plot(x='ReviewDate_month',y='ProductId')
plt.show()
但是如何在一张图表中创建不同年份的行?
答案 0 :(得分:4)
您可以使用groupby
图。您可以指定ax
并在ax
上绘制所有内容,而不是为每个组创建一个ax
:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm
ax = plt.subplot(111)
df[df.ReviewDate_year.isin([2012,2013])].groupby('ReviewDate_year').plot(y='Sales', x='ReviewDate_month', kind='line', ax=ax)
L = plt.legend()
_ = [plt.setp(item, 'text', T) for item, T in zip(L.texts, ['2012','2013'])]
_ = ax.set_xticks(df.ReviewDate_month.unique())