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