seaborn 在不重做聚类的情况下更改 clustermap 可视化选项
seaborn change clustermap visualization options without redoing the clustering
是否可以运行 seaborn.clustermap 之前获得的 ClusterGrid
对象?
例如我在下面的例子中使用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
。这个函数returns一个collection
对象(QuadMesh
),它存储在主轴集合列表中(g.ax_heatmap.collections
)。因为,据我所知,seaborn 没有在该轴上绘制任何其他内容,我们可以通过其索引 [0]
获取 QuadMesh
对象,然后我们可以使用适用于该对象的任何函数。
# change the colormap used
g.ax_heatmap.collections[0].set_cmap('seismic')
是否可以运行 seaborn.clustermap 之前获得的 ClusterGrid
对象?
例如我在下面的例子中使用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
。这个函数returns一个collection
对象(QuadMesh
),它存储在主轴集合列表中(g.ax_heatmap.collections
)。因为,据我所知,seaborn 没有在该轴上绘制任何其他内容,我们可以通过其索引 [0]
获取 QuadMesh
对象,然后我们可以使用适用于该对象的任何函数。
# change the colormap used
g.ax_heatmap.collections[0].set_cmap('seismic')