如何快速绘制数百万条线

时间:2019-01-29 14:47:55

标签: r ggplot2

x轴可以视为1:n。

y个轴的值分布在有限的[-1,1]

我想画线段来连接上面矢量所描述的所有点

geom_line(aes(x, y))

除性能外,其他所有功能均正常。渲染最终图像需要几分钟。样例变得扑朔迷离。

Sample plot

有什么方法可以改善性能?

谢谢您的评论。我确实尝试过重采样。但是,对我而言,进行真正的“智能”重采样非常困难。由于我们非常关心“局部平均值”,在许多统计案例中通常将其视为“噪声”。请允许我通过图像显示问题,尽管不建议这样做。

enter image description here

上面的图像是原始图像,下面的图像是重新采样的图像。我将原始图像中带有箭头的“重要”信息损失推向市场。

1 个答案:

答案 0 :(得分:0)

非常感谢您发表这么多评论。最终,我认为我可以通过将数百个值聚合到一个行范围内来解决此问题。

为了更具描述性,假设有1M点。

  1. 将它们分为1万个组,每组100点。
  2. 获取每个组的最小值和最大值。
  3. 对于每个组,从最小到最大绘制一条垂直线。

通过这种聚合,我可以将数据减少1 / group.size

仍然让我感到惊讶的是,画一条线可能要花几十微秒的R。一开始我就在考虑是否有诸如“硬件加速”之类的解决方案