运行 R Studio 中的散点图花了很长时间
running scatter plot in R Studio took so long
我目前正在练习 R,但当我尝试使用 ggplot2 运行 我的散点图时发现了一个问题,只有 700kb 的数据集。我不知道为什么花了这么长时间,我的意思是 运行 情节只用了大约 5-10 秒。我的电脑是 i7 7700HQ,内存为 16gb
这很正常,您不能期望通过在散点图上绘制超过 1k 或 10k 的点来获得良好的渲染(和合理的渲染时间)。这叫做"overplotting"。您可以做什么:将 geom_point()
替换为 geom_hex()
或 stat_density_2d()
如果您特别需要散点图,我建议尝试 rasterly。它将首先以智能方式聚合以生成栅格,然后渲染输出。
特别是如果您想将图表导入另一个文档,您需要限制要显示的对象的大小和数量(对于矢量图像很重要)。
这实际上取决于您使用的是什么绘图库,但从大小来看,您似乎正在绘制大约 100000 个点,这 5 秒对我来说并不算长。如果在这里使用 plot 函数是一些比较,这可能有助于此来源:
Speed up plot() function for large dataset and 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 性能可以大大提高。
我目前正在练习 R,但当我尝试使用 ggplot2 运行 我的散点图时发现了一个问题,只有 700kb 的数据集。我不知道为什么花了这么长时间,我的意思是 运行 情节只用了大约 5-10 秒。我的电脑是 i7 7700HQ,内存为 16gb
这很正常,您不能期望通过在散点图上绘制超过 1k 或 10k 的点来获得良好的渲染(和合理的渲染时间)。这叫做"overplotting"。您可以做什么:将 geom_point()
替换为 geom_hex()
或 stat_density_2d()
如果您特别需要散点图,我建议尝试 rasterly。它将首先以智能方式聚合以生成栅格,然后渲染输出。
特别是如果您想将图表导入另一个文档,您需要限制要显示的对象的大小和数量(对于矢量图像很重要)。
这实际上取决于您使用的是什么绘图库,但从大小来看,您似乎正在绘制大约 100000 个点,这 5 秒对我来说并不算长。如果在这里使用 plot 函数是一些比较,这可能有助于此来源: Speed up plot() function for large dataset and 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 性能可以大大提高。