如何快速绘制 tibble 的一列与所有其他列的对比图?
How do I graph one column of a tibble versus all other columns quickly?
我有一个小标题,其中包含年份列和其他列中的其他几个变量。我想使用 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 列。
那么有没有一种不用单独创建绘图的快速方法呢?
setdiff(names(temp), "num") %>%
map(~ ggplot(temp, aes_string("num", .x)) +
geom_point() + labs(y=.x)) %>%
grid.arrange(grobs=., ncol=3)
temp %>%
tidyr::gather(variable, value, -num) %>%
ggplot(aes(num, value)) +
geom_point() +
facet_wrap(~variable, ncol = 2, nrow = 2)
您可以使用包 GGally
进行探索性数据分析。
library(GGally)
ggpairs(data = temp)
我有一个小标题,其中包含年份列和其他列中的其他几个变量。我想使用 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 列。
那么有没有一种不用单独创建绘图的快速方法呢?
setdiff(names(temp), "num") %>%
map(~ ggplot(temp, aes_string("num", .x)) +
geom_point() + labs(y=.x)) %>%
grid.arrange(grobs=., ncol=3)
temp %>%
tidyr::gather(variable, value, -num) %>%
ggplot(aes(num, value)) +
geom_point() +
facet_wrap(~variable, ncol = 2, nrow = 2)
您可以使用包 GGally
进行探索性数据分析。
library(GGally)
ggpairs(data = temp)