很难用单词解释,所以请看下面的图片。我知道我可以按年分面,但这并不能实现我想要的目标。


这可能吗?


library(tidyverse)
library(lubridate)

set.seed(88)
start <- ymd("2009/11/01")
data <- data_frame(date = start + months(0:11)
              , donuts = rnorm(12, mean = 30, sd = 5) %>% round(., 0)
              , year = year(date)
              , month = month(date, label =T, abbr =T)
              )

ggplot(data = data, aes(x = date, y = donuts)) + geom_line()

最佳答案

您可以在刻面方面非常接近,

dummy <- mutate(data[3,], date = date - 1L, year = year(date))
data <- rbind(data, dummy)

ggplot(data = data, aes(x = date, y = donuts, group=1)) + geom_line() +
  facet_grid(.~year, scale="free", space="free", switch = "x") +
  scale_x_date(date_breaks = "1 month", date_labels = "%b", expand = c(0,0)) +
  theme_minimal() + theme(panel.spacing.x = unit(0,"line"),
                          strip.placement = "outside")


r - ggplot干净的方法来显示一年一次和组内几个月-LMLPHP

10-07 19:40
查看更多