查看原文
其他

R可视化——ggplot2绘制柱状图

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


今天,小编带大家使用ggplot2包绘制一种比较基础的图形——柱状图!

加载包

#设置工作环境rm(list=ls())setwd("D:\\桌面\\柱状图")
#加载包library(ggplot2)library(reshape2)library(ggpubr)library(ggprism)

加载并处理数据

#加载数据df <- read.table("data.txt",header = T, check.names = F)#转换数据data=melt(df)data$G<-rep(c("T","F","H"), each = 24)head(data)

绘图

1)绘制基础图形

ggplot(data,aes(G,value,color=G,fill=G))+ geom_bar(stat="summary",fun=mean,position="dodge")+ stat_summary(fun.data = 'mean_sd', geom = "errorbar", width = 0.3)+ theme_bw()

2)美化

p1<-ggplot(data,aes(G,value,color=G,fill=G))+ geom_bar(stat="summary",fun=mean,position="dodge")+ #绘制柱状图  stat_summary(geom = "errorbar",fun.data = 'mean_sd', width = 0.3)+#误差棒 labs(x="Samples",y=NULL)+#标题 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 = "candy_bright")#使用ggprism包修改颜色p1


拓展

1)根据分组进行分面

p2<-p1+facet_grid(~group,scales = 'free')p2

2)添加显著性

p3<-p2+geom_signif(comparisons = list(c("F","H"), c("H","T"), c("F","T")),# 设置需要比较的组 map_signif_level = T, #是否使用星号显示 test = "t.test", ##计算方法 y_position = c(50,55,60),#图中横线位置设置 tip_length = c(c(0.01,0.01), c(0.01,0.01), c(0.01,0.01)),#横线下方的竖线设置 size=0.8,color="black")p3

3)添加散点或者抖动点

p4<-p3+geom_point(data=data,aes(G,value),size=2,pch=20,color="black") p4

p5<-p3+geom_jitter(width = 0.2,size=2,pch=20,color="black")p5

完整代码

#设置工作环境rm(list=ls())setwd("D:\\桌面\\柱状图")
#加载包library(ggplot2)library(reshape2)library(ggpubr)library(ggprism)
#加载数据df <- read.table("data.txt",header = T, check.names = F)#转换数据data=melt(df)data$G<-rep(c("T","F","H"), each = 24)#绘图ggplot(data,aes(G,value,color=G,fill=G))+ geom_bar(stat="summary",fun=mean,position="dodge")+ #绘制柱状图 # geom_point(data=data,aes(G,value),size=2,pch=20,color="black")+#散点图 geom_jitter(width = 0.2,size=2,pch=20,color="black")+#添加抖动点 stat_summary(geom = "errorbar", fun.data = 'mean_sd', width = 0.3)+#误差棒 labs(x="Samples",y=NULL)+#标题 facet_grid(~group,scales = 'free')+#分面 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 = "candy_bright")+#使用ggprism包修改颜色 geom_signif(comparisons = list(c("F","H"), c("H","T"), c("F","T")),# 设置需要比较的组 map_signif_level = T, #是否使用星号显示 test = "t.test", ##计算方法 y_position = c(50,55,60),#图中横线位置设置 tip_length = c(c(0.01,0.01), c(0.01,0.01), c(0.01,0.01)),#横线下方的竖线设置 size=0.8,color="black")























爱我请给我好看!

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

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