R语言绘制正态分布概率密度图
时间: 2025-06-20 17:34:05 浏览: 18
### 使用R语言绘制正态分布概率密度图
以下是使用R语言绘制一维正态分布概率密度函数的示例代码:
```r
# 设置参数
mean <- 0 # 均值
sd <- 1 # 标准差
# 生成一系列x值
x <- seq(-3, 3, length.out = 100)
# 计算正态分布的概率密度函数值
y <- dnorm(x, mean = mean, sd = sd)
# 绘制正态分布曲线
plot(x, y, type = "l", lwd = 2, col = "blue",
xlab = "x", ylab = "概率密度",
main = "正态分布概率密度函数")
abline(v = mean, lty = 2, col = "red") # 添加均值线
```
上述代码实现了基于指定均值和标准差的一维正态分布概率密度函数的可视化[^2]。
对于多维正态分布的情况,可以利用`persp()`函数或其他高级绘图工具(如`ggplot2`或`rgl`包)来创建三维密度曲面图。下面是一个简单的二维正态分布密度曲面图的例子:
```r
library(mvtnorm) # 加载mvtnorm包用于处理多元正态分布
# 定义均值向量和协方差矩阵
mu <- c(0, 0)
sigma <- matrix(c(1, 0.5, 0.5, 1), nrow = 2)
# 创建网格数据
x <- seq(-3, 3, length.out = 50)
y <- seq(-3, 3, length.out = 50)
z <- outer(x, y, function(a, b) {
dmvnorm(cbind(a, b), mean = mu, sigma = sigma)
})
# 绘制三维密度曲面图
persp(x, y, z, theta = 30, phi = 30,
expand = 0.5, col = "lightblue",
xlab = "X轴", ylab = "Y轴", zlab = "概率密度",
main = "二元正态分布密度曲面图")
```
这段代码展示了如何通过`dmvnorm()`函数计算二维正态分布的概率密度,并借助`persp()`函数完成三维曲面图的绘制[^1]。
#### 注意事项
- `dnorm()`函数适用于一维正态分布的概率密度计算。
- 对于更高维度的数据,推荐使用`mvtnorm`包中的`dmvnorm()`函数。
- 可视化效果可以通过调整颜色、角度和其他图形参数进一步优化。
---
阅读全文
相关推荐



















