使用lapply生成3D绘图

时间:2017-05-30 14:55:05

标签: r plot

我想根据列表中的数据在R中生成大约50个3-D图。我会将这些图表提供给grid.arrange,以便将它们全部绘制在一页上。

我的问题在于生成图表。在下面的例子中,我展示了我当前的方法,为了保持简单,我只生成两个图:

library(rgl)
data<-list()

data[[1]] <- list("data" =data.frame("x" = 1*(1:10), "y" = 2*(1:10),"z" = 3*(1:10)),
                  "dataO"=data.frame("x" = 1,        "y" = 2,       "z" = 3))

data[[2]] <- list("data" =data.frame("x" = 4*(1:10), "y" = 5*(1:10),"z" = 6*(1:10)),
                  "dataO"=data.frame("x" = 4,        "y" = 5,       "z" = 6))

plot_func = function (data) {
  plot3d(data$data,        type='s',    size=0.5)
  points3d(data$dataO,    color='red', size=10)
  rgl.viewpoint( theta = -160, phi = 15,     fov=60)
  legend3d("topright",
           legend = c('Data', 'Outliers'),
           pch = 16,
           col = c("black","red"),
           cex = 1,
           inset=c(0.02))
}

tmp<-lapply(data[c(1,2)], plot_func)

代码问题:该列表确实包含两个所需的图表,但问题是两个条目都包含基于data[[2]]的第二个图。

有没有办法解决这个问题?

0 个答案:

没有答案