我正在尝试从三个变量绘制3D平面。我已经读过很多关于该主题的问题,但是找不到我想要的东西。
我有两组变量:
prob <- seq(0,1,by=0.01)
n <- seq(999,9999, by = 1000)
n <- c(9,99,n)
combis <- expand.grid(prob,n)
然后我将其用于产生结果:
res <- apply(combis,1,calc,pos=pos)
其中res的值可以在0到2/3之间。
因此,我正在尝试绘制3d图,其中n,prob为x,z和y为res。但是,我发现的大多数程序包都需要矩阵等,因此无法正常工作。
任何帮助将不胜感激,如果找不到答案,对不起。
答案 0 :(得分:1)
假设res
只是一个向量,您可以将数据合并并将其整形为宽格式的矩阵,然后使用类似lattice
的软件包进行绘制
prob <- seq(0,1,by=0.01)
n <- seq(999,9999, by = 1000)
n <- c(9,99,n)
combis <- expand.grid(prob,n)
res <- runif(n=nrow(combis), 0, 0.67) #generate sample data for res
dat <- cbind(combis, res)
library(reshape2)
datm <- acast(data = dat, Var1~Var2, value.var = "res") #cast it into wide format
library(lattice)
library(latticeExtra)
cloud(datm, panel.3d.cloud = panel.3dbars, xlab="n", ylab="res", zlab="prob")