これはデータを視覚化する質問です。常に更新されている(オンライン更新)いくつかのデータを含むデータベースがあります。Rが5秒または10秒ごとにグラフを更新する最良の方法は何ですか。(もう一度プロットすることなく、すべてが可能です)?
フレッド
これはデータを視覚化する質問です。常に更新されている(オンライン更新)いくつかのデータを含むデータベースがあります。Rが5秒または10秒ごとにグラフを更新する最良の方法は何ですか。(もう一度プロットすることなく、すべてが可能です)?
フレッド
回答:
あなたがR更新したいと仮定しwindows()
たりx11()
、グラフを、あなたは次のような機能を使用することができますpoints()
し、lines()
新しいポイントを追加したり、再描画することなく、グラフ上の線を延長します。ただし、これにより、Axesの範囲が変更されて、ビューから外れる可能性のあるポイントに対応することはありません。一般に、プロット自体を瞬間的にすることは、通常、たとえば計算の労力を移動して、非常に多くのポイントの代わりに密度マップやラインプロットの解像度を下げるなど、迅速にプロットできるいくつかの縮小された中間表現を作成することにより、良いアイデアです(これは複雑かもしれません)。
Rセッションをビジーな待機なしで一定時間保持するには、を使用しますSys.sleep()
。
plot()
、おそらく0,0,type="n"
まだプロットするものが何もない場合は、を1回呼び出すだけでプロットを初期化します...確かに、これはplot.new()
、手作業で軸やラベルなどをすべて追加して追加するよりもはるかに簡単です。
オフラインで視覚化するには、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年)。
より有望に見える別のオプションは、アニメーションパッケージに依存することです。手始めにできるムービングウィンドウ自動回帰の例があります。
Sys.sleep()