2

我在其他列中有一个带有年份列和其他几个变量的小标题。我想使用 ggplot2 随着时间的推移创建一些图,其中所有其他列都按时间绘制。有没有办法在不手动创建所有图的情况下轻松做到这一点?下面是一些示例代码:

library(tidyverse)
library(gridExtra)

temp <- tibble(
  num = 1:10,
  v = num +num ^ 2,
  w = num ^ 2,
  z = num  + 3
)

temp

p1 <- ggplot(temp, aes(x = num, y = v)) +
  geom_point() + labs(y = "v")

p2 <- ggplot(temp, aes(x = num, y = w)) +
  geom_point() + labs(y = "w")

p3 <- ggplot(temp, aes(x = num, y = z)) +
  geom_point() + labs(y = "z")

grid.arrange(p1, p2, p3, nrow = 2, ncol = 2)

我实际使用的 tibble 有 5 到 15 列,因为我正在探索数据并改变周围的事物。

那么有没有一种快速的方法可以在不单独创建图的情况下做到这一点?

4

3 回答 3

2
temp %>%
  tidyr::gather(variable, value, -num) %>%
  ggplot(aes(num, value)) + 
  geom_point() + 
  facet_wrap(~variable, ncol = 2, nrow = 2)
于 2017-05-26T19:58:44.970 回答
1
setdiff(names(temp), "num") %>% 
  map(~ ggplot(temp, aes_string("num", .x)) + 
     geom_point() + labs(y=.x)) %>% 
  grid.arrange(grobs=., ncol=3)
于 2017-05-26T19:58:14.153 回答
0

您可以使用该软件包GGally进行探索性数据分析。

library(GGally)
ggpairs(data = temp) 
于 2017-05-26T20:01:12.383 回答