【问题标题】:R : plot multiple chronicles separated on 3d plotR:在 3d 绘图上绘制多个编年史
【发布时间】:2018-07-02 21:55:15
【问题描述】:

我正在运行一些模拟,并且每个时间步都有一个分布 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}

【问题讨论】:

    标签: r plot 3d


    【解决方案1】:

    您可以为此使用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"))
    

    【讨论】:

    • 正是我想要的。完美的!非常感谢。
    猜你喜欢
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    相关资源
    最近更新 更多