これは、アニメーション化したい静的プロットの再現可能な例です(MCMCサンプラーの動作を示したい)。
library(tidyverse)
library(gganimate)
set.seed(1234)
plot_data <- tibble(x=cumsum(rnorm(100)),
y=cumsum(rnorm(100)),
time=1:length(x))
ggplot(data=plot_data,
aes(x=y, y=x)) +
geom_point() + geom_line()
私が見たいのは、ポイントが描画されて少しフェードアウトしたときに表示されるポイントです(つまり、アルファは1から0.3に変わります)。最近の履歴のみを表示するラインがあります(理想的には、最新の履歴は最も色あせが少なく、数歩以上前に完全に消えています)。
次は、ポイントに必要なものをほぼ達成します(つまり、最後のいくつかのポイントを接続するフェージングラインをこれに追加したいだけです。ポイントは、いくつかのフレームでゆっくりとフェージングがさらに良くなります)。
ggplot(data=plot_data,
aes(x=y, y=x)) +
geom_point() +
transition_time(time) +
shadow_mark(past = T, future=F, alpha=0.3)
私が苦労しているのは、ポイントとラインなど、2つのジオメトリに2つの異なる動作を追加する方法です。たとえば、以下では点が消え(私はそれらが欲しくない)、線は消えません(私はそれらが欲しがります)。
p <- ggplot(data=plot_data,
aes(x=y, y=x)) +
geom_point() +
transition_time(time) +
shadow_mark(past = T, future=F, alpha=0.3)
p + geom_line() +
transition_reveal(along = time) +
shadow_mark(past = T, future=F, alpha=0.3)