R语言—ggplot2画图如何截断 y 轴
2018-05-31 本文已影响402人
biolearn
原创
2018.5.31 星期四 小雨 biolearn
如何利用 R 实现从 A 图到 B 图?
只需要三步,画下面一半,画上面一半,拼起来即可
1. 画下面一半
#导入包
library(ggplot2)
library(ggpubr)
#数据
data <- data.frame(x = c("Alpha","Bravo","Charlie","Delta"),y=c(200,20,10,15))
#画下面
p1 <- ggplot(data,aes(x=x,y=y,fill=x)) + geom_bar(stat='identity',position=position_dodge()) +
labs(x=NULL,y=NULL,fill=NULL)+ #可自定义标签名字
coord_cartesian(ylim = c(0,25)) #设置下面一半的值域
2. 画上面一半
p2 <- ggplot(data,aes(x=x,y=y,fill=x)) + geom_bar(stat='identity',position=position_dodge()) +
labs(x=NULL,y=NULL,fill=NULL) + #不要标签
theme(axis.text.x = element_blank(),axis.ticks.x = element_blank()) + #去掉X轴和X轴的文字
coord_cartesian(ylim = c(195,205)) + #设置上面一半的值域
scale_y_continuous(breaks = c(195,205,5)) #以5为单位划分Y轴
3. 拼起来
ggarrange(p2,p1,heights=c(1/5, 4/5),ncol = 1, nrow = 2,common.legend = TRUE,legend="right",align = "v")
排序为 p2 p1,即上面的图放上面,下面的图放下面
heights 两个图高度所占的比例,根据实际情况进行修改
align 这个参数很重要,对齐参数将上下两个图对齐,h 为水平对齐,v 为垂直对齐
在此基础上在利用 AI 精修,一张漂亮的图就完成啦~
转载请注明出处~ biolearn