带有名称的 Scipy 树状图

     2023-03-12     36

关键词:

【中文标题】带有名称的 Scipy 树状图【英文标题】:Scipy dendrogram with names 【发布时间】:2016-10-26 06:34:13 【问题描述】:

我在工作中使用来自this post 的示例树状图,但也想跟踪哪一行/哪列来自哪条数据。

我已将数据名称记录为names 的代码编辑如下,并希望在距离矩阵可视化的底部和右侧打印出名称。我尝试在对dendrogram 的调用中添加labels = names,但这没有帮助。

有谁知道如何给这个添加标签?

import scipy
import pylab
import scipy.cluster.hierarchy as sch 

# Generate random features and distance matrix.
x = scipy.rand(40)
D = scipy.zeros([40,40])
for i in range(40):
    for j in range(40):
        D[i,j] = abs(x[i] - x[j])

### new code
names = [ ] 
for i in range(40):
    names.append( 'str%i'%( i ) ) 
    print names[-1]
### end new code

# Compute and plot first dendrogram.
fig = pylab.figure(figsize=(8,8))
ax1 = fig.add_axes([0.09,0.1,0.2,0.6])
Y = sch.linkage(D, method='centroid')
Z1 = sch.dendrogram(Y, orientation='right')
ax1.set_xticks([])
ax1.set_yticks([])

# Compute and plot second dendrogram.
ax2 = fig.add_axes([0.3,0.71,0.6,0.2])
Y = sch.linkage(D, method='single')
Z2 = sch.dendrogram(Y)
ax2.set_xticks([])
ax2.set_yticks([])

# Plot distance matrix.
axmatrix = fig.add_axes([0.3,0.1,0.6,0.6])
idx1 = Z1['leaves']
idx2 = Z2['leaves']
D = D[idx1,:]
D = D[:,idx2]
im = axmatrix.matshow(D, aspect='auto', origin='lower', cmap=pylab.cm.YlGnBu)
axmatrix.set_xticks([])
axmatrix.set_yticks([])

# Plot colorbar.
#axcolor = fig.add_axes([0.91,0.1,0.02,0.6])
#pylab.colorbar(im, cax=axcolor)
fig.show()
fig.savefig('dendrogram.png')

【问题讨论】:

【参考方案1】:

我写的python包heatmapcluster(可用on PyPI)接受(事实上,需要)标签。

这是使用heatmapcluster 的脚本的简化版本:

import numpy as np
import matplotlib.pyplot as plt
from heatmapcluster import heatmapcluster


# Generate random features and distance matrix.
x = np.random.rand(40)
D = np.abs(np.subtract.outer(x, x))

names = ['str%i' % i for i in range(len(x))]

h = heatmapcluster(D, names, names,
                   num_row_clusters=3, num_col_clusters=3,
                   label_fontsize=8,
                   xlabel_rotation=-75,
                   cmap=plt.cm.coolwarm,
                   show_colorbar=True,
                   top_dendrogram=True)

plt.show()

这是它生成的情节:

(请注意,对于像D 这样的对称数组,对两个轴进行聚类实际上没有任何意义。通过对称性,它们将生成相同的树状图。)

【讨论】:

在 Scipy/Matplotlib 中注释树状图节点

】在Scipy/Matplotlib中注释树状图节点【英文标题】:AnnotatingDendrogramnodesinScipy/Matplotlib【发布时间】:2015-07-3019:30:17【问题描述】:我正在尝试在scipy.cluster.hierarchy.dendrogram生成的树状图中标记节点。我正在使用augmenteddendrogramsuggeste... 查看详情

2 树状图 + 来自 scipy 的压缩相关矩阵的热图

】2树状图+来自scipy的压缩相关矩阵的热图【英文标题】:2Dendrograms+Heatmapfromcondensedcorrelationmatrixwithscipy【发布时间】:2019-03-0205:09:02【问题描述】:我尝试创建这样的东西:plottingresultsofhierarchicalclusteringontopofamatrixofdatainpython不... 查看详情

在 scipy 中修剪树状图(分层聚类)

】在scipy中修剪树状图(分层聚类)【英文标题】:Pruningdendrograminscipy(hierarchicalclustering)【发布时间】:2012-05-0512:21:14【问题描述】:我有一个包含大约5000个条目的距离矩阵,并使用scipy的层次聚类方法对矩阵进行聚类。我用于... 查看详情

我如何获得由 scipy.cluster.hierarchy 制作的树状图的子树

】我如何获得由scipy.cluster.hierarchy制作的树状图的子树【英文标题】:howdoIgetthesubtreesofdendrogrammadebyscipy.cluster.hierarchy【发布时间】:2013-05-2819:36:49【问题描述】:我对这个模块(scipy.cluster.hierarchy)感到困惑......但仍然有一些!例... 查看详情

在 Scipy 错误中为大型数据集绘制树状图

