2016-08-05 1 views
1

다음 코드를 사용하여 RSM 패키지의 persp 기능을 사용하여 R의 x-y 평면에 윤곽 투영을 사용하여 3D 응답 표면을 그립니다.rsm에서 rsm을 사용하여 persp 다음에 선 그리기

x <- seq(-3,3,by=0.25) 
y <- seq(-3,3,by=0.25) 
d <- expand.grid(x=x,y=y) 
z <- c(data=NA,1089) 
b0 = 5.628; b1 = 0; b2 = 0; b3 = -.1 ; b4 =.1; b5 = -.1 
k=1 
for (i in 1:25) { 
for (j in 1:25) { 
z[k]=b0+b1*x[i]+b2*y[j]+b3*x[i]*x[i]+b4*x[i]*y[j]+ b5*y[j]*y[j] 
k=k+1 
} } 
library(rsm) 
data.lm <- lm(z~poly(x,y,degree=2),data=d) 
persp(data.lm,x~y, zlim=c(0,max(z)),contour=list(z="bottom",col="colors"),theta=-55,phi=25) 

enter image description here 이 도면을 그린 후, 방법이 있다는 것을 I 수 :

(1) persp를의 X-Y 평면 상에 예컨대, Y = 5 배 + 8 추가적인 라인을 그릴?

(2) x-y 평면에 z의 산점도를 투영 하시겠습니까?

답변

0

라인이 trans3d에 추가 할 수 있습니다 :

res1 <- persp(data.lm,x~y, zlim=c(0,max(z)),contour=list(z="bottom",col="colors"),theta=-55,phi=25)  
xy <- matrix(c((-3-8)/5,-3,(3-8)/5,3),ncol=2,byrow = T) 
lines(trans3d(xy[,2], xy[,1], 0, pmat = res1$`y ~ x`$transf), col = 3) 

enter image description here