2014-06-16 110 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