Я хотел бы вставить другое значение столбца моих данных в gganimate
заголовок анимации.
Пример, здесь переменная уровня состояний - x
, и я быхотел бы добавить в заголовок переменную y
:
df <- tibble(x = 1:10, y = c('a', 'a', 'b', 'd', 'c', letters[1:5]))
df
A tibble: 10 x 2
x y
<int> <chr>
1 1 a
2 2 a
3 3 b
4 4 d
5 5 c
6 6 a
7 7 b
8 8 c
9 9 d
10 10 e
Это работает, как и ожидалось:
ggplot(df, aes(x, x)) +
geom_point() +
labs(title = '{closest_state}') +
transition_states(x,
transition_length = 0.1,
state_length = 0.1)
Это не удается:
ggplot(df, aes(x, x)) +
geom_point() +
labs(title = '{closest_state}, another_var: {y}') +
transition_states(x,
transition_length = 0.1,
state_length = 0.1)
Ошибка в eval (parse (text = text, keep.source = FALSE), envir):
объект 'y' не найден
Также пробовал это, но y
не изменится:
ggplot(df, aes(x, x)) +
geom_point() +
labs(title = str_c('{closest_state}, another_var: ', df$y)) +
transition_states(x,
transition_length = 0.1,
state_length = 0.1)
Другой вариант - отобразить y
как переменную уровня состоянийи используйте переменную frame
вместо x
, но в моем приложении y
является либо необязательно уникальной символьной переменной, как указано выше, либо это числовая переменная, но опять-таки не обязательно уникальная и не обязательно-приказал.В этом случае gganimate
(или ggplot
?) Упорядочит его так, как считает нужным, в результате чего окончательный результат будет странным, а не порядок x
:
ggplot(df, aes(x, x)) +
geom_point() +
labs(title = '{frame}, another_var: {closest_state}') +
transition_states(y,
transition_length = 0.1,
state_length = 0.1)
Так как просто добавить изменяющееся значение неупорядоченной, не числовой переменной y
?
Наконец: этот вопрос был задан здесь , но безвоспроизводимый пример, на который не было ответа, надеясь, что этот будет лучше.