У меня проблемы с анимацией сложенного статического сюжета.(См. Анимацию ниже)
Анимация движется волатильным образом слева направо, вместо того, чтобы каждый столбец рос вверх от оси x.Сложенные части также не очень гладко растут вместе, что я не могу решить.
Что мне нужно изменить в моем коде, чтобы по мере перехода анимированного графика вдоль оси xотдельные бары растут вверх?Я также хотел бы, чтобы сгруппированные столбцы росли более плавно, чтобы части сгруппированных стержней не «перекидывались» друг на друга.
Как это возможно?
Верхний рисунокв этой статье то, что я ищу, но я не понимаю, как и где его код отличается от моего: идеальная анимация
Вот мой репрезентация:
#Static df
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
year <- as.numeric(c(1996:2015,
1996:2015,
1996:2015))
c <- c(39, 40, 67, 80, 30, 140, 90, 23, 100, 123,
140, 160, 100, 89, 173, 200, 32, 90, 100, 211,
1, 2, 1, 13, 3, 3, 30, 1, 3, 3,
1, 1, 20, 2, 1, 10, 1, 2, 1, 1,
1, 3, 1, 2, 1, 3, 1, 3, 6, 1,
1, 30, 1, 1, 8, 9, 1, 32, 1, 1)
cat <- as.character(c("out", "out", "out", "out", "out", "out", "out", "out", "out", "out",
"out", "out", "out", "out", "out", "out", "out", "out", "out", "out",
"in", "in", "in", "in", "in", "out", "in", "in", "in", "in",
"in", "in", "in", "in", "in", "in", "in", "in", "in", "in",
"other", "other", "other", "other", "other", "other", "other", "other", "other", "other",
"other", "other", "other", "other", "other", "other", "other", "other", "other", "other"))
cat <- as.factor(cat)
static_df_test <- data.frame(year, c, cat) %>%
select(year, cat, c) %>%
arrange(year, cat)
#Static plot
library(ggplot2)
(static_plot <- ggplot(static_df_test) +
geom_bar(data = static_df_test, stat="identity", position ="stack",
aes(x = year, y = c, fill = cat)) +
scale_x_continuous(breaks = seq(1996, 2015, 1),
expand = c(0.003, 0.003),
labels = c(1996, 97, 98, 99, 2000,
"01", "02", "03", "04", "05", "06",
"07", "08", "09", 10, 11, 12, 13, 14, 15)) +
scale_y_continuous(breaks = seq(0, 250, 25),
expand = c(0,0),
limits = c(0,250)) +
labs(x = "year", y = "c")
)
#Animated plot
library(gganimate)
library(ggplot2)
ani <- (static_plot) +
transition_time(as.integer(year)) +
enter_grow() + shadow_mark(past = TRUE)
animate(ani, fps = 8, 50, duration = 15,
width = 1500, height = 750, renderer = gifski_renderer())
Прямо сейчас, бары переходят, двигаясь вправо от предыдущего бара.Смотрите текущую анимацию здесь:
Заранее благодарю за любую помощь!