2016-04-16 20 views
0

私は関数の3Dプロットを作成しようとしていますが、メッセージ "persp.defaultのエラー(x = xseq、y = yseq、matrixz、phi = -5、theta = 50、 :。!間違ったZの制限」 が表示され、私は任意の助けをいただければ幸いですなぜ3DプロットR

yseq <- seq(1e-9,1e-7,by=1e-9) 
xseq <- seq(1e-8,1e-4,by=1e-6) 
matrixz <- matrix(data = 0,nrow=length(xseq),ncol=length(yseq)) 

persp(x=xseq,y=yseq, matrixz, phi=-5, theta=50, expand=0.5, col="red4",xlab="[Ca] cytosol",ylab="[InsP3]",zlab="J2(x,y)", ticktype="detailed") 

見当がつかない

+0

range(matrixz)はc(0、0)です。いくつかのデータにゼロだけでなく –

答えて

0

まあを、matrixzだけ0で埋められ、それのrangeは、perspを喜ばれませんエラーメッセージについて説明します:

> range(matrixz) 
[1] 0 0 

あなたはzlimを定義することによってこの問題を解決することができます

yseq <- seq(1e-9, 1e-7, by=1e-9) 
xseq <- seq(1e-8, 1e-4, by=1e-6) 
matrixz <- matrix(data =0, nrow=length(xseq), ncol=length(yseq)) 

persp(xseq, yseq, matrixz, phi=-5, zlim=c(-1e-3, 1e-3), 
     theta=50, expand=0.5, col="red4",xlab="[Ca] cytosol",ylab="[InsP3]",zlab="J2(x,y)", 
     ticktype="detailed") 

やデータを、あなたのマトリックスを充填することによって。ここでは、一様分布からサンプル番号:

matrixz <- matrix(data = runif(length(xseq)*length(yseq)), nrow=length(xseq), ncol=length(yseq)) 

persp(xseq, yseq, matrixz, phi=-5, theta=50, expand=0.5,  
     col="red4",xlab="[Ca] cytosol",ylab="[InsP3]",zlab="J2(x,y)", 
     ticktype="detailed") 

あなたが特定のthetaを気にしたくない場合は、phi、などあなたがrglからpersp3dであなたの3Dプロットを探索することができます:

library(rgl) 
persp3d(xseq, yseq, matrixz)