2014-12-05 57 views
11

有谁知道的方式:1)完成在grid3d呼叫丢失的网格线为y,和2)绘制水平网格线关闭由grid3d呼吁x构建网格的顶部和y?我已经玩过以内的各种组合,但无济于事,我想知道这是否是rgl怪癖或我的错误规定。此外,我想将垂直轴编号扩展到封闭网格结束的地方。完全丢失线条使用RGL grid3d

library(rgl) 
cpts <- seq(0, 2, length = 40) 
spts <- seq(0, 1, length = 20) 
grid <- expand.grid(s=spts, c=cpts) 
UFn <- function(s,c){c^(0.5) - exp(s) + 1} 
U <- UFn(grid$s, grid$c) 
open3d() 
rgl.surface(x = spts, y = matrix(U,nrow = 40, ncol = 20), z = cpts, 
      coords = c(1,3,2), specular = "black") 
axes3d("x", at = pretty(spts, n = 2), color = "black") 
axes3d("y", at = pretty(cpts, n = 5), color = "black") 
axes3d("z--", color = "black") 
grid3d("x") 
grid3d("y", at = pretty(spts, n = 2)) 
title3d(xlab ='s', ylab = 'c', zlab = 'U', color = "black") 
rgl.snapshot("3d.png") 

enter image description here

回答

3

我会说这是一个错误。即使使用grid3d("y",n=2),也不会得到任何z线。您可以使用列表规范at,设置列表的x元素来解决该问题,例如:

grid3d("y", at = list(x=pretty(spts, n = 2)))