R语言—ggplot2画图如何截断 y 轴

原创 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容