R语言与统计分析数据科学与R语言

patchwork包超快拼图(1)

2020-12-20  本文已影响0人  灵活胖子的进步之路

首先载入包及数据集

library(patchwork)
library(ggpubr)
data(mtcars)
df <- mtcars
str(df)
数据集结构

下一步分析我们需要几个分类变量,下一步我们应用apply函数批量转换下
(需要重复做3次以上的操作就要想到apply函数或者循环)

varstofactor <- c("cyl","vs","am","gear","carb")#定义需要转换的列变量名称
df[varstofactor] <- lapply(df[varstofactor],factor)#批量转换
str(df)#再次查看数据集结构
绘图使用数据集

下面我们应用ggpubr绘制3个图,用ggplot2绘制一个图,然后组合
首先我们绘制箱式图

p1 <- ggboxplot(df,
                x="vs",
                y="hp",
                color = "vs",
                add ="jitter",#抖动点
                add.params = list(shape = "vs"),#这里设置下不同分组点得形状
                title="箱式图")
p1
p1

接着绘制小提琴图

p2 <- ggviolin(df,
               x="am",
               y="drat",
               fill = "am",
               palette="jco",
               add = "median_q1q3",
               title="小提琴图")
my_comparisons <- list( c("0", "1") )#确定组间比较线位置
p2<- p2+stat_compare_means(comparisons = my_comparisons,
                      label.y = c(6))+#确定组间比较线纵坐标
  stat_compare_means(label.y = 7)#p值位置
p2
p2

以下画一个密度图,并且对其进行分面操作

p3 <- ggdensity(df,
                x="disp",
                color = "vs",
                fill = "vs",
                palette="jco",
                add ="mean",
                facet.by = "vs",#分面
                rug = T,#地毯线
                title = "密度图")
p3
密度图P3并且有分面

下面我们用ggplot2绘制一个直方图

p4 <- ggplot(mtcars, #数据集
             aes(x=gear)) + #设定全局映射
             geom_bar() + #设定几何对象,本图为直方图
             ggtitle('直方图') + #设定题目
             facet_wrap(~cyl)#设定分面

p4
直方图

下面进入拼图环节,要不要太简单

p1+p2+p3+p4
不设定任何参数时候得简单拼图,也很整齐

调整图形为3列,按行排序。

p1 + p2 + p3 + p4 +  plot_layout(ncol = 3, byrow = TRUE)
3列拼图

除了用+号运算来排版图形外,还可以使用/号来排版

p1/p2
竖着拼图

Linux中的管道符 | 可以用来确定分面情况(管道符在按键enter上面)

p1/p3|p2
管道符确定分面情况
p1 | p2 | (p3 / p4)
终于,有了成稿的既视感

下一步我们在图中加入标签

p1 + p2 + p3/p4 + plot_annotation(tag_levels = 'I')
加入标签,完整既视感
上一篇 下一篇

猜你喜欢

热点阅读