R ggplot2: данные в неделях, но я хочу, чтобы ось X отображалась на моем рисунке в годах

#r #ggplot2

#r #ggplot2

Вопрос:

Нужна помощь в этой проблеме. Мои данные примерно такие.

 week   status  dist
0       1       44%
0       2       47%
0       3       9%
1       1       46%
1       2       46%
1       3        8%

young = g_young %>%
  ggplot() 
  geom_area(aes(x = week,y=dist, fill = factor(status),
                position = "stack", width = 1),
            stat = "identity", show.legend=FALSE)   
  scale_fill_brewer(labels = c("Not listed", "Listed", "Removed", "Transplanted", "Died"),
                    palette = "Blues")  
  scale_x_continuous(breaks=seq(0,208,52))   
  theme_classic()

  

Данные такие за 4 года (т.Е. 208 недель).

Полученная цифра выглядит примерно так: Я хочу, чтобы эта цифра содержала только ось X, переведенную в годы

Однако на приведенном выше рисунке я хочу ось X в годах с сокращениями на 0,1,2,3,4.

Я пытался:

 g_young$year = cut(g_young$week,
                   breaks=c(-Inf,52,104,156,208),
                   labels = c("1","2","3","4"))

young = g_young %>%
  ggplot() 
  geom_area(aes(x =year, y=dist, fill = factor(status),
                position = "stack", width = 1),
            stat = "identity", show.legend=FALSE)   
  scale_x_discrete(breaks=seq(0,4,1))   
  theme_classic()
  

Полученная мной цифра:

Изображение, которое я получаю, когда пытаюсь использовать x = год после разделения данных в неделях на годы.

Есть идеи, как я могу использовать данные, выраженные в неделях (чтобы я мог получить плавные кривые), но ось X в годах?

Комментарии:

1. Создать столбец года с математикой? g_young$year = g_young$week / 52 ? Год все равно должен быть непрерывным — не категоричным, так что нет scale_x_discrete .

2. пожалуйста, предоставьте данные, используя dput

3. @GregorThomas работает прекрасно. Большое спасибо. Просто, но элегантно :))))

4. в tidyverse есть scale_x_date функция, которая позволяет вам масштабировать ось дат в разные единицы измерения. Вот их документация: ggplot2.tidyverse.org/reference/scale_date.html