2014-06-16 73 views
1

我想绘制如下。我试图搜索几个软件包并绘制函数,但我找不到解决方案。我怎样才能使堆积2d阴谋的3D图?

我的数据有四列。

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

我想看相对于每个F值(1,2,3,...)和MR之间的关系。所以,我希望沿着x轴的F沿y轴的R,以及如下图所示的M作为z轴。

谢谢。

enter image description here

+2

您从搜索试过开什么?你的用例或样本数据集是什么?提供更多信息... – vrajs5

+0

我编辑并解释了更多。谢谢! –

+1

这对于样本数据集的数据量似乎有点弱。这不会形成一个非常有趣的图表。我在_Lattice_文本中看到了一些类似的图像,我不认为这会在pkg -'rgl' –

回答

4

你可以做这样的事情与latticecloud情节,使用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像预期的那样。

正如其他人在评论中提到的,这种类型的情节可能看起来很时髦,但可能会模糊数据。

enter image description here