查看原文
其他

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

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

绘制基础图形


1、加载绘图包——这里主要用到基础绘图包ggplot2和主题设置包ggprism。

rm(list=ls())#clear Global Environmentsetwd('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





轴截断的实现


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

#加载实现轴截断所需的R包library(ggbreak)
#截断一次p2<-p1+scale_y_break(c(30,40),#截断位置及范围 space = 0.3,#间距大小 scales = 1.5)#上下显示比例,大于1上面比例大,小于1下面比例大p2

#截断两次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

#旋转图形并进行截断p4<-p1+coord_flip() + scale_y_break(c(40,45),scales = 1.8,space = 0.3)p4





图形展示


#拼图(p1+p2)/(p3+p4)





好看你就

点点

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

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