i18928471899的个人博客分享 http://blog.sciencenet.cn/u/i18928471899

博文

技术贴 | R语言:ggplot绘图的Y轴截断和拼接

已有 5290 次阅读 2021-5-7 08:30 |系统分类:科研笔记


导读

记录一个产生Y轴截断ggplot绘图的方法。先用coord_cartesian根据Y轴把图截断成上下两份,接着用ggarrange拼接到一起,实现去不要的部分

一、准备依赖包

ggarrange所需的ggpubr安装很顺利,但是ggpubr所需的tibble出现版本的问题,经卸载重装tibble搞定。

## ggpubr
# 1 普通安装
install.packages("ggpubr")
# 2 source安装
packageurl = 'https://cran.r-project.org/src/contrib/ggpubr_0.4.0.tar.gz'
install.packages(packageurl, repos = NULLtype = 'source')
# 3 版本信息
packageVersion("ggpubr")  # ‘0.4.0’
# 4 报错信息
library("ggpubr"# 载入了名字空间‘tibble’ 2.1.3,但需要的是>= 3.0.0
# 5 重装tibble
packageVersion("tibble"# 当前版本‘2.1.3’
remove.packages("tibble", lib="C:/Users/win10/Documents/R/win-library/3.6"# 卸载
install.packages("tibble"version="3.0.0"# 下载指定版本
# 6 搞定了
library("tibble")
# 7 再看版本
packageVersion("tibble"# ‘2.1.3’

# 其他依赖
library("ggplot2")
library("reshape2")
library("ggthemes")

二、模拟数据

a = sample(1:50, 50, replace=T)
b = sample(50:100, 50, replace=T)
c = sample(500:1000, 50, replace=F)
df = data.frame(a, b, c)
df$sample = paste("sample", 1:50, sep="")


640.png

图1

df2 = melt(df, by="sample")


640 (1).png

图2

三、未裁剪的原图

# 原图
ggplot(df2, aes(x=variable, y=value, color=variable)) +
  geom_boxplot() +
  theme_classic() +
  labs(x="Group", y="Value", color="Group") +
  geom_jitter(aes(fill = variable), width =0.2, shape = 21, size=2.5) +
  theme(legend.position = "none")


640 (2).png

图3

四、根据Y截取 -> down部分

coord_cartesian(ylim = c(0, 100)) # 根据Y截取图片:0-200部分

down <- ggplot(df2aes(x=variable, y=value, color=variable)) +
  geom_boxplot() +
  theme_classic() +
  labs(x="Group"y=""color="Group") +
  geom_jitter(aes(fill = variable), width =0.2, shape = 21, size=2.5) +
  theme(legend.position = "none") +
  coord_cartesian(ylim = c(0, 100)) # 根据Y截取图片:0-200部分
down


640 (3).png

图4

五、根据Y截取 -> upper部分

coord_cartesian(ylim = c(500, 1000)) + # 根据Y截取图片:500-1000部分

upper <- ggplot(df2aes(x=variable, y=value, color=variable)) +
  geom_boxplot() +
  theme_classic() +
  labs(x=""y=""color="Group") +
  geom_jitter(aes(fill = variable), width =0.2, shape = 21, size=2.5) +
  theme(legend.position = "none") +
  coord_cartesian(ylim = c(500, 1000)) + # 根据Y截取图片:500-1000部分
  scale_y_continuous(breaks = c(500, 1000250)) + # 以250为单位划分Y
  theme(axis.text.x = element_blank(), 
        axis.ticks.x = element_blank(), 
        axis.line.x = element_blank())
  # 去除X文本、刻度,坐标轴


640 (4).png

图5

六、ggarrange合并图

可调参数:高度宽度比、列数、行数、共用legend、legend位置、对齐方式("none", "h", "v", "hv")

ggarrange(upper
          down, 
          heights = c(23), 
          widths = c(11), 
          ncol = 1
          nrow = 2
          common.legend = T, 
          legend="none")


640 (5).png

图6



图片你可能还喜欢图片

技术贴 | R语言:ROC分析多样性指数

技术贴 | R语言:ggplot画柱形图、排序、着色

技术贴 | R语言:手把手教你搞定ggplot柱形图(一)

技术贴 | R语言:手把手教你搞定ggplot柱形图(二)

技术贴 | R语言:ggplot画散点图

技术贴 | R语言:组学关联分析和pheatmap可视化

技术贴 | R语言:合并散点图、箱图、密度图

技术贴 | R语言:常见的ggplot取色方法

技术贴 | R语言:ggplot堆叠图、冲积图、分组分面、面积图

技术贴 | R语言:绘制基因组基因箭头图

技术贴 | R语言:VennDiagram绘制venn图

技术贴 | R语言:envfit环境因子和菌群回归分析

技术贴 | R语言:手把手教你画pheatmap热图








微生态科研学术群期待与您交流更多微生态科研问题

(联系微生态老师即可申请入群)

图片

了解更多菌群知识,请关注“微生态”。


图片



微信扫一扫
关注该公众号




https://blog.sciencenet.cn/blog-3474220-1285365.html

上一篇:科研 | The ISME Journal:真菌孢子囊中蕴藏着具有多种宿主特异性的真菌寄生菌群落
下一篇:科研 | Environ. Microbiol.: (国人佳作)施肥改变了与作物相关微生物群中的原生生物消费者和寄生生物
收藏 IP: 183.240.41.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-21 13:33

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部