我目前正在练习R,但是当我尝试用ggplot2运行我的散点图时,我发现了一个问题,只有700kb的数据集。我不知道为什么它花了这么长时间,我的意思是大约5-10秒来运行这个图。我的电脑是i7 7700HQ,内存是16 of
发布于 2020-04-10 21:34:03
这很正常,你不能期望通过在散点图上绘制超过1k或10k的点来获得良好的渲染效果(以及合理的渲染时间)。这就是所谓的“叠加”。您可以做什么:用geom_hex()或stat_density_2d()替换geom_point()
如果你特别需要散点图,我建议你试试rasterly。它将首先以一种智能的方式聚合以生成栅格,然后渲染输出。
尤其是如果要将图表导入到另一个文档中,则需要限制要显示的对象的大小和数量(对于矢量图像很重要)。
发布于 2020-04-10 21:34:03
这真的取决于你使用的绘图库,但看看大小,你似乎绘制了大约100000个点,5秒对我来说并不太长。如果使用plot函数,下面是一些比较,可能会从以下来源获得帮助: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可以显著提高性能。
https://stackoverflow.com/questions/61140805
复制相似问题