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专刊 肠道指挥大脑
文献阅读 热心肠 SemanticScholar Geenmedical
16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘
写在后面
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。
学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读