代码之家  ›  专栏  ›  技术社区  ›  Juan C

子批次功能未显示所有子批次

  •  0
  • Juan C  · 技术社区  · 8 年前

    我一直在尝试将我的图转换成函数,以便重新利用它们。现在,我正试图绘制子批次图,其中每个子批次图显示一个类别随时间的销售情况。 在其循环形式中,如下所示:

    Categories=dfs['Category'].unique()
    fig, ax=plt.subplots(figsize=(18,10))
    
    for j,i in zip(Equipos,range(len(Equipos))):
        df0=dfs.loc[dfs['Category']==j]
        df_aux=df0.groupby(['Date'], as_index=False).sum()
        plt.subplot(3,5,i+1)
        plt.plot( df_aux['Date'], df_aux['Sales'])
    
    plt.show()
    

    Category有14个值,因此这会带来一个3x5网格,在最后一个单元格中没有图表。 但当我把它变成这样一个函数时:

    def subplots_category(cat,measure,df=dfs,w=18,h=10):
        fig, ax=plt.subplots(figsize=(18,10))
    
        for j,i in zip(df[cat].unique(),range(len(cat))):
            df0=dfs.loc[dfs[cat]==j]
            df_aux=df0.groupby(['Date'], as_index=False).sum()
            plt.subplot(3,5,i+1)
            plt.plot( df_aux['Date'], df_aux[measure])
    
        plt.show()
    

    然后输入:

    subplots_category('Category','Sales')
    

    我得到一个2x5网格,最后一个没有出现(9个图形)。知道会发生什么吗? (简化并翻译了实际代码,因此,如果需要,我可以发布实际代码)

    2 回复  |  直到 8 年前
        1
  •  1
  •   ImportanceOfBeingErnest    8 年前

    'Category'

    for i, j in enumerate(df[cat].unique()):
    
        2
  •  0
  •   Casey Shoup    8 年前

    subplot(3,5,2)