R:将2D坐标与3D绘图中的线连接,并根据坐标添加正态分布pdf

时间:2016-03-21 21:48:28

标签: r plot 3d rgl

类似于使用

等代码的3D Plot of normal distribution in R around a (x,y) point
library(rgl)
open3d()

x <- seq(0, 10, length=100)
y <- seq(0, 10, length=100)


z = outer(x,y, function(x,y) dnorm(x,2.5,1)*dnorm(y,2.5,1))

persp3d(x, y, z,col = rainbow(100))

我想在(x,y)图上绘制正态分布。然而,与第一个问题不同,我想沿着一些特定的坐标绘制这个正态分布(它们都有z = 0和&#34;位于地面&#34;(x,y))。他们模仿一个人的行走并且有坐标

g=matrix(c(0,0,3,1,4,2,5,3,6,4,5,5,4,6,6,6,8,5,9,6)
  ,nrow=10,ncol=2,byrow= TRUE)

所以我的问题是: (1)如何将这些2D数据添加到3D绘图中并通过一条线连接所有点,以便描绘步行?它应该躺在地上。 (2)如何在&#34; walk&#34;周围绘制正态分布?这应该是3D。

非常感谢

更新:我们的想法是将下一个练习中的概率分配给第二个人的步行,然后计算他们在某个地方遇到的概率。

更新2:我可能不太清楚我想要什么,所以我尽力做到更精确。如g坐标所示,步行只是一条粗略的线。它应该显示在地面上。我感兴趣的真正任务如下:这个人可能没有完全走在线上。然而,在任何点上的概率由其到线的最短距离的正常函数(PDF)给出。所以我想在线周围绘制一个普通的PDF倍数(可能是无限次)。最终的3D情节可能看起来像一些山脉。这与我之前的问题有关,我问过如何多次绘制普通PDF,使其3D图看起来像火山。

Update3:下面的答案没有向Update2显示结果,但它明确地为原始问题的一部分提供了指导。因此,我将其标记为已解决。

1 个答案:

答案 0 :(得分:0)

这个怎么样? (注意,我使彩虹表面透明)。

library(rgl)
open3d()

x <- seq(0, 10, length=100)
y <- seq(0, 10, length=100)

z = outer(x,y, function(x,y) dnorm(x,2.5,1)*dnorm(y,2.5,1))

persp3d(x, y, z,col = rainbow(100),alpha=0.5)

# now draw the line 
#    note:
#    -  the "add=T" parameter that appends it to the previous 3d-plot

g=matrix(c(0,0,3,1,4,2,5,3,6,4,5,5,4,6,6,6,8,5,9,6)
         ,nrow=10,ncol=2,byrow= TRUE)

lines3d(g[,1],g[,2],0,color="purple",add=T)

产量:

enter image description here