如何创建多个热图

How to create multiple heatmaps

我有如下代码并排绘制 6 个散点图。

import numpy as np
import pandas as pd
df_emb = pd.DataFrame(np.random.rand(1000,2))
df_emb['randNumCol'] = np.random.randint(0,6, size=len(df_emb))
df_emb.columns=['X','Y','label']
df_emb.head()

import matplotlib.pyplot as plt
import seaborn as sns



grid = sns.FacetGrid(df_emb, col = "label", hue = "label", col_wrap=3)
grid.map(sns.scatterplot, "X", "Y")

grid.add_legend()

plt.show()

1) 有没有办法绘制热图而不是散点图?我试过 grid.map(sns.heatmap, "X", "Y") 但这不起作用。我想在每张地图上显示观察密度较高的特定区域

2) 如果我有另一个具有标签实际含义的列表,例如 labels_meaning=['a','b','c','d','e','f'] 那么我如何显示这些标签而不是 0,1,2 等

我会使用地图来应用有意义的标签名称。像下面这样...

label_map  = {0: 'Text 1', 1: 'Text 2', 2: 'Text 3', 3: 'Text 4', 4: 'Text 5', 5: 'Text 6'}
df_emb['label'] = df_emb['label'].map(label_map)

对于热图,您还可以尝试使用 kdeplot

grid.map(sns.kdeplot, "X", "Y", fill=True, common_grid=True)