相关疑难解决方法(0)

在ggplot2中创建任意窗格

在基本图形中,我可以通过执行以下操作创建4个面板图形窗格:

par(mfrow=c(2,2))
for (i in 1:4){
  plot(density(rnorm(100)))
}
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述

我想用ggplot2做同样的事情,但我无法弄清楚如何做到这一点.我不能使用facet,因为我的真实数据,与这个简单的例子不同,是非常不同的结构,我想要两个图表是点图表,两个图表是直方图.如何在ggplot2中创建面板或窗格?

r ggplot2

25
推荐指数
4
解决办法
4815
查看次数

for 循环中的多个绘图忽略 par

我正在尝试生成 10 对图,每页图有几对,并使用循环for来构造这些图对。但是,这些图会作为单独的图而不是页面发送到设备。

下面的 MWE 对于基础图形和ggplot版本具有相同的结构,但基础图形可以工作,也ggplot可以不工作。我需要做什么才能使第二个版本中的分页正确?

library(ggplot2)
attach(mtcars)

# correct configuration
par(mfrow=c(2,2))
for (ii in 1:3){
  vars <- c("wt", "disp", "wt")
  plot(get(vars[ii]), mpg)
  hist(get(vars[ii]))
}

# places each on separate plot
par(mfrow=c(2,2))
for (ii in 1:3){
  vars <- c("wt", "disp", "wt")
  p <- ggplot(mtcars, aes(get(vars[ii]), mpg)) + geom_point(size=4)
  plot(p)
  p <- ggplot(mtcars, aes(get(vars[ii]))) + geom_histogram()
  plot(p)
}

detach(mtcars)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gridextra cowplot tidyeval

5
推荐指数
1
解决办法
3367
查看次数

标签 统计

ggplot2 ×2

r ×2

cowplot ×1

gridextra ×1

tidyeval ×1