【问题标题】:3D Plotting in RR中的3D绘图
【发布时间】:2016-04-16 15:59:27
【问题描述】:

我正在尝试创建函数的 3D 图,但消息 “ persp.default 中的错误(x = xseq,y = yseq,matrixz,phi = -5,theta = 50,:z 限制不正确” 出现。我不知道为什么

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")

任何帮助将不胜感激!

【问题讨论】:

  • 范围(matrixz) 是 c(0, 0)。给它一些数据,而不仅仅是零

标签: r plot 3d


【解决方案1】:

好吧,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)

【讨论】:

    猜你喜欢
    • 2019-01-31
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    相关资源
    最近更新 更多