Дендрограмма тепловых карт Seaborn с общей цветовой шкалой для нескольких групп - PullRequest
0 голосов
/ 09 марта 2020

В качестве заголовка я пытаюсь получить кластерную карту (то есть тепловую карту с дендрограммой), где группы разделены на разные графики, но легенда часто похожа на эту здесь . Я играл с seaborn facetGrid + heatmap

g = sns.FacetGrid(mrg, col='Chromosome', margin_titles=True, col_wrap=4, height=2)
heats = g.map_dataframe(lambda data, color: sns.heatmap(data[['0', '12', '24', '48']], 
                                                        linewidths=0, 
                                                        cmap="vlag",
                                                        robust=True,
                                                        yticklabels=False
                                                        )
                       )

, который создает этот сюжет here

, который до сих пор не имеет общей легенды (то есть того же цвета на разных участках это не одно и то же число) но это почти правильно. Затем я подумал, что я мог бы просто заменить там карту кластера, и все будет работать.

g = sns.FacetGrid(mrg, col='Chromosome', margin_titles=True, col_wrap=4, height=2)
heats = g.map_dataframe(lambda data, color: sns.clustermap(data[['0', '12', '24', '48']], 
                                                        linewidths=0, 
                                                        cmap="vlag",
                                                        robust=True,
                                                        yticklabels=False,
                                                        cluster_cols=False
                                                        )
                       )

Но это не работает вообще, оно строит только сетку без возникновения ошибки. Я понимаю, что могу просто выполнить l oop через чанки (т.е. первые 4 группы), затем через 2 4 группы и т. Д. И сконструировать его вручную, но мне было интересно, возможно ли вообще сделать это в seaborn / matplotlib.

...