gg.gap诞生记

“站长,小站工具qPCR在线分析功能非常好,但有些基因的表达量太高了,图做出来值非常大,能否想prism那样把y轴做个截断呢?”

面对的疑问,站长最开始并没有想到去开发一个R包解决。
ggplot2以及依赖它开发的包已经丰富,原以为在网络搜索一下肯定有解决方案,但谁曾想这样的需求真的没有找到完美的解决方案。
为了完善这个看起来很平常的功能,站长决定亲自操刀去写个包。

路不平,大神助

一年的Coding经历,面对处理图形函数还是有点困难的。
不管三七二一,画个草图先:

思路很简单,就是先按照y轴切,然后用cowplot去拼接。
一顿野路子代码操作,beta版出来了:gg1gap和gg2gap这两个包只能完成bar图y轴切割,而截断数最多也就只能两段。

小站VIP群中的树神(微信ID:一棵树)精通R包制作,为了让野路子出来的代码更完善,拉上树神一起干,不仅实现截取多个截断,还可以对任意ggplot2对象进行截断,再不断测试修补bug之后,gg.gap终于在今天这个有意义的日子正式上线CRAN。大家可以通过下面的代码进行安装。

install.packages("gg.gap")

都能切什么图,切几段

理论上,ggplot2的图都能切,想切几段切几段。

以Bar图为例

切一段

切两段

切三段

切N段

切散点图

切折线图

切Boxplot+jitter

#installinstall.packages("gg.gap")data(mtcars)library(ggplot2)p<-ggplot(data = mtcars, aes(x = gear, fill = gear)) +    geom_bar() +    ggtitle("Number of Cars by Gear") +    xlab("Gears")
#single segments and missing tick_widthgg.gap(plot=p,       segments=c(5,10),       ylim=c(0,50))#tick_width can be one or more numbersgg.gap(plot=p,       segments=c(5,10),       tick_width = c(1,10),       ylim=c(0,50))#segments list cantains more than one number vectorsgg.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 can set the relative height for segments and segmented y-axisgg.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-axisp<-ggplot(data = mtcars, aes(x = gear, fill = gear)) +    geom_bar() +    ggtitle("Number of Cars by Gear") +    xlab("Gears")+    scale_y_continuous(trans = 'reverse')#single segments and missing tick_widthgg.gap(plot=p,       segments=c(10,5),       ylim=c(15,0))#add.legendlibrary(ggplot2)mtcars$gear <- factor(mtcars$gear)bp <- ggplot(data = mtcars, aes(x = gear, fill = gear)) +    geom_bar() +    ggtitle("Number of Cars by Gear") +    xlab("Gears")gg.gap(plot = bp,       ylim = c(0,16),       segments = c(6,8))add.legend(plot = bp,           margin = c(top=1,right=1,bottom=1,left=460))

猜你喜欢

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

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

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

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

必备技能:提问 搜索  Endnote

文献阅读 热心肠 SemanticScholar Geenmedical

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

16S功能预测   PICRUSt  FAPROTAX  Bugbase Tax4Fun

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

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

编程模板: Shell  R Perl

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

写在后面

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

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

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

如何随意截断ggplot2图像的y轴?相关推荐

  1. R语言ggplot2可视化把y轴显示在图像的右侧实战: y-axis on the right

    R语言ggplot2可视化把y轴显示在图像的右侧实战: y-axis on the right 目录 R语言ggplot2可视化把y轴显示在图像的右侧实战: y-axis on the right

  2. 六一双倍的快乐:ggplot2绘制双y轴图

    生信交流与合作请关注公众号@生信探索 双y轴图的目的,是想要在同一坐标系中画两组数据,但是他们值范围差很多,比如一组数据是1-10,另一组是10-100,那么可以对第一组数据做数据变化,比如第一组数据 ...

  3. R语言学习心得-plot函数绘制双Y轴图像

    由于个人在学习过程中遇到绘制双Y轴图像问题,在初步搜索未发现相关完整教程,故写下本文以此抛砖引玉.文中的方法个人认为尚可优化,仅供参考.如有任何疑问欢迎在评论区共同讨论学习. 待处理的数据为" ...

  4. R语言ggplot2可视化:指定标题的坐标轴位置(X轴坐标和Y轴坐标),将图像的标题(title)放置在图像内部的指定位置(customize title positon in plot)

    R语言ggplot2可视化:指定标题的坐标轴位置(X轴坐标和Y轴坐标),将图像的标题(title)放置在图像内部的指定位置(customize title positon in plot) 目录

  5. R语言ggplot2可视化时间序列散点图、X轴和Y轴都是时间信息、使用as.POSIXct函数自定义指定Y轴的时间范围(setting time limits in y axis)

    R语言ggplot2可视化时间序列散点图.X轴和Y轴都是时间信息.使用as.POSIXct函数自定义指定Y轴的时间范围(setting time limits in y axis) 目录

  6. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间

    R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间.将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间(duration of an act ...

  7. python使用matplotlib可视化、为可视化图像的X轴和Y轴设置自定义的轴标签(axis labels of matplotlib plot)

    python使用matplotlib可视化.为可视化图像的X轴和Y轴设置自定义的轴标签(axis labels of matplotlib plot) 目录

  8. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间、适应时间段跨越多天的情况

    R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间.将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间.适应时间段跨越多天的情况(例如,当天 ...

  9. python使用matplotlib可视化线图(line plot)、为可视化图像添加双Y轴、分别可视化不同范围的数据(double y axis in matplotlib)

    python使用matplotlib可视化线图(line plot).为可视化图像添加双Y轴.分别可视化不同范围的数据(double y axis in matplotlib) 目录

最新文章

  1. drugbank下载XML文件解析
  2. Swift中一个类中的枚举(enum)类型的数据该如何实现序列化(NSCoder)
  3. legend3---OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
  4. STM32 F101系列的程序怎么转化为STM F103出现编译错误!
  5. LiveVideoStackCon 2020北京站 | 参会指南
  6. 工作154:代码之解析position 解决
  7. XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
  8. rocketmq 消息指定_SpringBoot 整合 RocketMQ 如何实现消息生产消费?
  9. Spring事务管理1-------环境搭建
  10. 服务器工作室用什么系统,【小兵工作室】BING GHOST Server2003r2ee 服务器专用版
  11. 拆解市面上卖几百上千的语聊挂机赚钱项目
  12. usb4java android,桌面java应用程序通过USB复制和传输android数据
  13. Linux下安装并运行TMHMM
  14. 数据恢复揭秘:三星硬盘开盘数据恢复全过程
  15. batch norm的作用
  16. Linux下软件逆向工程的介绍(一)
  17. java 打印 发票_基于Excel和Java自动化:发票生成器
  18. MATLAB代码细节整理
  19. 面试题目总结(CNN)
  20. R语言绘图patchwork拼图详解快速实现组合图拼接

热门文章

  1. 【蓝桥杯计算思维题】少儿编程 蓝桥杯青少组计算思维真题及详细解析第5套
  2. MarioTCP:一个单机可日30亿的百万并发长连接服务器
  3. JS数据结构与算法 笔记
  4. V-Ray 5 For 3ds Max 正式发布:超越渲染
  5. Processing实现Google新图标
  6. 工业级云监控记录系统ZWACS实现微信报警功能
  7. suse linux 11网关配置,如何为SUSE配置IP地址,网关和DNS
  8. 大型智慧校园商业级源代码+演示
  9. java 微博不出现授权_新浪微博快速登录,为什么出现了授权页面,点击授权但是却没有获取用户信息呢?...
  10. 【架构师之路 四】需要掌握的技能点---架构性能优化