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

导读

记录一个产生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 = NULL, type = '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="")

图1

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

图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")

图3

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

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

down <- ggplot(df2, aes(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

图4

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

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

upper <- ggplot(df2, aes(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, 1000, 250)) + # 以250为单位划分Y轴
  theme(axis.text.x = element_blank(), 
        axis.ticks.x = element_blank(), 
        axis.line.x = element_blank())
  # 去除X文本、刻度,坐标轴

图5

六、ggarrange合并图

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

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

图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热图



(0)

相关推荐

  • ggballoonplot|气球图-多分类数据可视化

    ggballoonplot(气球图)可用于多分类数据的可视化展示,其中每个单元格都包含一个点,其大小反映了相应组件的相对大小. 本文将使用ggpubr中的ggballoonplot()函数以及ggpl ...

  • 堆叠柱状图也要做统计-标记显著性

    写在前面 有时候我们展示的指标有一定的关系,希望可以使用堆叠柱状图展示.许多朋友们问询,这样如何添加显著性标记,因此本期结合EasyStat包给大家做一个演示. R 包导入 ## 导入包 librar ...

  • ggpubr添加的显著性标记不能使用ggplot主题修改

    ggpubr可能对于我们做差异分析带来了方便,但是遗憾的是其对出图添加的显著性标示并不能通过R语言ggplot主题系统进行修改. 我们应该如何修改呢,参考: stack overflowde 方法进行 ...

  • 网络图layout如何自定义

    写在前面 在构造更加合适我们解决问题的网络图layout过程中,我学习到了一些有意思的数据排布.这里展示给大家. 多边形–五边形 library(tidyverse) pentagon <- t ...

  • R之箱线图绘制

    16s分析一直在连载,但是最基础的莫过于alpha多样性了,但是箱线图却不是alpha多样性的唯一选择,箱线图也不是局限于alpha多样性,这里借助alpha多样性,将箱线图做一个完整绘制 #这里安装 ...

  • 浅谈生态学领域科研图表绘制的方向和未来

    摘要 统计和绘图之间界限越来越模糊: 组合图形是趋势: 示意图或者照片图像和图表逐渐结合: R语言继续发光发热.ggplot是核心. 写在前面 在近年来,随着作图工具发展,我们越来越自由,更加可以随心 ...

  • 技术贴 | R语言:手把手教你如何画ggplot堆叠图、冲积图、分组分面、面积图

    利用R语言堆叠图,我们可以将一个项目中所有样品的物种组成展示出来.下面介绍如何利用R语言进行物种组成分析和可视化.过程分为以下几步: 1)模拟丰度矩阵: 2)模拟分组: 3)标准化丰度: 4)调整格式 ...

  • 技术贴 | R语言物种组成分析和绘图

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 宏基因组分析分为物种分析和功能分析两大块.物种组成分析是物种分析中最基本最常见的分析方法.利用R语言堆叠图,我们可以 ...

  • 技术贴 | R语言菌群Alpha多样性分析和绘图

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 箱型图(Boxplot)或者盒图是一种能同时展示一组或多组数据的极值.四分位数.中位数和离群值,显示数据离散情况的统 ...

  • 技术贴 | R语言:如何绘制合并气泡图?

    本文由yang根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 在组学数据挖掘中在进行差异基因表达分析时,得到显著差异基因后,接下来就需要分析这些基因参与了哪些功能,常见的就是G ...

  • 技术贴 | R语言:构建一个转录代谢互作调控网络:(二)热图的美化以及大样本分组信息的快速注释

    本文由可爱的乔巴根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 上期介绍了利用WGCNA包中的Cor函数和corPvalueStudent函数计算两组小样本的相关性并进行热图可 ...

  • 技术贴 | R语言:大样本多组学的相关性计算、热图绘制

    本文由可爱的乔巴根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 上期介绍了利用psych包计算两组小样本的相关性并进行热图可视化,但当样本数据量非常大时,psych包会耗费的时 ...

  • 技术贴 | R语言:小样本多组学的相关性计算、热图绘制

    本文由可爱的乔巴根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 在多组学数据关联挖掘中,在我们筛选到目标基因集以及目标蛋白质集合或目标代谢物集合后,在进行基因与蛋白质或代谢关联 ...

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

    本文由微科盟阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 举例介绍如何用R语言gggenes函数包把基因预测得到的gff或gtf文件(含基因位置信息)中的基因类型.位置可视化 ...

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

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 举例展示R语言组学关联分析的方法.宏基因组数据以KO-样品丰度表为例.代谢组数据以metabolite-样品丰度表为例.基 ...