我发现这篇文章只使用熊猫就可以很容易地显示相关热图。这种方法只适用于在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笔记本上工作而设计的。我喜欢这种方法,那么如何让它在循环中工作呢?谢谢
在Jupyter笔记本中,您可以使用show
在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)