python画二维正态高斯分布图
时间: 2024-09-23 11:09:27 浏览: 140
在Python中,可以使用matplotlib库以及numpy库来绘制二维正态高斯分布图,通常也称为概率密度函数(PDF)。这里是一个基本步骤:
```python
import matplotlib.pyplot as plt
import numpy as np
# 设置随机种子以便于复现结果
np.random.seed(0)
# 定义高斯分布的均值和标准差
mean = [0, 0]
cov = [[1, 0], [0, 1]] # 对角线表示各个维度独立,如果是完全相关则非对角线元素相同
# 生成数据点
x, y = np.meshgrid(np.linspace(-3, 3, 50), np.linspace(-3, 3, 50))
pos = np.empty(x.shape + (2,))
pos[:, :, 0] = x
pos[:, :, 1] = y
rv = np.random.multivariate_normal(mean, cov, size=1000)
density = rv.pdf(pos)
# 绘制图像
plt.contourf(x, y, density, cmap='Blues', alpha=0.6)
plt.colorbar(label='Probability Density')
plt.title('Two-dimensional Gaussian Distribution')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
相关问题
python画二维高斯分布
可以使用Python中的matplotlib库来画二维高斯分布。以下是一个简单的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成二维高斯分布的数据
mean = [0, 0]
cov = [[1, 0], [0, 1]]
x, y = np.random.multivariate_normal(mean, cov, 5000).T
# 绘制散点图
plt.scatter(x, y, s=5)
plt.axis('equal')
plt.show()
```
这段代码会生成一个均值为(0,0),协方差矩阵为单位矩阵的二维高斯分布,并将其绘制成散点图。
二维正态分布画图 python
二维正态分布也被称为高斯分布,在Python中,你可以使用matplotlib库中的`contourf()`函数或者 seaborn 库中的 `kdeplot()` 函数来绘制。以下是基本步骤:
1. **安装所需库**:
```shell
pip install matplotlib seaborn numpy
```
2. **导入库并生成数据**:
```python
import numpy as np
from scipy.stats import multivariate_normal
import matplotlib.pyplot as plt
import seaborn as sns
mean = [0, 0]
cov = [[1, 0], [0, 1]] # 单位矩阵表示标准正态分布
x, y = np.mgrid[-3:3:.01, -3:3:.01] # 创建网格坐标
pos = np.empty(x.shape + (2,))
pos[:, :, 0] = x
pos[:, :, 1] = y
density = multivariate_normal.pdf(pos, mean, cov) # 计算密度值
```
3. **绘制二维正态分布图**:
```python
fig, ax = plt.subplots()
ax.contourf(x, y, density, levels=20, cmap='coolwarm')
plt.colorbar() # 添加颜色条
plt.title('二维正态分布')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()
# 或者使用seaborn
sns.kdeplot(x=x, y=y, data={'x': density}, shade=True)
sns.despine()
```
4. **相关问题**:
阅读全文