我正在使用它seaborn clustermap创建集群,在视觉上它工作得很好(这个例子产生非常相似的结果).
但是,我无法弄清楚如何以编程方式提取集群.例如,在示例链接中,我怎么能发现1-1 rh,1-1 lh,5-1 rh,5-1 lh是一个很好的聚类?视觉上很容易.我正在尝试使用查看数据和树形图的方法,但我收效甚微
从示例编辑代码:
import pandas as pd
import seaborn as sns
sns.set(font="monospace")
df = sns.load_dataset("brain_networks", header=[0, 1, 2], index_col=0)
used_networks = [1, 5, 6, 7, 8, 11, 12, 13, 16, 17]
used_columns = (df.columns.get_level_values("network")
.astype(int)
.isin(used_networks))
df = df.loc[:, used_columns]
network_pal = sns.cubehelix_palette(len(used_networks),
light=.9, dark=.1, reverse=True,
start=1, rot=-2)
network_lut = dict(zip(map(str, used_networks), network_pal))
networks = df.columns.get_level_values("network")
network_colors = pd.Series(networks).map(network_lut)
cmap = sns.diverging_palette(h_neg=210, h_pos=350, s=90, l=30, as_cmap=True)
result = sns.clustermap(df.corr(), …Run Code Online (Sandbox Code Playgroud) python cluster-analysis hierarchical-clustering dendrogram seaborn
我试图从hclust函数输出中绘制树形图.我希望树形图是水平排列而不是默认值,可以通过(例如)获得
require(graphics)
hc <- hclust(dist(USArrests), "ave")
plot(hc)
Run Code Online (Sandbox Code Playgroud)
我尝试使用as.dendrogram()函数,plot(as.dendrogram(hc.poi),horiz=TRUE)但结果没有有意义的标签:

如果我使用plot(hc.poi,labels=c(...))哪个没有as.dendrogram(),我可以传递labels=参数,但现在树形图是垂直的而不是水平的.有没有办法水平同时排列树形图并分配用户指定的标签?谢谢!
更新:作为USArrests数据集的一个例子,假设我想使用州名的前两个字母的缩写作为标签,这样我想以某种方式labs进入绘图功能:
labs = substr(rownames(USArrests),1,2)
这使
[1] "Al" "Al" "Ar" "Ar" "Ca" "Co" "Co" "De" "Fl" "Ge" "Ha"
[12] "Id" "Il" "In" "Io" "Ka" "Ke" "Lo" "Ma" "Ma" "Ma" "Mi"
[23] "Mi" "Mi" "Mi" "Mo" "Ne" "Ne" "Ne" "Ne" "Ne" "Ne" "No"
[34] "No" "Oh" "Ok" "Or" "Pe" "Rh" "So" "So" "Te" "Te" "Ut"
[45] "Ve" "Vi" …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个树形图,我的样本有5个组代码(作为样本名称/种类/等,但重复).
因此,我有两个问题,帮助将是伟大的:
如何在叶标签中显示组代码(而不是样本编号)?
我希望为每个代码组分配一种颜色并根据它对叶子标签着色(可能会发生它们不在同一个分支中,我可以找到更多信息)?
是否可以使用我的脚本执行此操作(ape或ggdendro):
sample<-read.table("C:/.../DOutput.txt", header=F, sep="")
groupCodes <- sample[,1]
sample2<-sample[,2:100]
d <- dist(sample2, method = "euclidean")
fit <- hclust(d, method="ward")
plot(as.phylo(fit), type="fan")
ggdendrogram(fit, theme_dendro=FALSE)
Run Code Online (Sandbox Code Playgroud)
随机数据框替换我的read.table:
sample = data.frame(matrix(floor(abs(rnorm(20000)*100)),ncol=200))
groupCodes <- c(rep("A",25), rep("B",25), rep("C",25), rep("D",25)) # fixed error
sample2 <- data.frame(cbind(groupCodes), sample)
Run Code Online (Sandbox Code Playgroud) 我正在创建Mike Bostock的分层边缘捆绑图的修改版本:
http://mbostock.github.com/d3/talk/20111116/bundle.html
但我想制作跨越某些数据组的弧,如下所示:

我目前只是硬编码弧的长度,但我想动态地做.我怎么能做到这一点?这是我目前的代码:
/* MH - USER DEFINED VARIABLES */
var chartConfig = { "Tension" : .85, "canvasSize" : 800, "dataFile" : "../data/projects.json", "linePadding" : 160, "textPadding" : 30, "arcPadding" : 5, "arcWidth" : 30 }
var pi = Math.PI;
var radius = chartConfig.canvasSize / 2,
splines = [];
var cluster = d3.layout.cluster() //Cluster is the diagram style, a node to link dendrogram dendrogram (tree diagram)
.size([360, radius - chartConfig.linePadding]); //MH - sets the size of the circle …Run Code Online (Sandbox Code Playgroud) 我有一个data.frame对象.举个简单的例子:
> data.frame(x=c('A','A','B','B','B'), y=c('Ab','Ac','Ba', 'Ba','Bd'), z=c('Abb','Acc','Bad', 'Bae','Bdd'))
x y z
1 A Ab Abb
2 A Ac Acc
3 B Ba Bad
4 B Ba Bae
5 B Bd Bdd
Run Code Online (Sandbox Code Playgroud)
实际数据中有更多的行和列.我怎么能像这样创建树状图的嵌套树结构对象:
|---Ab---Abb
A---|
| |---Ac---Acc
--| /--Bad
| |---Ba-------|
B---| \--Bae
|---Bb---Bdd
Run Code Online (Sandbox Code Playgroud) 给定根绝对目录路径.如何生成其下方所有路径的树状图对象,以便我可以使用R可视化目录树?
假设以下调用返回以下叶节点.
list.files(path, full.names = TRUE, recursive = TRUE)
root/a/some/file.R
root/a/another/file.R
root/a/another/cool/file.R
root/b/some/data.csv
root/b/more/data.csv
Run Code Online (Sandbox Code Playgroud)
我想在R中创建一个类似unix tree程序输出的图:
root
??? a
? ??? another
? ? ??? cool
? ? ? ??? file.R
? ? ??? file.R
? ??? some
? ??? file.R
??? b
??? more
? ??? data.csv
??? some
??? data.csv
Run Code Online (Sandbox Code Playgroud)
如果解决方案涉及将文件系统树分解为两个,那将特别有用data.frame:
然后从这两个data.frames 构建树形图对象.
我想用我用字典(即{leaf: color})形式制作的彩色地图为我的星团着色.
我试过跟随https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/,但由于某种原因颜色搞砸了.默认情节看起来不错,我只是想以不同方式分配这些颜色.我看到有一个link_color_func,但当我尝试使用我的色彩图(D_leaf_color字典)时,我得到一个错误b/c它不是一个功能.我创建D_leaf_color了自定义与特定群集关联的叶子的颜色.在我的实际数据集中,颜色意味着什么,所以我正在转向任意颜色分配.
我不想color_threshold在我的实际数据中使用b/c,我有更多的簇并SciPy重复颜色,因此这个问题...
如何使用我的叶色字典来自定义树形图簇的颜色?
我做了一个GitHub问题https://github.com/scipy/scipy/issues/6346,在那里我进一步详细阐述了解释SciPy层次聚类树形图输出的叶子着色方法 ?(也许发现了一个错误...)但我仍然无法弄清楚如何实际:(i)使用树状图输出用我指定的颜色字典重建我的树形图或(ii)重新格式化我的D_leaf_color字典link_color_func参数.
# Init
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
# Load data
from sklearn.datasets import load_diabetes
# Clustering
from scipy.cluster.hierarchy import dendrogram, fcluster, leaves_list
from scipy.spatial import distance
from fastcluster import linkage # You can use SciPy one too …Run Code Online (Sandbox Code Playgroud) python machine-learning hierarchical-clustering dendrogram scipy
我有一个树形图给我作为图像.由于它不是很大,我可以"手动"构建它到R对象中.
所以我的问题是如何手动创建一个树形图(或"hclust")对象,当我所有的是树形图像?
我看到有一个叫做"as.dendrogram"的函数但是我无法找到如何使用它的例子.
(PS:这篇文章是由以下我的问题在这里)
非常感谢,Tal
我正在使用scipy-cluster为某些数据生成层次聚类.作为应用程序的最后一步,我调用dendrogram函数绘制聚类.我使用内置的Python 2.6.1和这个matplotlib包在Mac OS X Snow Leopard上运行.程序运行正常,但最后Rocket Ship图标(据我所知,这是python中GUI应用程序的启动程序)显示并立即消失而不做任何事情.没有显示任何内容.如果我在通话后添加'raw_input',它就会永久地在停靠栏中上下跳动.如果我从终端运行matplotlib的简单示例应用程序,它运行正常.有没有人有这方面的经验?
我有一种情况,我正在绘制一个带有类标签的数据点的树形图.我希望看到凝聚聚类将具有相同标签的聚类分组在一起.对标签进行颜色编码可以轻松读取这样的树形图.有没有办法在R中用ggdendro实现这个目的?
dendrogram ×10
r ×6
python ×3
scipy ×2
colors ×1
d3.js ×1
dataframe ×1
dendextend ×1
ggplot2 ×1
hclust ×1
javascript ×1
macos ×1
matplotlib ×1
seaborn ×1
svg ×1