python - 如何使用 Pandas 循环显示多个相关热图?

标签 python pandas pandas-styles

我发现这篇文章仅使用 pandas 就可以非常轻松地显示相关热图。这种方法只能在 jupyter notebook 中显示一个热图。现在我想使用 jupyter notebook 循环显示多个数据框。怎么做?它根本没有显示任何内容。如果我使用 print(),它只会显示它是 pandas styler 对象。

Plot correlation matrix using pandas

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


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 notebook 上工作。我喜欢这种方法,那么如何让它在循环中工作呢?谢谢

最佳答案

在 Jupyter Notebook 中,您可以使用 displayfor 循环中强制显示项目。所以在你的情况下,你可以这样做:

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)

关于python - 如何使用 Pandas 循环显示多个相关热图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70699436/

相关文章:

python - Pandas 数据框的颜色行并转换为 HTML 表格

python - 如何在 Altair 中设置标签文本大小?

python - matplotlib 中带有双 for 循环的动画图

python - 在Python中迭代时从集合中删除集合

python - Pandas 列在一个组内排序,忽略其他列

python - 使用 pandas 样式,使用逗号作为小数点分隔符

pandas - 如何仅对 Pandas 数据框列的部分进行着色?

python - 在 Python 中使用 main 方法有什么好处?

python - 仅使用 pandas 来填补空白,而不是在末端使用 NaN

python - 如何获取满足特定条件的行的索引号