Я пытаюсь анимировать гистограмму с помощью функции плотности с наложением через ggplotly
, используя код, который выглядит как
ggplot() +
geom_point(data_1 = aes(..some aesthetic.., frame = step)) +
geom_hist(data_2 = aes(..some other aesthetic.., frame = step))
Этот код не работает, но мне кажется, что в целом гистограммыне работают с ggplotly
.Мне интересно, может ли кто-нибудь из вас помочь.
Данные
Вот пример;frame
- это переменная для определения индекса анимации
# Some data (points) for the first aes
df_1 = data.frame(x = 1:10, y = 1:10, frame = 1:10)
# Other data (for each frame multiple values from 3 groups)
df_2 = lapply(1:10, function(w)
data.frame(
val = runif(10, min = w, max = w + 1), # Value
code = sample(1:3, 10, replace = TRUE), # Color for fill
frame = w)
)
df_2 = Reduce(rbind, df_2)
Точки ggplots
отрисовывается идеально, как и анимация ggplotly(pl)
.
pl = ggplot() +
geom_point(data = df_1, aes(x, y, frame = frame))
# OK!
print(pl)
plotly::ggplotly(pl)
Гистограмма
ggplots
отрисовывает отлично.
gg_pl = ggplot() +
geom_histogram(data = df_2, aes(
val,
fill = factor(code),
frame = frame)) +
scale_fill_brewer()
# OK
print(gg_pl)
, но рендеринг с помощью ggplotly
падает
# Error!
plotly::ggplotly(gg_pl)
Ошибкаin -data $ group: недопустимый аргумент для унарного оператора
Гистограмма + Точки
Как и раньше, ggplot
работает, но анимация - нет.
pl = ggplot() +
geom_point(data = df_1, aes(x, y, frame = frame)) +
geom_histogram(data = df_2,
aes(val, fill = factor(code), frame = frame))
# OK!
print(pl)
# Errors as before
plotly::ggplotly(pl)