我正在对大型数据集(约 10,000 个数据点分为约 10 条曲线)进行一些探索性分析。我正在使用manipulate
RStudio 中的包来更改 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% 的运行时间(是的,选择这个多余的传说是为了强调我的观点)。为了我的目的,我的传奇永远不会改变,但情节会。那么有没有办法从一个情节中保存图例、密钥或任何内容并一遍又一遍地重用它(也许重用Grob
来自 的对象lattice::draw.key
)?我已经研究了一些代码,lattice:::plot.trellis
看起来应该有办法做到这一点。但是,这样做似乎需要大量的新代码。有简单的解决方案吗?或者,是否有任何其他以速度着称的绘图功能或软件包?我当然可以将平滑曲线拟合到我的数据中以“压缩/下采样”它,但我宁愿不这样做。