R语言中的图片布局设置

R语言中的图片布局是个问题,下面是对图片布局设置的方法。

python 复制代码
library(ggplot2)

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 parentheses to group plots
(p1 + p2)/ p3 / p4


# Use byrow to change how the grid is filled out 
# byrow = FALSE表示按照列来进行排序
p1 + p2 + p3 + p4 + p5 + plot_layout(byrow = FALSE)

# Change the grid dimensions
# 第二列宽度是第一列的两倍,withths是相对高度和宽度
p1 + p2 + p3 + p4 + p5 + plot_layout(ncol = 2, widths = c(1, 2))

# Define layout at different nesting levels
# 三个维度,第一行p1p2,然后再规定p3p4在同一列,然后p5的高度是相对的两倍
p1 +
  p2 +
  (p3 +
     p4 +
     plot_layout(ncol = 1)
  ) +
  p5 +
  plot_layout(widths = c(2, 1))

# Complex layouts can be created with the `design` argument
# area(t, l, b = t, r = l) tb为上下边界, lr为左右边界
design <- c(
  area(1, 1, 2),
  area(1, 2, 1, 3),
  area(2, 3, 3),
  area(3, 1, 3, 2),
  area(2, 2)
)

plot(design)  # Show the layout to make sure it looks as it should
p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)


# The same can be specified as a character string:
# 和上面的效果一样,数字相同就是占据同样的位置
design <- "
  122
  153
  443
"


#plot(design)  
p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

# Areas can be left empty
# 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)

# Use guides="collect" to remove duplicate guides
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')

# Guide position must be applied to entire patchwork
p6 + p7 + plot_layout(guides='collect') &
  theme(legend.position='bottom')
相关推荐
运维行者_2 分钟前
通过OpManager的Windows服务监控能力释放最佳IT网络性能
服务器·开发语言·网络·windows·web安全·php
.千余4 分钟前
【Linux】进程概念
linux·服务器·开发语言·学习
码界筑梦坊18 分钟前
94-基于Python的商品物流数据可视化分析系统
开发语言·python·mysql·信息可视化·数据分析·毕业设计·fastapi
im_AMBER1 小时前
Leetcode 160 最小覆盖子串 | 串联所有单词的子串
开发语言·javascript·数据结构·算法·leetcode
Rabitebla1 小时前
【数据结构】动态顺序表实现详解:从原理到接口设计(面试视角)
c语言·开发语言·数据结构·c++·面试·职场和发展
郝学胜-神的一滴1 小时前
Linux 高并发基石:epoll 核心原理 + LT/ET 触发模式深度剖析
linux·运维·服务器·开发语言·c++·网络协议
A_aspectJ1 小时前
Java开发的学习优势:稳定基石与多元可能并存的技术赛道
java·开发语言
qq_283720051 小时前
Python 模块精讲:collections —— 高级数据结构深度解析(defaultdict、Counter、deque)
java·开发语言
wjs20242 小时前
Chart.js 饼图指南
开发语言
YSF2017_32 小时前
C语言-12-静态库制作
c语言·开发语言