Python seaborn更改clustermap可视化选项,无需重新进行群集

Python seaborn更改clustermap可视化选项,无需重新进行群集,python,seaborn,hierarchical-clustering,Python,Seaborn,Hierarchical Clustering,是否可以在以前获得的ClusterGrid对象上运行seaborn.clustermap 例如,在以下示例中,我使用用户clustermap获取g: import seaborn as ns data = sns.load_dataset("iris") species = iris.pop("species") g = sns.clustermap( data, cmap="mako", col_cluster=False, yticklabels=Fals

是否可以在以前获得的
ClusterGrid
对象上运行seaborn.clustermap

例如,在以下示例中,我使用用户clustermap获取g:

import seaborn as ns
data = sns.load_dataset("iris")
species = iris.pop("species")

g = sns.clustermap(
    data, 
    cmap="mako",
    col_cluster=False,
    yticklabels=False, figsize=(5, 10),
    method='ward',
    metric="euclidean"
)
我想尝试不同的可视化选项,如不同的颜色贴图、图形大小、带标签和不带标签的外观等

使用
iris
数据集,一切都非常快,但我有一种方法,即使用更大的数据集,聚类部分需要花费大量时间


我可以使用
g
使用不同选项显示热图和树状图吗?

clustermap
返回的对象类型为
ClusterGrid
。该对象在
seaborn
中没有真正的文档记录,但是,它本质上只是几个
对象的容器。根据要进行的操作类型,您可能只需要访问相关的
对象或图形本身:

# change the figure size after the fact
g.fig.set_size_inches((4,4))
# remove the labels of the heatmap
g.ax_heatmap.set_xticklabels([])
颜色映射的东西更难访问
clustermap
在引擎盖下使用matplotlib
pcolormesh
。此函数返回一个
collection
对象(
QuadMesh
),该对象存储在主轴的集合列表中(
g.ax\u heatmap.collections
)。由于seaborn不会在该轴上绘制任何其他图形,因此我们可以通过索引
[0]
获得
四边形网格对象,然后我们可以使用适用于该对象的任何函数

# change the colormap used
g.ax_heatmap.collections[0].set_cmap('seismic')

要定义您自己的颜色映射,例如相关特征的发散颜色映射,您可以使用matplotlib中的
。颜色导入列表颜色映射;想要的cmap=列表颜色图(sns.发散调色板(240,10,n=9));g、 ax\u热图。集合[0]。设置\u cmap(通缉\u cmap)