如何创建多个热图
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)
我有如下代码并排绘制 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)