】在Scipy错误中为大型数据集绘制树状图【英文标题】:PlottingdendrograminScipyerrorforlargedataset【发布时间】:2012-04-2913:21:30【问题描述】:我正在使用Scipy进行层次聚类。我确实设法使用fcluster在阈值上获得平坦的集群。但我需要可... 查看详情

在距离高度从 SciPy 切割树状图/聚类树

】在距离高度从SciPy切割树状图/聚类树【英文标题】:CuttingDendrogram/ClusteringTreefromSciPyatdistanceheight【发布时间】:2016-07-3103:28:52【问题描述】:我正在尝试学习如何在Python中使用dendrograms使用SciPy。我想获得集群并能够可视化它... 查看详情

scipy树状图中的倒置分支

】scipy树状图中的倒置分支【英文标题】:Upsidedownbranchinginscipydendrogram【发布时间】:2019-08-1223:45:26【问题描述】:我试图模仿这个问题中发现的情节:plottingresultsofhierarchicalclusteringontopofamatrixofdatainpython我已经多次使用那里找到... 查看详情

如何创建带有彩色树枝的树状图?

】如何创建带有彩色树枝的树状图?【英文标题】:Howtocreateadendrogramwithcoloredbranches?【发布时间】:2013-08-0420:34:47【问题描述】:我想在R中创建一个带有彩色分支的树状图,如下所示。到目前为止,我使用以下命令来创建标准... 查看详情

如何在 scipy 创建的树状图中获得与颜色簇相对应的平面聚类

】如何在scipy创建的树状图中获得与颜色簇相对应的平面聚类【英文标题】:Howtogetflatclusteringcorrespondingtocolorclustersinthedendrogramcreatedbyscipy【发布时间】:2011-12-0115:57:00【问题描述】:使用here发布的代码,我创建了一个不错的层... 查看详情

如何调整树状图的y轴大小

】如何调整树状图的y轴大小【英文标题】:Howtoresizeyaxisofadendogram【发布时间】:2013-10-0523:31:36【问题描述】:我在进行层次聚类后使用scipy.cluster.hierarchyassch绘制树状图。问题是聚类发生在树状图的顶部,介于0.8和1.0之间,这是... 查看详情

如何使用树状图处理大量数据

】如何使用树状图处理大量数据【英文标题】:Howtousedendrogramtoworkwithalotofdata【发布时间】:2016-04-2213:03:41【问题描述】:我正在使用python2.7.9。我使用scipy.cluster.hierarchy.dendrogram来显示我的聚类结果。Dendrogramhere。一个问题是,... 查看详情

绘制聚类热图(带树状图)/Python

...】:我正在尝试在Python中使用plotly创建一个聚集的热图(带有树状图)。他们在他们的网站上制作的那个不能很好地扩展,我已经找到了各种解决方案,但其中大多数都是用R或JavaScript编写的。我正在尝试仅从热图的左侧创建一... 查看详情

如何在 heatmap.2 中展开树状图

...p.2【发布时间】:2014-03-2520:15:34【问题描述】:我有以下带有树状图的热图。完整数据为here。问题是左边的树状图被压扁了。如何在不改变热图列大小的情况下解压(展开)它?它是用这段代码生成的:#!/usr/bin/Rscriptlibrary(gplots... 查看详情

如何获取树状图中节点下所有叶子的列表?

】如何获取树状图中节点下所有叶子的列表?【英文标题】:Howtogetalistofallleavesunderanodeinadendrogram?【发布时间】:2019-07-1514:04:48【问题描述】:我使用scipy.cluster.hierarchy.dendrogram做了一个树状图,使用以下生成的数据:a=np.random.mu... 查看详情

带有 skbio 的二维 PCoA 图

】带有skbio的二维PCoA图【英文标题】:2-dimensionalPCoAplotwithskbio【发布时间】:2021-10-1819:51:56【问题描述】:我有一个Jensen-Shannon距离(JSD)矩阵,我想用主坐标分析(PCoA)将其可视化。我用Scipy获得JSD,用Skbio制作PCoA。我可以成功获得... 查看详情

带有两个方程的 scipy.minimize 仅返回初始值

】带有两个方程的scipy.minimize仅返回初始值【英文标题】:scipy.minimizewithtwoequationsreturnsinitialvaluesonly【发布时间】:2022-01-2116:00:31【问题描述】:我想得到以下方程组的最优解:x_w*1010+x_m*d_m=1017x_w+x_m=1我的代码如下:fromscipy.optimi... 查看详情

在 jupyter notebook 中使用 plotly python 绘制具有不等热图的交互式树状图

...正在尝试使用looklikethisone的Plotly包在jupyter笔记本上绘制带有不等热图的 查看详情

tree命令

...和目录清单加上色彩,便于区分各种类型;-d:先是目录名称而非内容;-D:列出文件或目录的更改时间;-f:在每个文件或目录之前,显示完整的相对路径名称;-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加... 查看详情