我目前正在练习R,但是当我尝试使用仅700kb数据集的ggplot2运行散点图时,发现了一个问题。我不知道为什么要花这么长时间,我的意思是只需要5到10秒钟就能完成剧情。我的电脑是i7 7700HQ和16GB的内存
答案 0 :(得分:0)
这很正常,您无法通过在散点图中绘制超过1k或10k的点来期望获得良好的渲染(以及合理的渲染时间)。这称为“过度绘图”。您可以做什么:将geom_point()
替换为geom_hex()
或stat_density_2d()
如果您特别需要散点图,建议您尝试rasterly。它将首先以一种智能的方式聚合以生成栅格,然后渲染输出。
特别是如果要将图表导入另一个文档中,则需要限制要显示的对象的大小和数量(对于矢量图像来说很重要)。
答案 1 :(得分:0)
这实际上取决于您使用的是什么绘图库,但是查看大小,似乎您正在绘制约100000点,这对我来说5秒钟似乎不太长。如果使用绘图功能,请从以下来源进行一些比较: Speed up plot() function for large dataset和https://www.r-bloggers.com/accelerating-ggplot2-use-a-canvas-to-speed-up-rendering-plots/。
我已经在笔记本电脑上运行了以下代码,这就是我获得的781.3 Kb的结果:
x <- seq(1, 1000, length.out = 100000)
system.time(plot(x))
user system elapsed
0.28 3.00 3.42
system.time(plot(x,pch=20))
user system elapsed
0.45 5.81 6.31
system.time(plot(x,pch='.'))
user system elapsed
0.13 0.92 1.09
您可以看到使用pch可以显着提高性能。