首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hclust和ggplot

hclust和ggplot
EN

Stack Overflow用户
提问于 2017-07-30 13:38:15
回答 1查看 1.6K关注 0票数 0

我有一个有值的文件,如下所示

代码语言:javascript
复制
gene_name s1    s2  s3  s4  s5
gene1  0.5004357 -0.9613324  1.4624021 -0.8051191 -0.1963863
gene2  1.1662839 -0.3210387 -0.3653730 -1.3095341  0.8296619
gene3  1.0511340 -0.7007560 -0.3025992  1.0511340 -1.0989128
gene4 -0.2422484 -0.4203723  0.4651577 -1.2295635  1.4270265
gene5 -1.3491928 -0.6743735  0.1860456  0.9507387  0.8867820
gene6 -0.9254673  0.1860328 -1.0089603  0.3438866  1.4045082
dim(df)
[1] 21752     5

我试图实现的是使用hclust和dist方法来查看数据中的趋势,我基本上是在做一些问题(here from SO p.s .)由sandipan回答的问题。

我无法理解,因为问题中没有数据显示,我想要说明的是

  1. x: X轴我的样本名(s1,s2,s3,s4,s5)
  2. Y轴,z值和
  3. 代表每个genename的每一行
  4. 对于每个集群,我可以看到哪个集群提供了一个很好的清晰的聚类或样本分离。

编辑

以答案为基础

我的代码版本

代码语言:javascript
复制
d_final <- cbind.data.frame(expr, cluster=cutree(hc, k = n))
d_final %>% 
  gather(key, value, -geneID, -cluster) %>% 
  ggplot(aes(x=key, y=value, color=factor(cluster), group=geneID)) + 
  geom_point() + geom_path() +
  facet_wrap(~cluster) #changed it to wrap

当我试着这个

代码语言:javascript
复制
d <- dist(expr[,-1] , method = "euclidean")
hc <- hclust(dist(d), method = "average")

在一台16 on内存R演播室的mac上

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 12:28:06

像这样吗?

代码语言:javascript
复制
library(tidyverse)
hc <- hclust(dist(d[,-1]))
plot(hc)
# try three clusters for instance: 
n <- 3
d_final <- cbind.data.frame(d, cluster=cutree(hc, k = n))
d_final %>% 
  gather(key, value, -gene_name, -cluster) %>% 
  ggplot(aes(x=key, y=value, color=factor(cluster), group=gene_name)) + 
     geom_point() + geom_path() +
     coord_flip() +
     facet_grid(~gene_name)

代码语言:javascript
复制
 # or change to
    facet_grid(~cluster)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45400397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档