gpt4 book ai didi

r - 如何在保持布局固定的同时为不断增长的图形设置动画?

转载 作者:行者123 更新时间:2023-12-04 06:52:22 25 4
gpt4 key购买 nike

我正在使用 igraph 制作动画和 animation包。我想通过一次通过 data.frame 1 行进行动画处理来观察边缘的变化。我创建了一个 igraph 对象列表,并希望确保所有社交参与者都被表示出来,即使他们的行还没有出现。他们将成为隔离,直到后来的动画。

如何将参与者作为隔离添加到 igraph 对象中。我正在使用 layout.circle并希望将 Actor 保持在一致的位置。

我将从数据(igraph 对象)开始,然后是一些视觉效果来展示我想要的东西。

g <- structure(list(4, TRUE, c(0, 1, 2, 0), c(1, 2, 0, 3), c(0, 3, 
1, 2), c(2, 0, 1, 3), c(0, 2, 3, 4, 4), c(0, 1, 2, 3, 4), list(
c(1, 0, 1), structure(list(), .Names = character(0)), structure(list(
name = c("greg", "teacher", "sam", "sally"), size = c(10,
10, 10, 10)), .Names = c("name", "size")), structure(list(
wc = c(5L, 4L, 10L, 5L), id = 2:5, prop_wc = c(0.208333333333333,
0.166666666666667, 0.416666666666667, 0.208333333333333
), color = c("grey50", "grey50", "grey50", "grey50"),
width = c(3.125, 2.5, 6.25, 3.125)), .Names = c("wc",
"id", "prop_wc", "color", "width")))), class = "igraph")


library(igraph)
plot(g, layout=layout.circle)

## vector of actors to include in this order
## in the igraph object there is no "researcher" or "End" actor
actors <- c("greg", "teacher", "sam", "sally", "researcher", "End")

这绘制为:

enter image description here

我想(不要担心线宽权重):

enter image description here

所以动画序列将是这样的(所有 Actor 都包含在每一帧中):

enter image description here

如果我可以添加隔离 c("researcher", "End")对于上面的 igraph,我可以推广到每一帧。

我认为这可能很简单:
V(g) <- actors

但事实并非如此。

最佳答案

我用来实现这一点的技巧是预渲染布局,并将每个节点和边缘预先格式化为不可见,直到它们的时间到来。

  • 为全图渲染布局 L
  • 起初一切都是不可见的(hsv(.36,1,1,alpha=0))
  • 循环 :
  • 使节点/边在应该出现时立即可见 ( hsv(.36,1,1,alpha=1) )
  • 绘图图(具有初始计算和恒定布局 L)并另存为 png
  • 使用 ffmpeg 将所有东西粘在一起

  • 带动画的主条目:

    http://www.joyofdata.de/blog/animated-visualization-of-a-growing-network-of-carpoolings/

    代码:

    http://www.joyofdata.de/blog/r-code-for-igraph-animation/

    关于r - 如何在保持布局固定的同时为不断增长的图形设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543782/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com