ggplot 在 R 中使用 facet_wrap?
ggplot using facet_wrap in R?
我想使用 ggplot
的 face_wrap
功能绘制以下示例数据。 plot
似乎不对。 line
应该有平滑的连接,在 facets
中没有额外的 space (即 Facet A
从 10-15 有空 space 而 Facet B
有space0-5)。 x 轴上的月份也有点奇怪。
library(tidyverse)
library(lubridate)
set.seed(555)
D <- data.frame(Date = seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
A = runif(1095, 0,10), Z = runif(1095, 5,15))
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>%
mutate(Year = year(Date), Month = month(Date)) %>%
ggplot(aes(x = Month, y = Value, col = as.factor(Year)))+
geom_line()+facet_wrap(~Variable, nrow = 2)
期望的输出: 我正在寻找如下图,其中线条具有平滑的月与月连接。
你可以试试这个:
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>%
mutate(Year = year(Date), Month = month(Date)) %>%
ggplot(aes(x = factor(Month), y = Value, col = as.factor(Year),group=factor(Year)))+
geom_line()+facet_wrap(~Variable, nrow = 2,scales='free')
如果您想使用一年中的某天作为您的 x 位置并仍然获得有效的日期轴,您可以取消日期的年份:
library(tidyverse)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
set.seed(555)
D <- data.frame(Date = seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
A = runif(1095, 0,10), Z = runif(1095, 5,15))
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>%
mutate(Year = year(Date), Month = month(Date),
Date = {year(Date) <- 2000; Date}) %>%
ggplot(aes(x = Date, y = Value, col = as.factor(Year)))+
geom_line()+facet_wrap(~Variable, nrow = 2) +
scale_x_date(date_breaks = "1 month",
date_labels = "%b")
由 reprex package (v0.3.0)
于 2020 年 7 月 18 日创建
我想使用 ggplot
的 face_wrap
功能绘制以下示例数据。 plot
似乎不对。 line
应该有平滑的连接,在 facets
中没有额外的 space (即 Facet A
从 10-15 有空 space 而 Facet B
有space0-5)。 x 轴上的月份也有点奇怪。
library(tidyverse)
library(lubridate)
set.seed(555)
D <- data.frame(Date = seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
A = runif(1095, 0,10), Z = runif(1095, 5,15))
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>%
mutate(Year = year(Date), Month = month(Date)) %>%
ggplot(aes(x = Month, y = Value, col = as.factor(Year)))+
geom_line()+facet_wrap(~Variable, nrow = 2)
期望的输出: 我正在寻找如下图,其中线条具有平滑的月与月连接。
你可以试试这个:
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>%
mutate(Year = year(Date), Month = month(Date)) %>%
ggplot(aes(x = factor(Month), y = Value, col = as.factor(Year),group=factor(Year)))+
geom_line()+facet_wrap(~Variable, nrow = 2,scales='free')
如果您想使用一年中的某天作为您的 x 位置并仍然获得有效的日期轴,您可以取消日期的年份:
library(tidyverse)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
set.seed(555)
D <- data.frame(Date = seq(as.Date("2001-01-01"), to= as.Date("2003-12-31"), by="day"),
A = runif(1095, 0,10), Z = runif(1095, 5,15))
D %>% pivot_longer(-Date, names_to = "Variable", values_to = "Value") %>%
mutate(Year = year(Date), Month = month(Date),
Date = {year(Date) <- 2000; Date}) %>%
ggplot(aes(x = Date, y = Value, col = as.factor(Year)))+
geom_line()+facet_wrap(~Variable, nrow = 2) +
scale_x_date(date_breaks = "1 month",
date_labels = "%b")
由 reprex package (v0.3.0)
于 2020 年 7 月 18 日创建