ggplot2 facet_wrap()4散点图

时间:2017-01-31 06:40:20

标签: r plot ggplot2

我有一个数据集(来自R):

 head(anscombe)
  x1 x2 x3 x4   y1   y2    y3   y4
1 10 10 10  8 8.04 9.14  7.46 6.58
2  8  8  8  8 6.95 8.14  6.77 5.76

现在我想使用(x1,y1)在网格中绘制(x2,y2)(x3,y3(x4, y4))和ggplot2的散点图。每个子图也应分别具有标题“1”,“2”,“3”,“4”。它应该与我们使用par(mfrow=c(2,2))时的情况类似。我查看了facet_wrap文档,但示例似乎并未涉及这个简单的案例。我怎样才能在ggplot2中实现它?

3 个答案:

答案 0 :(得分:1)

可能并非所有这些都是必需的,但它对我有用。要查看它在做什么,只需逐行遍历,然后查看中间步骤。

$posts = $response['results'];

enter image description here

答案 1 :(得分:1)

如果可以接受对1-4号数据集进行硬编码,那么这就是一种方法:

library(dplyr)
library(ggplot2)
data(anscombe)

list(
  transmute(anscombe, x=x1, y=y1, dataset=1),
  transmute(anscombe, x=x2, y=y2, dataset=2),
  transmute(anscombe, x=x3, y=y3, dataset=3),
  transmute(anscombe, x=x4, y=y4, dataset=4)
) %>%
bind_rows() %>%
ggplot(aes(x, y)) +
geom_point() +
facet_wrap(~ dataset)

主要的是你需要一个变量中的所有x坐标值(x1到x4),以及另一个变量中的所有y坐标(y1到y4)。

plot

答案 2 :(得分:1)

您也可以尝试不使用facet_wrap

library(ggplot2)
library(gridExtra)
grid.arrange(ggplot(df, aes(x1, y1))+geom_point(size=2),
             ggplot(df, aes(x2, y2))+geom_point(size=2),
             ggplot(df, aes(x3, y3))+geom_point(size=2),
             ggplot(df, aes(x4, y4))+geom_point(size=2))

enter image description here