在线绘制桑基图

http://112.125.26.206:3001/alluvial-diagram/

现在许多文章都利用桑基图来展示ceRNA网络、功能富集等图,也有很多R包专门可以用来画桑基图,不过小编在这里发现ggplot2包非常强大,也可以画桑基图,现在来给大家介绍一下

首先加载需要的R包

###########加载

library(ggplot2)

library(ggalluvial)

library(RColorBrewer)

这里以miRNA-mRNA的关系为例,数据格式如下

##########整合

miRNA_mRNA$Freq=1#定义纵坐标,一般默认为1

miRNA_mRNA_long<- to_lodes_form(miRNA_mRNA,

axes = 1:2,#将miRNA和mRNA分别编号

id = “Cohort”) #改为长数据便于画图

下面就可以开始画桑基图了,主要需要ggplot的geom_flow和geom_stratum两个函数

geom_flow–画流动图

我们看一下只画geom_flow的效果

###########geom_flow

ggplot(miRNA_mRNA_long,

aes(x =factor(x,level = c(“miRNA”,”SYMBOL”)),y=Freq,stratum = stratum, alluvium = Cohort,fill = stratum, label =stratum)) +

geom_flow( width = 1/3)+#画流动图

geom_text(stat =”stratum” , size =3) +#添加名字

scale_x_discrete(limits = c() )+#去掉横坐标轴

theme_bw()+#定义主题

theme(legend.position = “none”,

axis.title = element_blank(),

axis.text.y= element_blank(),

panel.grid.major = element_blank(),

panel.grid.minor  = element_blank(),

panel.border = element_blank())+

scale_fill_manual(values = colorRampPalette(brewer.pal(8, “Accent”))(20))#定义颜色

geom_flow–画流动图

我们看一下只画geom_stratum的效果

###########geom_stratum

ggplot(miRNA_mRNA_long,

aes(x =factor(x,level = c(“miRNA”,”SYMBOL”)),y=Freq,stratum = stratum, alluvium = Cohort,fill = stratum, label =stratum)) +

geom_stratum( width = 1/3,linetype=1,size=0.5,alpha =0.5,color = “black”) +#画冲击图

geom_text(stat =”stratum” , size =3) +#添加名字

scale_x_discrete(limits = c() )+#去掉横坐标轴

theme_bw()+#定义主题

theme(legend.position = “none”,

axis.title = element_blank(),

axis.text.y= element_blank(),

panel.grid.major = element_blank(),

panel.grid.minor  = element_blank(),

panel.border = element_blank())+

scale_fill_manual(values = colorRampPalette(brewer.pal(8, “Accent”))(20))#定义颜色

整合后

###########绘图

ggplot(miRNA_mRNA_long,

aes(x =factor(x,level = c(“miRNA”,”SYMBOL”)),y=Freq,stratum = stratum, alluvium = Cohort,fill = stratum, label =stratum)) +

geom_flow( width = 1/3)+#画流动图

geom_stratum( width = 1/3,linetype=1,size=0.5,alpha =0.5,color = “black”) +#画冲击图

geom_text(stat =”stratum” , size =3) +#添加名字

scale_x_discrete(limits = c() )+#去掉横坐标轴

theme_bw()+#定义主题

theme(legend.position = “none”,

axis.title = element_blank(),

axis.text.y= element_blank(),

panel.grid.major = element_blank(),

panel.grid.minor  = element_blank(),

panel.border = element_blank())+#去掉边界线

scale_fill_manual(values = colorRampPalette(brewer.pal(8, “Accent”))(20))#定义颜色

改变边框模式linetype

###########绘图

ggplot(miRNA_mRNA_long,

aes(x =factor(x,level = c(“miRNA”,”SYMBOL”)),y=Freq,stratum = stratum, alluvium = Cohort,fill = stratum, label =stratum)) +

geom_flow( width = 1/3)+#画流动图

geom_stratum( width = 1/3,linetype=0,size=0.5,alpha =0.5,color = “black”) +#画冲击图

geom_text(stat =”stratum” , size =3) +#添加名字

scale_x_discrete(limits = c() )+#去掉横坐标轴

theme_bw()+#定义主题

theme(legend.position = “none”,

axis.title = element_blank(),

axis.text.y= element_blank(),

panel.grid.major = element_blank(),

panel.grid.minor  = element_blank(),

panel.border = element_blank())+#去掉边界线

scale_fill_manual(values = colorRampPalette(brewer.pal(8, “Accent”))(20))#定义颜色


https://www.jianshu.com/p/660b5731f11f

Python量化投资网携手4326手游为资深游戏玩家推荐:《《克鲁赛德战记》国际版5周年同人征集活动

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论