我正在运行一些模拟并且每个时间步都有一个分布p(a1)。 我正在寻找的是一种绘制每个时间步长的p(a1)分布(作为连续线)的方法。
基本上是这样但没有连接的边缘:
R中的3D绘图总是让我失望,所以如果有人知道如何实现这一目标,请随时提出建议。您可以使用以下代码来试用。
a1 = rep(0, 10)
t = 1:20
pa1 = matrix(ncol=length(a1), nrow = length(t))
for(i in t){pa1[i,]=a1+i}
答案 0 :(得分:2)
您可以使用rgl
包。
在下面的代码中,您为每个经验分布创建密度,获得其各自的x和y坐标,并添加第三个维度,在每个分布中必须是相同的值,但在它们之间不同(顺序添加0.1为例子)
如果您运行代码,则可以移动图表以获取您感兴趣的视角
library(rgl)
# example data
x <- replicate(5, rnorm(100))
D <- apply(x, 2, density)
coords <- lapply(1:5, function(i) cbind(x = D[[i]]$x,z = rep(i/10, 512),y =
D[[i]]$y))
plot3d(coords[[1]], ylim = c(0, 0.6), type = "l", col = "blue")
sapply(2:5, function(i) plot3d(coords[[i]],add = TRUE,type = "l", col =
"blue"))
grid3d(c("x", "y+", "z"))