我正在尝试在R-Project中创建一个3D图。我知道之前有这样的问题,但我无法用那里的答案来解决我的问题。
我拥有的是:
Vdot_L = c(0,1,2,3,4,5,6,7,8,9,10)
Qdot_verd = c(2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000)
zeta_ex = 0.4
T_U = 293.15 #K
T_verd = 273.15 #K
T_cond=Vdot_L*2+T_U
epsilon_k = zeta_ex * T_verd/(T_cond - T_verd)
Pfun <- function(a,b) {a/b}
P <- outer(Qdot_verd, epsilon_k, FUN="Pfun")
我想创建的是彩色曲面图,x轴为Vdot_L
,y轴为Qdot_verd
,z轴为P
。我很满意每一个帮助。
答案 0 :(得分:2)
这样的事情?
library(rgl)
zlim <- range(P,na.rm=T)
zlen <- zlim[2] - zlim[1] + 1
color.range <- rev(rainbow(zlen)) # height color lookup table
colors <- color.range[P-zlim[1]+1] # assign colors to heights for each point
persp3d(Vdot_L, Qdot_verd, P, col=colors)
答案 1 :(得分:1)
你有没有调查过Plot3D包?
http://cran.r-project.org/web/packages/plot3D/plot3D.pdf
这里有一个名为surf3d
的方法,看起来它可以做你想要的。导入包后,将值转换为矩阵并写入:
surf3d(Vdot_L, Qdot_verd, P)
还有一个可以调整的颜色参数。
或者,使用rgl,并避免矩阵问题:
rgl.surface(Vdot_L, Qdot_verd, P)
另请查看这些帖子以获取更多信息: R: 3D surface plot from 2D matrix How to create 3D - MATLAB style - surface plots in R