大規模なデータセット(〜10,000個の曲線にグループ化された〜10,000個のデータポイント)に対して探索的分析を行っています。RStudioのパッケージを使用してmanipulate
、x 軸の制限を変更しています。問題は、プロットが新しいパラメーターで再描画されるのに 5 秒以上かかることです。これを少しだけスピードアップする方法を望んでいます。lattice
パッケージを使用しています。これは簡単な例です...
set.seed(100)
x = rep(1:5,20)
y = rnorm(100)
groups = gl(20,5)
p = xyplot(y~x,groups=groups,type="l",
auto.key=list(space="right",lines=TRUE,
points=TRUE,rectangles=TRUE) )
Rprof(interval=0.001)
print(p)
Rprof(NULL)
head( summaryRprof()$by.total )
total.time total.pct self.time self.pct
"print" 0.239 100.00 0.000 0.00
"printFunction" 0.239 100.00 0.000 0.00
"print.trellis" 0.239 100.00 0.000 0.00
"do.call" 0.126 52.72 0.001 0.42
"draw.key" 0.098 41.00 0.001 0.42
"evaluate.legend" 0.098 41.00 0.000 0.00
draw.key
実行時間の 41% を占めることに注意してください(そうです、この余分な凡例は、私の主張を強調するために選択されました)。私の目的のために、私の伝説は決して変わりませんが、プロットは変わります. 1 つのプロットから凡例、キー、または何かを保存して、何度も再利用する方法はありますか (おそらくGrob
からオブジェクトを再利用しますlattice::draw.key
)。のコードの一部を調べlattice:::plot.trellis
たところ、これを行う方法があるはずです。ただし、そのためにはかなりの量の新しいコードが必要になるようです。簡単な解決策はありますか?または、速度で知られている他のプロット関数またはパッケージはありますか? もちろん、滑らかな曲線をデータに合わせて「圧縮/ダウンサンプリング」することはできますが、これはしたくありません。