R:グラフを動的に更新する[終了]


9

これはデータを視覚化する質問です。常に更新されている(オンライン更新)いくつかのデータを含むデータベースがあります。Rが5秒または10秒ごとにグラフを更新する最良の方法は何ですか。(もう一度プロットすることなく、すべてが可能です)?

フレッド

回答:


7

あなたがR更新したいと仮定しwindows()たりx11()、グラフを、あなたは次のような機能を使用することができますpoints()し、lines()新しいポイントを追加したり、再描画することなく、グラフ上の線を延長します。ただし、これにより、Axesの範囲が変更されて、ビューから外れる可能性のあるポイントに対応することはありません。一般に、プロット自体を瞬間的にすることは、通常、たとえば計算の労力を移動して、非常に多くのポイントの代わりに密度マップやラインプロットの解像度を下げるなど、迅速にプロットできるいくつかの縮小された中間表現を作成することにより、良いアイデアです(これは複雑かもしれません)。

Rセッションをビジーな待機なしで一定時間保持するには、を使用しますSys.sleep()


Sys.sleep()xy

xy

1
@mpiktasまたはplot()、おそらく0,0,type="n"まだプロットするものが何もない場合は、を1回呼び出すだけでプロットを初期化します...確かに、これはplot.new()、手作業で軸やラベルなどをすべて追加して追加するよりもはるかに簡単です。

確かに、これは最も簡単なように見えますが...軸が更新されないのは残念です。オンラインで時系列を更新したいので、x軸の移動速度がわかっているので、n回の更新ごとにすべてを再プロットできると思います。
RockScience、2011年

8

オフラインで視覚化するには、PNGファイルを生成し、ImageMagickを使用してアニメーションGIFに変換できます。私はそれをデモンストレーションに使用しました(ただし、これはすべてのデータを再描画します)。

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

これにより、接頭辞がのいくつかのPNGファイルが生成されますfig。次に、un * xシェルで、

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

このアニメーションを示します(S-Plusを使用したModern Applied Biostatistical Methodsからインスピレーションを得て、S。Selvin、1998年)。

代替テキスト

より有望に見える別のオプションは、アニメーションパッケージに依存することです。手始めにできるムービングウィンドウ自動回帰の例があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.