是否可以在之前获得的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
中,但是,它本质上只是一些 Axes
对象的容器。根据您想要进行的操作类型,您可能只需要访问相关的 Axes 对象或图形本身:
# 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_heatmap.collections
) 中。因为,据我所知,seaborn 不会在该轴上绘制任何其他内容,我们可以通过索引 [0]
获取 QuadMesh
对象,然后我们可以使用任何适用的函数到那个对象。
# change the colormap used
g.ax_heatmap.collections[0].set_cmap('seismic')
关于python - seaborn 更改聚类图可视化选项,无需重做聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53816794/