如何使用 seaborn 在特定的数据帧行中启用热图

问题描述 投票:0回答:0

我正在尝试使用 python 构建一个 seorn 热图案例,其中:

  1. 对角线及以下的所有数字都不应该有热图
  2. 对角线上的所有数字都应该有热图
  3. 在不同类型的总计(总计、总计、百分比变化等)行中,只有 1 行(倒数第二行或倒数第二行)应该有热图。

我能够通过识别对角线元素在单个 DF 上创建 2 个热图来实现前 2 个。

对于第三点,我创建了另一个 DF,其中第一个 DF 的所有元素都替换为 NaN 并且具有不同的总计。

现在我需要为特定的 Tootal 行启用热图,我该如何实现。谢谢

当前代码:

diagonal_mask = np.eye(len(clv), dtype=bool)

print("diagonal_mask:",diagonal_mask)

cmap_for_diag = sns.color_palette(['white'], as_cmap=True)  # create a one-colored colormap for the diagonal

common_keywords = dict(annot=True, fmt='.2f', linecolor='Black', linewidth=.5, ax=ax)
# create a heatmap for the diagonal
map1 = sns.heatmap(clv, cmap=cmap_for_diag, mask=~diagonal_mask, cbar=False, **common_keywords)
map1.xaxis.tick_top()
# create a heatmap for the rest of the data
map2 = sns.heatmap(clv, cmap = 'Blues', mask=diagonal_mask,cbar=False, **common_keywords)

map3=sns.heatmap(ax = ax, data = df_values, annot = True, fmt='g', cmap=ListedColormap(['Red']),cbar=False,linecolor='Grey',linewidth=.5)

map3 是我想要在倒数第二行有热图的那个。我需要从深绿色到浅绿色的颜色表示正值,从橙色到红色表示负值。

python dataframe seaborn heatmap
© www.soinside.com 2019 - 2024. All rights reserved.