前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言 多图布局一个函数就够:plot_layout

R语言 多图布局一个函数就够:plot_layout

作者头像
拴小林
发布2021-05-31 16:21:36
1.6K0
发布2021-05-31 16:21:36
举报
文章被收录于专栏:数据驱动实践数据驱动实践

以下内容来自R软件帮助文档,查看方式?

代码语言:javascript
复制
install.packages("patchwork")
library(patchwork)
??plot_layout

# 重要参数解释
plot_layout(
  ncol = NULL, # 设置列数
  nrow = NULL, # 设置行数
  byrow = NULL, # 设置案列输出方式 行 or 列
  widths = NULL, # 设置宽度
  heights = NULL, # 设置高度
  guides = NULL,
  tag_level = NULL,
  design = NULL
)

效果演示

代码语言:javascript
复制
library(ggplot2)
library(patchwork)
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
p3 <- ggplot(mtcars) + geom_bar(aes(gear)) + facet_wrap(~cyl)
p4 <- ggplot(mtcars) + geom_bar(aes(carb))
p5 <- ggplot(mtcars) + geom_violin(aes(cyl, mpg, group = cyl))
# The plots are layed out automatically by default
# 默认按照行排序
p1 + p2 + p3 + p4 + p5
# 效果见下图

# Use byrow to change how the grid is filled out
# 设置按照列诸葛输出
p1 + p2 + p3 + p4 + p5 + plot_layout(byrow = FALSE)
# 效果见下图

上图 p1 + p2 + p3 + p4 + p5

上图 p1 + p2 + p3 + p4 + p5 + plot_layout(byrow = FALSE)

代码语言:javascript
复制
# Change the grid dimensions
# 设置布局列数和宽度
p1 + p2 + p3 + p4 + p5 + plot_layout(ncol = 2, widths = c(1, 2))
# 效果见下图

上图 p1 + p2 + p3 + p4 + p5 + plot_layout(ncol = 2, widths = c(1, 2))

代码语言:javascript
复制
# Define layout at different nesting levels
# 定义不同嵌套级别的布局
p1 +
  p2 +
  (p3 +
     p4 +
     plot_layout(ncol = 1)
  ) +
  p5 +
  plot_layout(widths = c(2, 1))
# 效果见下图
代码语言:javascript
复制
# Complex layouts can be created with the `design` argument
#可以使用“design”参数创建复杂的布局
design <- c(
  area(1, 1, 2),
  area(1, 2, 1, 3),
  area(2, 3, 3),
  area(3, 1, 3, 2),
  area(2, 2))
p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)
# 效果见下图

图 p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

代码语言:javascript
复制
# The same can be specified as a character string:
#可以将其指定为字符串:
design <- "
122
153
443
"
p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)
# 效果见下图

图 p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

代码语言:javascript
复制
# When using strings to define the design `#` can be used to denote empty
#使用字符串定义设计时,`#`可用于表示空

# areas
#区域
design <- "
1##
123
##3
"
p1 + p2 + p3 + plot_layout(design = design)
# 效果见下图

图 p1 + p2 + p3 + plot_layout(design = design)

代码语言:javascript
复制
# Use guides="collect" to remove duplicate guides
#使用guides=“collect”删除重复的辅助线
p6 <- ggplot(mtcars) + geom_point(aes(mpg, disp, color=cyl))
p7 <- ggplot(mtcars) + geom_point(aes(mpg, hp, color=cyl))
p6 + p7 + plot_layout(guides='collect')
# 效果见下图

图 p6 + p7 + plot_layout(guides='collect')

代码语言:javascript
复制
# Guide position must be applied to entire patchwork
#导向位置必须应用于整个拼接
p6 + p7 + plot_layout(guides='collect') &
  theme(legend.position='bottom')
# 效果见下图
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据驱动实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档