【康华同学】:优秀生物信息学博客

R可视化——ggplot2绘图过程中如何实现轴截断?

2022-08-27  本文已影响0人  科研那点事儿

绘制基础图形

1、加载绘图包——这里主要用到基础绘图包ggplot2和主题设置包ggprism。
rm(list=ls())#clear Global Environment
setwd('D:\\桌面\\SCI论文写作与绘图\\R语言绘图\\绘图技巧')#设置工作路径

#加载R包
library(ggplot2)
library(ggprism)
2、数据——使用函数rnorm()随机生成作图数据,大家也可以将自己的数据导入进来进行绘图!
#随机生成一些数据
df <- data.frame(
  x = c('a','b','c','d','e','f','g','h','i','j'), 
  y = c(rnorm(3) + 20, rnorm(3) + 10, rnorm(4) + 50) )
3、绘制基础图形——这里以常见的柱状图为例进行展示。
#绘制常规图形
p1 <- ggplot(df,aes(x,y))+
  geom_col(aes(fill=x))+
  theme_prism(palette = "flames",
              base_fontface = "plain", 
              base_family = "serif", 
              base_size = 16,
              base_line_size = 0.8,
              axis_text_angle = 45)+
  theme(legend.position = "none")+
  scale_y_continuous(expand = c(0,0))
p1
image.png

轴截断的实现

R语言中实现轴截断的方法是比较多的,这里主要以ggbreak包为例进行展示:

#加载实现轴截断所需的R包
library(ggbreak)
#截断一次
p2<-p1+scale_y_break(c(30,40),#截断位置及范围
                space = 0.3,#间距大小
                scales = 1.5)#上下显示比例,大于1上面比例大,小于1下面比例大
p2
image.png
#截断两次
p3<-p1+scale_y_break(c(5,8),scales = 1.5,space = 0.3)+
  scale_y_break(c(40,45),scales = 1.5,space = 0.3)
p3
image.png
#旋转图形并进行截断
p4<-p1+coord_flip() +
  scale_y_break(c(40,45),scales = 1.8,space = 0.3)
p4
image.png

图形展示

#拼图
(p1+p2)/(p3+p4)
image.png
上一篇下一篇

猜你喜欢

热点阅读