Matplotlib:根据索引

时间:2019-03-04 23:15:47

标签: python for-loop matplotlib

我有一个熊猫数据框,其中包含3个变量的多重索引数据,如下表所示:

Origin    Type       Brand  Date       Units
Kenya     Espresso     A    2015-01-02  216
Colombia  Macchiato    B    2015-01-03  176
Mexico    Espresso     C    2015-01-04  170
India     Espresso     A    2015-01-05  209
Uganda    Macchiato    B    2015-01-06  138 
Peru      Macchiato    B    2015-01-06  200

有6个原产国,2种咖啡和3个品牌,其中一列包含该产品的日期和该日期的销售单位。

我想要的是在一条线图中绘制出所有日期的售出单位,该线图中显示了所有类型品牌组合的所有国家的趋势,即6幅图,显示了6个原产国。 我命令数据框按brand-segment-origin的日期顺序排列,我很累的是:

plt.figure(figsize=(20,10))

for idx, (key, grp) in enumerate(a.groupby([ 'Brand','Type', 'Origin'])):

   plt.plot( grp.Date, grp.Units, linewidth=1)
   plt.legend(['Kenya', 'Colombia', 'Mexico', 'India','Uganda','Peru'], loc='upper left')
   if((idx)%6==0):
       plt.cla() 

要为第一个品牌组合绘制前6条线,请清除该图并创建一个新图,但是输出仅为3个国家/地区的3条线的一个图。 如果删除if,我将得到所有线条的一个图。 请帮忙。谢谢。

Example plot of all the combinations of type brand in one plot

0 个答案:

没有答案