Легенда порядка GGplot с использованием последних значений по оси X - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть некоторые данные временных рядов, построенные с использованием ggplot.Мне бы хотелось, чтобы легенда, которая появляется справа от графика, была в том же порядке, что и линия самой последней даты / значения на оси абсцисс графика.Я пытался использовать функцию case_when, но, очевидно, я использую ее неправильно.Вот пример.

df <- tibble(
  x = runif(100),
  y = runif(100),
  z = runif(100),
  year = sample(seq(1900, 2010, 10), 100, T)
) %>%
  gather(variable, value,-year) %>%
  group_by(year, variable) %>%
  summarise(mean = mean(value))



df %>%
  ggplot(aes(year, mean, color = variable)) +
  geom_line()

Example

## does not work

df %>%
  mutate(variable = fct_reorder(variable, case_when(mean ~ year == 2010)))
  ggplot(aes(year, mean, color = variable)) +
  geom_line()

1 Ответ

0 голосов
/ 05 февраля 2019

Мы можем добавить одну дополнительную строку

ungroup() %>% mutate(variable = fct_reorder(variable, mean, tail, n = 1, .desc = TRUE))

перед построением графика или использовать

df %>%
  mutate(variable = fct_reorder(variable, mean, tail, n = 1, .desc = TRUE)) %>%
  ggplot(aes(year, mean, color = variable)) +
  geom_line()

Таким образом, мы посмотрим на последние значения mean и изменим порядок variableсоответственно.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...