代码之家  ›  专栏  ›  技术社区  ›  lucacerone

seaborn更改clustermap可视化选项而不重新进行群集

  •  1
  • lucacerone  · 技术社区  · 6 年前

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

    例如,在下面的示例中,i user 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 用不同的选项显示热图和树木图?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Diziet Asahi    6 年前

    返回的对象 clustermap 属于类型 ClusterGrid . 那个对象没有真正记录在 seaborn 但是,它本质上只是一个容器 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([])
    

    彩色地图的内容比较难访问。 聚类图 使用MatPultLIB pcolormesh 在引擎盖下面。此函数返回 collection 对象(对象) QuadMesh ,存储在主轴集合列表中( g.ax_heatmap.collections )因为,阿法克,希伯恩没有在那根轴上画任何其他的东西,我们可以得到 四边形 按其索引列出的对象 [0] ,然后我们可以使用任何适用于该对象的函数。

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