r - 如何快速绘制数百万条线
问题描述
x 轴可以被视为 1:n。
y 轴值分布在有限范围内 [-1, 1]
我想绘制连接以上向量描述的所有点的线段
geom_line(aes(x, y))
除了性能,一切都很好。渲染最终图像需要几分钟。示例情节大打出手。
有什么方法可以提高性能吗?
谢谢您的意见。我确实尝试过重新采样。但对我来说,进行真正的“智能”重采样非常困难。由于我们非常关心在许多统计案例中通常被视为“噪声”的“局部平均值之外”。请允许我通过图像显示问题,尽管不鼓励这样做。
上图是原图,下图是重新采样的。我在原始图像中用箭头营销“重要”信息丢失。
解决方案
非常感谢您这么多评论。最终我认为我可以通过将数百个值聚合到一个行范围中来解决这个问题。
为了更具描述性,假设有 1M 点。
- 将它们分成 10K 组,每组 100 分。
- 获取每组的最小值和最大值。
- 对于每个组,从最小值到最大值画一条垂直线。
通过进行这样的聚合,我可以将数据减少 1/group.size
尽管如此,在 R 中绘制一条线可能需要几十微秒,这让我有点惊讶。一开始我在想是否有像“硬件加速”这样的解决方案
推荐阅读
- javascript - 这是使用 JS 中相同元素的 eventListener 执行单击事件的正确纯代码吗?
- javascript - 我应该如何将滚轮或滚动事件从一个元素转移到另一个元素?
- sql - SQL查询以获取子计数并将其求和
- firebase - Firebase - 创建一个临时用户,直到用户注册
- python - 根据列值将大型 csv 拆分为较小的 csv 文件,最终在较小的文件中出现空白
- c# - 正则表达式仅选择具有一致标题的字符串中的最后一个单词
- javascript - 基于 React 的 Chrome 扩展 - 未经检查的 runtime.lastError:无法建立连接。接收端不存在
- c - 构建找不到 Stdio.h 但我可以...?
- google-play-games - 为什么我的游戏未发布版本无法登录 Google Play 游戏?
- wordpress - 如何保存我的 Wordpress 网站的当前外观,以便恢复到旧版本?