【问题标题】:How to customize Plotly/R/ggplot2 animation breakpoints (frame spacing, duration)如何自定义 Plotly/R/ggplot2 动画断点(帧间距、持续时间)
【发布时间】:2021-03-27 19:20:31
【问题描述】:

我正在尝试使用ggplotly 为时间点设置动画。然而,时间间隔的长度是可变的,而且似乎 plotly 的默认行为是为每个给定帧在动画滑块上设置相等的间距。这是不可取的,因为恒定间距会错误地表示数据集中的持续时间。

我无法弄清楚是否有任何方法可以改变这一点。是否可以自定义动画滑块上的步骤之间的间距——也许还有每个步骤之间的持续时间?

简单示例:

x <- tribble(
    ~x, ~y, ~t,
    1, 1, 1,
    2, 2, 2,
    4, 4, 4
)
g <- ggplot(x, aes(x, y)) +
    geom_point(aes(frame=t))

ggplotly(g)

Output image 在本例中,时间 4 与时间 2 的距离与时间 2 与 1 的距离一样。

我现在能想到的最好的解决方法是在所有正确的位置复制数据,以综合确保时间/帧之间的间距实际上相等。这仍然不是最理想的,因为这样每次帧从合成时间转换到观察到的时间时,它都会使数据看起来不切实际地跳跃。

【问题讨论】:

    标签: r ggplot2 plotly r-plotly ggplotly


    【解决方案1】:

    如果您只是想要在帧之间插入动画,您可以使用gganimate 来实现。它与 plotly 的功能不同(它本质上是一个 gif),但会以您在示例中尝试的方式显示。

    library(gganimate)
    
    g2 <- ggplot(x, aes(x, y)) +
      geom_point() +
      labs(title = "t = {frame_time}") +
      transition_time(t)
    
    animate(g2)
    

    【讨论】:

    • 谢谢! plotly 的交互性是一个很大的吸引力(这个可视化正在向一些交互式 html 发展),但是知道 gganimate 可以是一个改变其转换时间的替代方案真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2018-06-15
    • 1970-01-01
    • 2012-11-17
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多