Seaborn изменить параметры визуализации кластерной карты без повторной кластеризации - PullRequest
0 голосов
/ 17 декабря 2018

Можно ли запустить seaborn.clustermap для ранее полученного объекта ClusterGrid?

Например, я использую кластерную карту для получения 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 Ответ

0 голосов
/ 17 декабря 2018

объект, возвращаемый 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).Поскольку, AFAIK, seaborn больше ничего не отображает на этих осях, мы можем получить объект QuadMesh по его индексу [0], а затем мы можем использовать любую функцию, применимую к этому объекту.

# change the colormap used
g.ax_heatmap.collections[0].set_cmap('seismic')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...