У меня есть этот линейный график. Я создал этот график с помощью ggplot
Код, используемый для создания сюжета, приведен ниже.
p <- ggplot(teleco,aes(x = tenure, color = Churn))+ geom_freqpoly(size=2)+theme_minimal()
Однако мне интересно, как лучше всего анимировать его. Я хотел бы, чтобы строки заполнялись постепенно. Однако я пробовал это, и это не работает, так как я считаю, что не работаю со временем.
p + transition_reveal(tenure)
Когда я запускаю этот код, он проходит вот так. Каким был бы лучший способ заставить его анимироваться, чтобы просто заполнить строки, как они есть на статическом графике?
Спасибо, Тим, я добавил код, используемый для создания сюжета.
Я предполагаю (трудно сказать наверняка с MRE), что нежелательное поведение возникает из-за использования geom_polygon
.
Вместо этого вы можете попробовать сгруппировать данные вручную, а затем использовать geom_line
. Что-то вроде
teleco %>%
group_by(tenure, Churn) %>%
summarise(count = n(), .groups = 'drop') %>%
ggplot(aes(tenure, count, col = Churn)) +
geom_line(size = 2)
Большое спасибо. Это решило это для меня. Большое спасибо Тиму
Вот рабочий, воспроизводимый пример выявления линий графика по оси x. Я бы предложил попробовать geom_line
вместо geom_freqpoly
, чтобы ваш пример работал.
library(datasets)
library(dplyr)
library(ggplot2)
library(gganimate)
aq <- datasets::airquality
ggplot(data = aq, aes(Day, Ozone, col = as.factor(Month))) +
geom_line(size = 2) +
transition_reveal(Day)
Было бы полезно увидеть код, используемый для создания сюжета, поскольку, похоже, именно из-за этого возникает проблема. Более того, минимальный воспроизводимый ответ (stackoverflow.com/help/minimal-reproducible-example) облегчит помощь.