ggplot 在 R 中使用多个 data.frame 的 facet_wrap?
ggplot using facet_wrap of multiple data.frame in R?
我正在尝试 ggplot
D2
与 D1
相同的数字。但是,我在 D2
data.frame
中没有变量 X
的数据。我如何在 D1 plot
的 facets
上绘制 D2
?这些图代表 2011
和 2014
的数据,所以我想 legends
代表 line
来区分哪个 line
代表哪个 year
数据.
library(tidyverse)
set.seed(1500)
D1 <- data.frame(Day = 1:8, A = runif(8, 2,16), S = runif(8, 3,14), X = runif(8, 5,10), Z = runif(8, 1,12), Year = rep("2011",8))
D2 <- data.frame(Day = 1:8, A = runif(8, 2,14), S = runif(8, 1,13), Z = runif(8, 3,14), Year = rep("2014",8))
# plotting D1
D1 %>% gather(-c(Day, Year), key = "Variable", value = "Value") %>%
ggplot( aes(x = Day, y = Value))+
geom_line()+facet_wrap(~Variable, scales = "free_y", nrow=2)
# Plotting D2 on top ?
如何将两个 DF 转换为长格式,然后在绘图之前将它们合并在一起?
library(tidyverse)
set.seed(1500)
D1 <- data.frame(Day = 1:8, A = runif(8, 2,16), S = runif(8, 3,14),
X = runif(8, 5,10), Z = runif(8, 1,12), Year = rep("2011",8))
D1_long <- D1 %>%
pivot_longer(-c(Day, Year),
names_to = 'Variable',
values_to = 'Value')
D2 <- data.frame(Day = 1:8, A = runif(8, 2,14), S = runif(8, 1,13),
Z = runif(8, 3,14), Year = rep("2014",8))
D2_long <- D2 %>%
pivot_longer(-c(Day, Year),
names_to = 'Variable',
values_to = 'Value')
### merge two data frames
DF <- bind_rows(D1_long, D2_long)
my_linetype <- setNames(c("dashed", "solid"), unique(DF$Year))
# plot DF
DF %>%
ggplot(aes(x = Day, y = Value,
color = Year,
linetype = Year))+
geom_line() +
facet_wrap(~ Variable, scales = "free_y", nrow = 2) +
scale_color_brewer(palette = 'Dark2') +
scale_linetype_manual(values = my_linetype) +
theme_bw(base_size = 14) +
theme(legend.position = 'bottom') +
theme(legend.key.size = unit(2.5, 'lines'))
由 reprex package (v0.3.0)
于 2020-07-15 创建
我正在尝试 ggplot
D2
与 D1
相同的数字。但是,我在 D2
data.frame
中没有变量 X
的数据。我如何在 D1 plot
的 facets
上绘制 D2
?这些图代表 2011
和 2014
的数据,所以我想 legends
代表 line
来区分哪个 line
代表哪个 year
数据.
library(tidyverse)
set.seed(1500)
D1 <- data.frame(Day = 1:8, A = runif(8, 2,16), S = runif(8, 3,14), X = runif(8, 5,10), Z = runif(8, 1,12), Year = rep("2011",8))
D2 <- data.frame(Day = 1:8, A = runif(8, 2,14), S = runif(8, 1,13), Z = runif(8, 3,14), Year = rep("2014",8))
# plotting D1
D1 %>% gather(-c(Day, Year), key = "Variable", value = "Value") %>%
ggplot( aes(x = Day, y = Value))+
geom_line()+facet_wrap(~Variable, scales = "free_y", nrow=2)
# Plotting D2 on top ?
如何将两个 DF 转换为长格式,然后在绘图之前将它们合并在一起?
library(tidyverse)
set.seed(1500)
D1 <- data.frame(Day = 1:8, A = runif(8, 2,16), S = runif(8, 3,14),
X = runif(8, 5,10), Z = runif(8, 1,12), Year = rep("2011",8))
D1_long <- D1 %>%
pivot_longer(-c(Day, Year),
names_to = 'Variable',
values_to = 'Value')
D2 <- data.frame(Day = 1:8, A = runif(8, 2,14), S = runif(8, 1,13),
Z = runif(8, 3,14), Year = rep("2014",8))
D2_long <- D2 %>%
pivot_longer(-c(Day, Year),
names_to = 'Variable',
values_to = 'Value')
### merge two data frames
DF <- bind_rows(D1_long, D2_long)
my_linetype <- setNames(c("dashed", "solid"), unique(DF$Year))
# plot DF
DF %>%
ggplot(aes(x = Day, y = Value,
color = Year,
linetype = Year))+
geom_line() +
facet_wrap(~ Variable, scales = "free_y", nrow = 2) +
scale_color_brewer(palette = 'Dark2') +
scale_linetype_manual(values = my_linetype) +
theme_bw(base_size = 14) +
theme(legend.position = 'bottom') +
theme(legend.key.size = unit(2.5, 'lines'))
由 reprex package (v0.3.0)
于 2020-07-15 创建