网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图

怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

成都创新互联"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!成都创新互联具备承接各种类型的成都网站设计、网站建设项目的能力。经过十余年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。

R语言ggplot2画气泡图(dotplot)展示基因表达量,今天的内容介绍如何在气泡图和左侧和上方添加聚类树图,今天的内容主要参考 aplot包:让你画出更复杂的图

今天重复的内容是论文中的figure2f

怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图  
image.png

按照论文提供的代码得到了画图用到的数据,部分数据如下

怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图  
image.png

但是用他提供的画图代码没有能够画出图来。因为他用到了一个dot_plot()函数,没有找到这个函数是怎么来的。既然已经拿到了数据,就用ggplot2自己来画吧

 读入数据做气泡图,
data.final<-read.csv("NM/figure2f.csv",header=T,check.names=F)
head(data.final)

library(ggplot2)
ggplot(data.final,aes(x=features.plot,y=id))+
  geom_point(aes(size=`Percent expressed`,
                 color=`Average expression`))+
  theme_bw()+
  theme(panel.grid = element_blank(),
        axis.text.x=element_text(angle=90,hjust = 1,vjust=0.5))+
  scale_color_gradient(low="lightgrey",high="blue")+
  labs(x=NULL,y=NULL)+
  guides(size=guide_legend(order=3))
 
怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图  
image.png
 

以y轴为变量,做层次聚类,并使用ggtree展示层次聚类结果

 聚类用到的是平均表达量那一列
df<-data.final[,c(1,2,4)]
   首先是长格式数据转换为宽格式
df1<-reshape2::dcast(df,id~features.plot,value.var = "Average expression")
rownames(df1)<-df1$id
df1.1<-df1[,2:22]
 
怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图  
image.png
 层次聚类,ggtree展示结果
df1.1.clust<-hclust(dist(df1.1))
df2.1.clust<-hclust(dist(df2.1))
library(ggtree)
p2<-ggtree(df1.1.clust)
p2+
  geom_tiplab()+
  xlim(NA,7)
 
怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图  
image.png
 使用aplot包拼图
library(ggplot2)
p1<-ggplot(data.final,aes(x=features.plot,y=id))+
  geom_point(aes(size=`Percent expressed`,
                 color=`Average expression`))+
  theme_bw()+
  theme(panel.grid = element_blank(),
        axis.text.x=element_text(angle=90,hjust = 1,vjust=0.5))+
  scale_color_gradient(low="lightgrey",high="blue")+
  labs(x=NULL,y=NULL)+
  guides(size=guide_legend(order=3))

library(aplot)
p1%>%
  insert_left(p2,width = 0.2)
 
怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图  
image.png
 接下来就是在上方叠加聚类树,一样的操作
df2<-reshape2::dcast(df,features.plot~id,value.var = "Average expression")
rownames(df2)<-df2$features.plot
df2.1<-df2[,2:15]
df2.1.clust<-hclust(dist(df2.1))
p3<-ggtree(df2.1.clust)+
  #geom_tiplab(angle=90)+
  #theme_tree2()+
  layout_dendrogram()
p3
p1%>%
  insert_left(p2,width = 0.2)%>%
  insert_top(p3,height = 0.2)
 

这里多了一个知识点是ggtree作图默认开口树的方向是向右,如果需要把开口改成向下,需要加上layout_dendrogram()函数

最终的结果如下

怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图  
image.png

这里和论文中的图有些不一致,可能是聚类算法的原因;ggtree有一个默认的从上到下排序,比如左侧的树现在第一个是H6,第二个是H5,如果想把H5放到第一个也是可以实现的,可以参考之前的推文 R语言ggtree按照指定的节点旋转树。

关于怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


当前文章:怎样用R语言ggplot2+ggtree+aplot画气泡图组合聚类树图
分享链接:http://bjjierui.cn/article/igpcee.html

其他资讯