web-dev-qa-db-ja.com

回転速度の制御

library(gganimate)を使用するときに、状態間の遷移速度を遅くしたい。

ここに小さな例があります:

_# devtools::install_github("thomasp85/gganimate")
library(gganimate) # v0.9.9.9999

dat_sim <- function(t_state, d_state) {
  data.frame(
    x = runif(1000, 0, 1),
    y = runif(1000, 0, 1),
    t_state = t_state*d_state
    )
}

dat <- purrr::map_df(1:100, ~ dat_sim(., 1))

ggplot(dat, aes(x, y)) +
  geom_hex(bins = 5) +
  theme_void() +
  lims(x = c(.3, .7),
       y = c(.3, .7)) +
  theme(legend.position = "none") +
  transition_time(t_state)
_

toofast

私の理想的な行動ははるかに遅い(10-100x)ので、色の変化は徐々に進化し、誰も発作を起こしません。

より手動で制御するためにtransition_states()を使用しようとすると、フレームがほとんど空白のgifが表示されます。 _transition_legnth=_と_state_length=_のさまざまな組み合わせを試しましたが、目立った効果はありません。

_ggplot(dat, aes(x, y)) +
  geom_hex(bins = 5) +
  theme_void() +
  lims(x = c(.3, .7),
       y = c(.3, .7)) +
  theme(legend.position = "none") +
  transition_states(t_state, transition_length = .1, state_length = 2)
_

mostlyblank

14
Nate

私は docsanimate関数にあり、fpsおよびをとることができますdetailパラメータ。

@ paramfpsアニメーションのフレームレート(フレーム/秒)

@ paramdetailフレームごとに計算する追加フ​​レームの数

結果:

p <- ggplot(dat, aes(x, y)) +
      geom_hex(bins = 5) +
      theme_void() +
      lims(x = c(.3, .7),
           y = c(.3, .7)) +
      theme(legend.position = "none") +
      transition_time(t_state)
animate(p, fps=1)

enter image description here

pngjpegsvgなどの出力形式も指定できます。

18
RobJan