r语言如何画堆积柱状图(R可视化绘图过程中X轴及Y轴样本展示顺序的指定)

在使用R语言进行数据可视化过程中,大家可能会遇到数据中样本名称顺序与图形中样本展示顺序不一致的问题,或者是我们想要让图形中的样本顺序按照我们指定的进行绘制。今天,小编就给大家用实例进行讲解如何解决如上问题!

rm(list=ls())#clear Global Environment setwd('D:\\桌面\\绘图技巧')#设置工作路径 #安装包 # install.packages("ggplot2") # install.packages("ggprism") # install.packages("reshape2") # install.packages("cowplot") #加载R包 library(ggplot2) library(ggprism) library (reshape2) library(cowplot)

数据加载及预处理

#使用R代码生成一些数据 df <- data.frame( A=c(0.5,0.3,0.1,0.05,0.05), B=c(0.1,0.2,0.6,0.01,0.09), C=c(0.1,0.5,0.2,0.1,0.1), D=c(0.05,0.25,0.3,0.3,0.1), E=c(0.2,0.15,0.4,0.2,0.05)) df$tax=rownames(df)#将行名加入到数据中 #变量格式转换,宽数据转化为长数据,方便后续作图 df1 <- melt(df) names(df1)[c(2,3)] <- c("group","values") #修改列名 head(df1)#预览数据

r语言如何画堆积柱状图(R可视化绘图过程中X轴及Y轴样本展示顺序的指定)(1)

常规绘图

p1<-ggplot(df1, aes( x = group,y=100 * values,fill = tax)) #geom_col和geom_bar这两条命令都可以绘制堆叠柱形图 geom_col(position = 'stack', width = 0.6) #geom_bar(position = "stack", stat = "identity", width = 0.6) scale_y_continuous(expand = c(0,0)) # 调整y轴属性,使柱子与X轴坐标接触 labs(x="Group",y="Relative Abundance(%)",#设置X轴和Y轴的名称以及添加标题 fill="tax") guides(fill=guide_legend(keywidth = 1, keyheight = 1)) #修改图例的框大小 theme_prism(palette = "candy_bright", base_fontface = "plain", # 字体样式,可选 bold, plain, italic base_family = "serif", # 字体格式,可选 serif, sans, mono, Arial等 base_size = 16, # 图形的字体大小 base_line_size = 0.8, # 坐标轴的粗细 axis_text_angle = 45) # 可选值有 0,45,90,270 scale_fill_prism(palette = "colors")#使用ggprism包修改颜色 p1

r语言如何画堆积柱状图(R可视化绘图过程中X轴及Y轴样本展示顺序的指定)(2)

调整X轴样本展示顺序

####按照自己的意愿修改x轴显示的顺序 #将样本名构造为factor类型数据并指定顺序 df1$group <- factor(df1$group,levels = c('B','A','C','E','D')) #绘图 p2<-ggplot(df1, aes( x = group,y=100 * values,fill = tax)) #geom_col和geom_bar这两条命令都可以绘制堆叠柱形图 geom_col(position = 'stack', width = 0.6) #geom_bar(position = "stack", stat = "identity", width = 0.6) scale_y_continuous(expand = c(0,0)) # 调整y轴属性,使柱子与X轴坐标接触 labs(x="Group",y="Relative Abundance(%)",#设置X轴和Y轴的名称以及添加标题 fill="tax") guides(fill=guide_legend(keywidth = 1, keyheight = 1)) #修改图例的框大小 theme_prism(palette = "candy_bright", base_fontface = "plain", # 字体样式,可选 bold, plain, italic base_family = "serif", # 字体格式,可选 serif, sans, mono, Arial等 base_size = 16, # 图形的字体大小 base_line_size = 0.8, # 坐标轴的粗细 axis_text_angle = 45) # 可选值有 0,45,90,270 scale_fill_prism(palette = "colors")#使用ggprism包修改颜色 p2 #拼接图 plot_grid(p1,p2, labels=c('A','B'), ncol=1, nrow=2)#拼图及标注

r语言如何画堆积柱状图(R可视化绘图过程中X轴及Y轴样本展示顺序的指定)(3)

调整Y轴展示顺序

#####按照自己的意愿修改y轴显示的顺序 df1$tax <- factor(df1$tax,levels = c('5','1','3','2','4')) #绘图 p3<-ggplot(df1, aes( x = group,y=100 * values,fill = tax)) #geom_col和geom_bar这两条命令都可以绘制堆叠柱形图 geom_col(position = 'stack', width = 0.6) #geom_bar(position = "stack", stat = "identity", width = 0.6) scale_y_continuous(expand = c(0,0)) # 调整y轴属性,使柱子与X轴坐标接触 labs(x="Group",y="Relative Abundance(%)",#设置X轴和Y轴的名称以及添加标题 fill="tax") guides(fill=guide_legend(keywidth = 1, keyheight = 1)) #修改图例的框大小 theme_prism(palette = "candy_bright", base_fontface = "plain", # 字体样式,可选 bold, plain, italic base_family = "serif", # 字体格式,可选 serif, sans, mono, Arial等 base_size = 16, # 图形的字体大小 base_line_size = 0.8, # 坐标轴的粗细 axis_text_angle = 45) # 可选值有 0,45,90,270 scale_fill_prism(palette = "colors")#使用ggprism包修改颜色 p3 #拼接图 plot_grid(p1,p3, labels=c('A','B'), ncol=1, nrow=2)#拼图及标注

r语言如何画堆积柱状图(R可视化绘图过程中X轴及Y轴样本展示顺序的指定)(4)

总结

通过以上示例展示,大家应该也明白了其中的诀窍,那就是将我们的样本名称转换为factor类型数据,然后指定其顺序就可以在绘图过程中得到你所指定的样本顺序了!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页