ggplot 使用 facet_wrap 功能同时在 R 中绘制来自多个 data.frame 的统计数据?
ggplot using facet_wrap functionality while graphing statistics from multiple data.frame in R?
对于具有多个变量的单个 dataframe,我使用以下代码来计算统计数据和绘图。
library(tidyverse)
DF1 <- data.frame(seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
MaxTemp = runif(1095,-5,20),
MinTemp = runif(1095,-8,15),
MeanTemp = runif(1095,-10,10),
DF = rep("DF1",1095))
colnames(DF1) <- c("Date", "MaxTemp","MinTemp","MeanTemp","DF")
DF_1 <- DF1 %>% mutate(JDay = yday(Date)) %>%
group_by(JDay) %>%
summarise(AveMaxTemp = mean(MaxTemp, na.rm = T),
AveMinTemp = mean(MinTemp, na.rm = T),
AveMeanTemp = mean(MeanTemp, na.rm = T))
DF_1 %>% gather(key = "Variable", value = "Value", -c(JDay)) %>%
ggplot(aes(x = JDay, y = Value, col = Variable))+
geom_line(aes(y = Value))
以防万一,我有多个data.frame
(见下例)。有没有办法将两个 data.frame
(即 DF1
和 DF2
)结合起来,计算统计数据,然后使用 [Tag:facet_wrap] 绘制它?
DF2 <- data.frame(Date = DF1$Date,
MaxTemp = runif(1095, -2,15),
MinTemp = runif(1095,-6,15),
MeanTemp = runif(1095,-5,10),
DF = rep("DF2",1095))
我正在寻找如下图
尝试这样做
DF3 <- bind_rows(DF1, DF2)
DF_3 <- DF3 %>%
mutate(JDay = yday(Date)) %>%
group_by(JDay, DF) %>%
summarise(AveMaxTemp = mean(MaxTemp, na.rm = T),
AveMinTemp = mean(MinTemp, na.rm = T),
AveMeanTemp = mean(MeanTemp, na.rm = T))
DF_3 %>% gather(key = "Variable", value = "Value", -c(JDay, DF)) %>%
ggplot(aes(x = JDay, y = Value, col = Variable)) +
geom_line(aes(y = Value)) +
facet_wrap(~ DF)
对于具有多个变量的单个 dataframe,我使用以下代码来计算统计数据和绘图。
library(tidyverse)
DF1 <- data.frame(seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
MaxTemp = runif(1095,-5,20),
MinTemp = runif(1095,-8,15),
MeanTemp = runif(1095,-10,10),
DF = rep("DF1",1095))
colnames(DF1) <- c("Date", "MaxTemp","MinTemp","MeanTemp","DF")
DF_1 <- DF1 %>% mutate(JDay = yday(Date)) %>%
group_by(JDay) %>%
summarise(AveMaxTemp = mean(MaxTemp, na.rm = T),
AveMinTemp = mean(MinTemp, na.rm = T),
AveMeanTemp = mean(MeanTemp, na.rm = T))
DF_1 %>% gather(key = "Variable", value = "Value", -c(JDay)) %>%
ggplot(aes(x = JDay, y = Value, col = Variable))+
geom_line(aes(y = Value))
以防万一,我有多个data.frame
(见下例)。有没有办法将两个 data.frame
(即 DF1
和 DF2
)结合起来,计算统计数据,然后使用 [Tag:facet_wrap] 绘制它?
DF2 <- data.frame(Date = DF1$Date,
MaxTemp = runif(1095, -2,15),
MinTemp = runif(1095,-6,15),
MeanTemp = runif(1095,-5,10),
DF = rep("DF2",1095))
我正在寻找如下图
尝试这样做
DF3 <- bind_rows(DF1, DF2)
DF_3 <- DF3 %>%
mutate(JDay = yday(Date)) %>%
group_by(JDay, DF) %>%
summarise(AveMaxTemp = mean(MaxTemp, na.rm = T),
AveMinTemp = mean(MinTemp, na.rm = T),
AveMeanTemp = mean(MeanTemp, na.rm = T))
DF_3 %>% gather(key = "Variable", value = "Value", -c(JDay, DF)) %>%
ggplot(aes(x = JDay, y = Value, col = Variable)) +
geom_line(aes(y = Value)) +
facet_wrap(~ DF)