用新版matplotilb实现下列语句。Z1=mlab.bivariate_normal(X,Y,1.0,1.0,0.0,0.0) Z2=mlab.bivariate_normal(X,Y,1.5,0.5,1,1)
时间: 2023-07-31 19:03:50 浏览: 272
以下是使用新版matplotlib实现该语句的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
mu_x, sigma_x = 0.0, 1.0
mu_y, sigma_y = 0.0, 1.0
rho = 0.0
x = y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-((X - mu_x)**2 / (2 * sigma_x**2) + (Y - mu_y)**2 / (2 * sigma_y**2) - 2 * rho * (X - mu_x) * (Y - mu_y) / (sigma_x * sigma_y))) / (2 * np.pi * sigma_x * sigma_y * np.sqrt(1 - rho**2))
mu_x, sigma_x = 1.0, 1.5
mu_y, sigma_y = 1.0, 0.5
rho = 1.0
Z2 = np.exp(-((X - mu_x)**2 / (2 * sigma_x**2) + (Y - mu_y)**2 / (2 * sigma_y**2) - 2 * rho * (X - mu_x) * (Y - mu_y) / (sigma_x * sigma_y))) / (2 * np.pi * sigma_x * sigma_y * np.sqrt(1 - rho**2))
plt.contour(X, Y, Z1)
plt.contour(X, Y, Z2)
plt.show()
```
其中,使用 `np.meshgrid()` 函数生成二维网格坐标系,使用公式计算出二维正态分布的概率密度函数,然后使用 `plt.contour()` 函数绘制等高线图。
阅读全文