gg.gap:ggplot阶截断坐标轴的优秀完美解决方案

写在前面

ggplot的截断坐标轴一直以来做的不是很好,plot可以有一些比较复杂应用的函数可以解决截断坐标轴问题,但是ggplot出的大部分图表似乎无能为力。这里为大家介绍gg.gap包,用于ggplot截断坐标轴的绘制。

# install.packages("gg.gap")
library(gg.gap)
library(ggplot2)


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(),show.legend = FALSE) +
  theme_bw() +
  labs(x = NULL, y = NULL)

p1 = p1 +  theme_classic()
p2 = gg.gap(plot = p1,
           segments = c(25, 190),
           tick_width = 10,
           rel_heights = c(0.25, 0, 0.1),# 设置分隔为的三个部分的宽度
           ylim = c(0, 200)
           )

p2

data(mtcars)
library(ggplot2)
p<-ggplot(data = mtcars, aes(x = gear, fill = gear)) +
    geom_bar() +
    ggtitle("Number of Cars by Gear") +
    xlab("Gears")
p

#tick_width 默认不设置的时候就是一样的间隔
gg.gap(plot=p,
       segments=c(5,10),
       ylim=c(0,50))

#tick_width 设置两个阶段部分的不同坐标间隔
gg.gap(plot=p,
       segments=c(5,10),
       tick_width = c(1,10),
       ylim=c(0,50))

#segments list cantains more than one number vectors
gg.gap(plot=p,
       segments=list(c(2.5,4),c(5,10)),
       tick_width = c(1,0.5,10),
       ylim=c(0,50))

#rel_heights 设置每个间隔部分的相对高度
# list(c(2.5,4),c(5,10)) 多个间隔的指定方法
gg.gap(plot=p,
       segments=list(c(2.5,4),c(5,10)),
       tick_width = c(1,0.5,10),
       rel_heights=c(0.2,0,0.2,0,1),
       ylim=c(0,50))

#reversed y-axis
p <- ggplot(data = mtcars, aes(x = gear, fill = gear)) +
    geom_bar() +
    ggtitle("Number of Cars by Gear") +
    xlab("Gears")+
    scale_y_continuous(trans = 'reverse')
p

gg.gap(plot=p,
       segments=c(10,5),
       ylim=c(15,0))

# 对于分面情况下的阶段坐标轴
library(ggplot2)
p<-ggplot(mtcars,aes(mpg,hp))+geom_point()
p1<-p+facet_wrap(~cyl,scales="free")
p1

gg.gap(plot = p1,ylim = c(60,200),segments = c(100,120))

猜你喜欢

10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑

系列教程:微生物组入门 Biostar 微生物组  宏基因组

专业技能:学术图表 高分文章 生信宝典 不可或缺的人

一文读懂:宏基因组 寄生虫益处 进化树

必备技能:提问 搜索  Endnote

文献阅读 热心肠 SemanticScholar Geenmedical

扩增子分析:图表解读 分析流程 统计绘图

16S功能预测   PICRUSt  FAPROTAX  Bugbase Tax4Fun

在线工具:16S预测培养基 生信绘图

科研经验:云笔记  云协作 公众号

编程模板: Shell  R Perl

生物科普:  肠道细菌 人体上的生命 生命大跃进  细胞暗战 人体奥秘  

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

点击阅读原文,跳转最新文章目录阅读

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值