双y轴如何合并图例_如何随意截断ggplot2图像的y轴?

gg.gap诞生记

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

面对的疑问,站长最开始并没有想到去开发一个R包解决。

ggplot2以及依赖它开发的包已经丰富,原以为在网络搜索一下肯定有解决方案,但谁曾想这样的需求真的没有找到完美的解决方案。

为了完善这个看起来很平常的功能,站长决定亲自操刀去写个包。

路不平,大神助

一年的Coding经历,面对处理图形函数还是有点困难的。

不管三七二一,画个草图先:

3dc3e79b746d14c19a809582a6760a0c.png

思路很简单,就是先按照y轴切,然后用cowplot去拼接。

一顿野路子代码操作,beta版出来了:gg1gap和gg2gap这两个包只能完成bar图y轴切割,而截断数最多也就只能两段。

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

install.packages("gg.gap")

都能切什么图,切几段

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

以Bar图为例

36a5548ba0329498a18e6cb28405ca0b.png

切一段

80712ff9e59ee84546e6664c9292fb70.png

切两段

fdfe552cd2bedf7e93bad3c1fed638f3.png

切三段

2cc79e4b47f8a456c1acf464e35c9d12.png

切N段

b648f34d660768a0540bdebd5a323a42.png

切散点图

25cd936afd1f1ce7956977141ce0d5c2.png

切折线图

8be1998c2e1afd3544a9805e3308e1df.png

切Boxplot+jitter

d04d71d2fa25c35896ea6e11954c3578.png

#installinstall.packages("gg.gap")data(mtcars)library(ggplot2)p 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 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 bp 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 微生物组 宏基因组

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值