R:动态更新图表

机器算法验证 r 数据可视化
2022-03-25 07:48:53

这是一个数据可视化问题。我有一个数据库,其中包含一些不断修改(在线更新)的数据。R 中每隔 5 或 10 秒更新一次图表的最佳方法是什么。(无需再次绘制一切皆有可能)?

红色

2个回答

对于离线可视化,您可以生成 PNG 文件并使用ImageMagick将它们转换为动画 GIF 我用它来演示(不过,这会重绘所有数据):

source(url("http://aliquote.org/pub/spin_plot.R"))
dd <- replicate(3, rnorm(100))
spin.plot(dd)

这会生成几个 PNG 文件,前缀为fig. 然后,在 un*x shell 上,

convert -delay 20 -loop 0 fig*.png sequence.gif

给出了这个动画(灵感来自Modern Applied Biostatistical Methods using S-Plus , S. Selvin, 1998):

替代文字

另一个看起来更有希望的选择是依赖动画包。有一个带有移动窗口自动回归的示例,可以让您开始使用。

假设您要更新 Rwindows()x11()图形,您可以使用 和 等函数points()lines()图形上添加新点或延长线而无需重绘;但请注意,这不会更改轴范围以适应可能看不见的点。一般来说,使绘图本身是即时的通常是一个好主意——例如,通过将计算工作转移到制作一些可以快速绘制的简化中间表示,例如密度图而不是大量点或降低线图的分辨率(虽然这可能很复杂)。

要在不忙等待的情况下保持 R 会话一段时间,请使用Sys.sleep().