# seaborn.clustermap

> 译者：[cancan233](https://github.com/cancan233)

```py
seaborn.clustermap(data, pivot_kws=None, method='average', metric='euclidean', z_score=None, standard_scale=None, figsize=None, cbar_kws=None, row_cluster=True, col_cluster=True, row_linkage=None, col_linkage=None, row_colors=None, col_colors=None, mask=None, **kwargs)
```

将矩阵数据集绘制成分层聚类热图。

参数：**data：2D array-like**

> 用于聚类的矩形数据，不能包含 NA。

`pivot_kws`：字典，可选。

> 如果数据是整齐的数据框架，可以为 pivot 提供关键字参数以创建矩形数据框架。

`method`：字符串，可选。

> 用于计算聚类的链接方法。有关更多信息，请参阅文档 scipy.cluster.hierarchy.linkage [https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html](https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html)

`metric`：字符串，可选。

> 用于数据的距离度量。有关更多选项，请参阅 scipy.spatial.distance.pdist 文档。 [https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html) 要对行和列使用不同的度量（或方法），您可以子集构造每个链接矩阵，并将它们提供为`{row, col}_linkage.`

`z_score`：int 或 None,可选。

> 0（行）或 1（列）。是否计算行或列的 z 分数。Z 得分为 z = (x - mean)/std，因此每行（列）中的值将减去行（列）的平均值，然后除以行（列）的标准偏差。这可确保每行（列）的均值为 0，方差为 1.

`standard_scale`：int 或 None, 可选。

> 0（行）或 1（列）。是否标准化该维度，即每行或每列的含义，减去最小值并将每个维度除以其最大值。

**figsize: 两个整数的元组, 可选。**

> 要创建的图形的大小。

`cbar_kws`：字典, 可选。

> 要传递给`heatmap`中的`cbar_kws`的关键字参数，例如向彩条添加标签。

`{row,col}_cluster`：布尔值, 可选。

> 如果为真，则对{rows, columns}进行聚类。

`{row,col}_linkage`：numpy.array, 可选。

> 行或列的预计算链接矩阵。有关特定格式，请参阅 scipy.cluster.hierarchy.linkage.

`{row,col}_colors`：list-like 或 pandas DataFrame/Series, 可选。

> 要为行或列标记的颜色列表。用于评估组内的样本是否聚集在一起。可以使用嵌套列表或 DataFrame 进行多种颜色级别的标注。如果以 DataFrame 或 Series 形式提供，则从 DataFrames 列名称或 Series 的名称中提取颜色标签。DataFrame/Series 颜色也通过索引与数据匹配，确保以正确的顺序绘制颜色。

`mask`：布尔数组或 DataFrame, 可选。

> 如果通过，数据将不会显示在`mask`为真的单元格中。具有缺失值的单元格将自动被屏蔽。仅用于可视化，不用于计算。

`kwargs`：其他关键字参数。

> 所有其他关键字参数都传递给`sns.heatmap`


返回值：`clustergrid`：ClusterGrid

> ClusterGrid 实例。



注意点：

返回的对象有一个`savefig`方法，如果要保存图形对象而不剪切树形图，则应使用该方法。

要访问重新排序的行索引，请使用：`clustergrid.dendrogram_row.reordered_in`

列索引, 请使用: `clustergrid.dendrogram_col.reordered_ind`

范例

绘制聚类热图。

```py
>>> import seaborn as sns; sns.set(color_codes=True)
>>> iris = sns.load_dataset("iris")
>>> species = iris.pop("species")
>>> g = sns.clustermap(iris)

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-1.png](img/a7da372ba56ceec7b8b9e01f418bb1e3.jpg)

使用不同的相似性指标。

```py
>>> g = sns.clustermap(iris, metric="correlation")

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-2.png](img/e102a295ca812e5085369488cedb3dac.jpg)

使用不同的聚类方法。

```py
>>> g = sns.clustermap(iris, method="single")

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-3.png](img/64c061b1d37ef563dc9827fbb5c671a1.jpg)

使用不同的色彩映射并忽略色彩映射限制中的异常值。

```py
>>> g = sns.clustermap(iris, cmap="mako", robust=True)

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-4.png](img/b9161032a5adb7fb6694c185246664aa.jpg)

改变图的大小。

```py
>>> g = sns.clustermap(iris, figsize=(6, 7))

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-5.png](img/f7ed7c41c4e6dbed729d2a3ea8e2d0ff.jpg)

绘制其原始组织中的一个轴。

```py
>>> g = sns.clustermap(iris, col_cluster=False)

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-6.png](img/3acbff477d462457ef54fe167311c30e.jpg)

添加彩色标签。

```py
>>> lut = dict(zip(species.unique(), "rbg"))
>>> row_colors = species.map(lut)
>>> g = sns.clustermap(iris, row_colors=row_colors)

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-7.png](img/da7ff8019c2f5f473c8c8958fd395e76.jpg)

标准化列中的数据。

```py
>>> g = sns.clustermap(iris, standard_scale=1)

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-8.png](img/4c9cb45bac2fd0bc0e8ebf7b6411ecc9.jpg)

正规化行内数据。

```py
>>> g = sns.clustermap(iris, z_score=0)

```

![http://seaborn.pydata.org/_images/seaborn-clustermap-9.png](img/5e7f4bf9cb93adb18b8275b2e6477182.jpg)
