首页 > 解决方案 > 在 R 中绘图时使用点

问题描述

根据 R 文档,mclapply() 是 lapply() 的并行版本,但在这个简单的示例中,mclapply() 在尝试与 points() 一起使用时不起作用。有什么解决办法吗?

plot(c(0,3),c(0,1000), type='n')
x<-runif(100,0,1000); y<-runif(100,0,1000)
lapply(x,function(a) {points(1,a,col='green')}) #ok
mclapply(x,function(a) {points(2,a,col='red')}) #ko: does not work

未绘制 x=2 的点

标签: rplotpointsmclapply

解决方案


这是一个先用 记录结果mclapply,然后绘制的示例

library(parallel)

plot(c(0,3),c(0,1000), type='n')
x<-runif(100,0,1000); y<-runif(100,0,1000)
lapply(x,function(a) {points(1,a,col='green')}) #ok
L <- mclapply(x,function(a) {data.frame(x = 2, y = a)})
lapply(L, function(X) {points(y~x, X, col='red')})

在此处输入图像描述


推荐阅读