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

2022-07-18  本文已影响0人  科研那点事儿

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

1、加载包

#设置工作环境
rm(list=ls())
setwd("D:\\桌面\\柱状图")

#加载包
library(ggplot2)
library(reshape2)
library(ggpubr)
library(ggprism)

2、加载并处理数据

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

3、绘图

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()
image.png

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
image.png

4、拓展

1)根据分组进行分面

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

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
image.png

3)添加散点或者抖动点

p4<-p3+geom_point(data=data,aes(G,value),size=2,pch=20,color="black") 
p4
image.png
p5<-p3+geom_jitter(width = 0.2,size=2,pch=20,color="black")
p5
image.png

5、完整代码

#设置工作环境
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")
上一篇下一篇

猜你喜欢

热点阅读