类似于使用
等代码的3D Plot of normal distribution in R around a (x,y) pointlibrary(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显示结果,但它明确地为原始问题的一部分提供了指导。因此,我将其标记为已解决。
答案 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)
产量: