我发现这篇文章仅使用 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 中,您可以使用 display
在 for
循环中强制显示项目。所以在你的情况下,你可以这样做:
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/