如何用较少的软件包绘制双变量正态分布的曲面和轮廓图

问题描述 投票:0回答:1

我将绘制一个双变量正态分布的三维表面及其轮廓(可以是任何双变量正态分布)。我想使用 perspcontour 在我的画中,我在互联网上搜索,但我发现许多方法来做。他们中的大多数人都使用了一些软件包,但我想用一种使用较少的软件包甚至不安装任何软件包的方式来实现。但我想用一种使用较少的软件包甚至不安装任何软件包的方式来做这件事(然而,我不知道这是否可能)。请你用一个双变量正态分布的例子告诉我你自己的方法好吗?[更少的包,更好的解决方案]。确实我想看看用最简单的方法画出双变量正态分布的曲面和轮廓。

r 3d contour surface
1个回答
1
投票

你可以在R中做任何你喜欢的事情,而不需要使用软件包,只要你准备好写自己的代码来做。只需几行R代码就可以实现二维曲面的可视化,使用的是 perspcontour生成 表面(即创建一个二维密度图,并非易事。

下面是如何只用下面的方法生成一个2d双变量正态分布曲面。mnormt 包(按照评论中的要求)。在这个例子中,我做了一个虚拟方差-协方差矩阵。

library(mnormt)

x     <- seq(-5, 5, 0.25) 
y     <- seq(-5, 5, 0.25)
mu    <- c(0, 0)
sigma <- matrix(c(2, -1, -1, 2), nrow = 2)
f     <- function(x, y) dmnorm(cbind(x, y), mu, sigma)
z     <- outer(x, y, f)

contour(x, y, z)


persp(x, y, z, theta = -30, phi = 25, 
      shade = 0.75, col = "gold", expand = 0.5, r = 2, 
      ltheta = 25, ticktype = "detailed")

创建于2020-06-17,由 重读包 (v0.3.0)

© www.soinside.com 2019 - 2024. All rights reserved.