#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 в годах с сокращениями на 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 в годах?
Комментарии:
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