繁体   English   中英

如何将 y 轴显示到 clustermap python 树状图?

[英]how to show y axis to clustermap python dendrogram?

我正在与 python seaborn clustermap 作斗争。 我想 plot 热图上方的树状图,y 轴可见。 让我试着用这个例子更好地解释:

import seaborn as sns
from scipy.cluster import hierarchy
iris = sns.load_dataset("iris")
species = iris.pop("species")
g = sns.clustermap(iris,row_cluster=False,figsize = (18,14),dendrogram_ratio=(.1, .3))
den = hierarchy.dendrogram(g.dendrogram_col.linkage, labels = iris.columns, color_threshold=35,distance_sort=True,ax = g.ax_col_dendrogram) 

没有yaxis的clustermap

如您所见,它很好地显示了带有绿色和蓝色线条的 color_threshold,但没有显示 y 轴刻度。

如果你只是从 scipy 调用层次结构,你会得到这个:

from scipy.cluster import hierarchy
hierarchy.dendrogram(g.dendrogram_col.linkage, labels = iris.columns, color_threshold=35,distance_sort=True) 

你会得到这个数字:

带有yaxis的scipy层次结构

有人有办法在clustermap dendrogram上显示y轴吗? 谢谢伊曼纽尔马提尼

需要的第一个更改是打开axis 然后你需要设置一个刻度定位器和格式化程序。 或者,您可以设置水平网格,并且可以使一些脊椎可见。

这是一些示例代码:

import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter, MaxNLocator
import seaborn as sns
from scipy.cluster import hierarchy

iris = sns.load_dataset("iris")
species = iris.pop("species")
g = sns.clustermap(iris, row_cluster=False, figsize=(18, 14), dendrogram_ratio=(.1, .3))
den = hierarchy.dendrogram(g.dendrogram_col.linkage, labels=iris.columns,
                           color_threshold=35, distance_sort=True, ax=g.ax_col_dendrogram)
g.ax_col_dendrogram.axis('on')
# sns.despine(ax=g.ax_col_dendrogram, left=False, right=True, top=True, bottom=True)
g.ax_col_dendrogram.yaxis.set_major_locator(MaxNLocator())
g.ax_col_dendrogram.yaxis.set_major_formatter(ScalarFormatter())
g.ax_col_dendrogram.grid(axis='y', ls='--', color='grey')
# g.ax_col_dendrogram.yaxis.tick_right()
plt.show()

带 y 轴的集群图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM