提问者:小点点

如何使用熊猫在循环中显示多个相关热图?


我发现这篇文章只使用熊猫就可以很容易地显示相关热图。这种方法只适用于在jupyter笔记本中显示一个热图。现在我想使用jupyter笔记本在循环中显示多个数据框。怎么做?它根本没有显示任何。如果我使用print(),它只会显示它是熊猫样式器对象。

利用熊猫绘制相关矩阵

现在我将这个热图定义为一个函数,然后我将在循环中使用它。


def heatmap_pandas(corr):
    mask = np.zeros_like(corr, dtype=bool)
    mask[np.tril_indices_from(mask)] = True  
    corr[mask] = np.nan
    (corr
     .style
     .background_gradient(cmap='coolwarm', axis=None, vmin=-1, vmax=1)
     .highlight_null(null_color='#f1f1f1')  # Color NaNs grey
     .set_precision(2))

for corr in [corr_1,corr_2,corr_3]:
    heatmap_pandas(df_time_corr)

上面根本没有显示任何热图。我理解,因为它是为逐个单元在jupyter笔记本上工作而设计的。我喜欢这种方法,那么如何让它在循环中工作呢?谢谢


共1个答案

匿名用户

在Jupyter笔记本中,您可以使用showfor循环中强制显示项目。所以在你的情况下,你可以做:

def heatmap_pandas(corr):
    mask = np.zeros_like(corr, dtype=bool)
    mask[np.tril_indices_from(mask)] = True  
    corr[mask] = np.nan

    # display the styler
    display(corr       
     .style
     .background_gradient(cmap='coolwarm', axis=None, vmin=-1, vmax=1)
     .highlight_null(null_color='#f1f1f1')  # Color NaNs grey
     .set_precision(2))

for corr in [corr_1,corr_2,corr_3]:
    heatmap_pandas(df_time_corr)