Ошибка в animate.default (): анимация объектов gg не поддерживается - PullRequest
0 голосов
/ 11 октября 2019

Получение сообщения об ошибке Error in animate.default() : animation of gg objects not supported при выполнении следующего (из учебника здесь )

library(ggplot2)
library(gganimate)
library(gapminder)
theme_set(theme_bw())  # pre-set the bw theme.

g <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, frame = year)) +
  geom_point() +
  geom_smooth(aes(group = year), 
              method = "lm", 
              show.legend = FALSE) +
  facet_wrap(~continent, scales = "free") +
  scale_x_log10()  # convert to log scale

animate(g, interval=0.2)

Как можно воспроизвести анимацию?

1 Ответ

1 голос
/ 11 октября 2019

Я полагаю, что это может быть связано с более новой версией gganimate и изменениями в API .

Это вторая итерация пакета gganimate. Первый, разработанный Дэвидом Робинсоном, имел совершенно другой API и основывался на указании принадлежности кадров анимации внутри блоков aes () в вызовах geom _ * (). Этот подход был легок для понимания, но по существу ограничен в возможностях и поэтому был заброшен для более тщательной грамматики.

Код, написанный для старого API, не будет работать с этой версией gganimate и не будет поддержки в будущемдля этого. Если вы хотите продолжить использовать старый API, тогда избегайте обновления gganimate. Если вы уже выполнили обновление и хотите понизить версию, последняя версия старого API доступна в виде выпуска GitHub.

Если вы хотите использовать старый API, он доступен здесь . Если вы используете или планируете использовать версию> 1.0.0, то не используйте frame в aes(), как это было сделано ранее. Чтобы получить тот же пример, попробуйте:

ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop)) +
  geom_point() +
  geom_smooth(aes(group = year), 
              method = "lm", 
              show.legend = FALSE) +
  facet_wrap(~continent, scales = "free") +
  scale_x_log10() +
  transition_manual(year)
...