查看原文
其他

R可视化——ggplot2绘制柱状堆积图并添加连线

王志山 科研后花园 2023-09-08

安装、加载R包

#clear Global Environmentrm(list=ls())
#安装包# install.packages("ggplot2")# install.packages("ggprism")# install.packages("reshape")# install.packages("ggalluvial")#加载包library(ggplot2)library(ggprism)library(reshape)library(ggalluvial)

构造数据并对其进行处理

#构造数据df<-data.frame(samples=c('a','b','c','d','e'), A=c(0.3,0.25,0.1,0.2,0.15), B=c(0.6,0.1,0.05,0.2,0.05), C=c(0.4,0.2,0.1,0.15,0.15), D=c(0.1,0.2,0.3,0.3,0.1))#变量格式转换,宽数据转化为长数据,方便后续作图df1 <- melt(df,id.vars = 'samples',measure.vars = c('A','B','C','D'))names(df1)[1:2] <- c("group","X") #修改列名

绘图

1、绘制柱状堆积图

ggplot(df1, aes( x = X,y=100 * value,fill = group))+  geom_col(position = 'stack', width = 0.6)

2、使用ggplot2拓展包ggalluvial重新绘制并添加连线

ggplot(df1, aes( x = X,y=100 * value,fill = group, stratum = group, alluvium = group))+  geom_stratum(width = 0.5, color='white')+ geom_alluvium(alpha = 0.5, width = 0.5, curve_type = "linear")

模板代码

ggplot(df1, aes( x = X,y=100 * value,fill = group, stratum = group, alluvium = group))+  geom_stratum(width = 0.7, color='white')+ geom_alluvium(alpha = 0.5, width = 0.7,                color='white', size = 1, curve_type = "linear")+ scale_y_continuous(expand = c(0,0))+ labs(x="Samples",y="Relative Abundance(%)", fill="group")+ guides(fill=guide_legend(keywidth = 1, keyheight = 1)) + theme_prism(palette = "candy_bright", base_fontface = "plain", base_family = "serif", base_size = 16, base_line_size = 0.8, axis_text_angle = 45)+ scale_fill_prism(palette = "candy_bright")+ theme(legend.position = 'top')

爱我请给我好看!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存