【问题标题】:Looping through a list of dataframes to create different plots循环遍历数据框列表以创建不同的图
【发布时间】:2021-03-22 14:24:00
【问题描述】:

我有一个数据框列表:

list=[mean_ave,rmse_ave,bias_ave,
                std_ave,std_diff_ave,trend_ave,trend_diff_ave,
                corr_mean,ano_rmsd]

对于每个数据框,我想生成一个热图,如下例所示。

f, ax = plt.subplots(figsize=(8, 12))
sns.heatmap(mean_ave, cmap='RdBu', 
            annot=True, 
            fmt='.2f')

我正在考虑遍历列表,但我很缺乏经验。

我们将不胜感激。

【问题讨论】:

    标签: pandas for-loop plot


    【解决方案1】:

    关键是在heatmap中添加ax参数

    for idx, df in enumerate(list):
        f, ax = plt.subplots(len(df),1 , figsize=(8, 12))
        sns.heatmap(df, cmap='RdBu', 
                    annot=True, 
                    fmt='.2f', ax=ax[idx])
    

    【讨论】:

      【解决方案2】:

      先说一句:list 不是名称的最佳选择,例如使用 df_list 或 dfs(或任何其他不那么模棱两可的名称)。

      你可以试试这个:

      f, axs = plt.subplots(len(df_list), 1, figsize=(8, 12))
      for i, df in enumerate(list_df):
          sns.heatmap(
          df,
          cmap='RdBu', 
          annot=True, 
          fmt='.2f',
          ax=axs[i])
      

      【讨论】:

      • 谢谢。这个循环给了我一个SyntaxError(位置参数跟在关键字参数之后)
      • 对不起,我没有看到“mean_ave”参数,尝试不使用它并减少关键字(我相应地修改了我的答案)。
      • 现在它给出了一个IndexError(数组的索引太多:数组是一维的,但有两个索引)。抱歉,打扰了!
      • 无铅。尝试使用 axs[i] 而不是 axs[i, 1]
      猜你喜欢
      • 2019-08-26
      • 2021-03-31
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多