我怎样才能使与堆叠2D图3D图?(How can I make 3d plot with stack

2019-10-20 06:55发布

我想下面绘制。 我试图寻找几个包和情节的功能,但我无法找到一个解决方案。

我的数据有四列。

ID  F  R  M
 1  2  3  4
 2  4  6  7
...

我想看之间的关系MR相对于每个F值(1,2,3,...)。 所以,我想F沿x轴, R沿y轴,和M为z轴作为在下面的曲线图。

谢谢。

Answer 1:

你可以做这样的事情与lattice cloud情节,使用panel.3dpolygonlatticeExtra

library(latticeExtra)

# generating random data
d <- data.frame(x=rep(1:40, 7), y=rep(1:7, each=40), 
                z=c(sapply(1:7, function(x) runif(40, 10*x, 10*x+20))))

# define the panel function
f <- function(x, y, z, groups, subscripts, ...) {
  colorz <- c('#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', 
              '#fdb462', '#b3de69')
  sapply(sort(unique(groups), decreasing=TRUE), function(i) {
    zz <- z[subscripts][groups==i]
    yy <- y[subscripts][groups==i]
    xx <- x[subscripts][groups==i]    
    panel.3dpolygon(c(xx, rev(xx)), c(yy, yy), 
                    c(zz, rep(-0.5, length(zz))), 
                    col=colorz[i], ...)
  })

}

# plot
cloud(z~x+y, d, groups=y, panel.3d.cloud=f, scales=list(arrows=FALSE))

我敢肯定,我并不需要循环groups在面板功能,但我总是忘了正确的咒语subscriptsgroups按预期工作。

正如其他评论中所提到的,这种类型的图看起来时髦,但可以掩盖的数据。



文章来源: How can I make 3d plot with stacked 2d plot?
标签: r plot 3d