从 Matplotlib 3.1 开始, mlab.bivariate_normal 已从 matplotlib 的库中删除。我想知道是否有一个内置类可以在其他地方(或 matplotlib)做同样的工作?我搜索了一下,但不能轻易找到。
我意识到可以在这里复制该函数并使用它,但我想知道是否有一个可以调用的内置函数。
从 Matplotlib 3.1 开始, mlab.bivariate_normal 已从 matplotlib 的库中删除。我想知道是否有一个内置类可以在其他地方(或 matplotlib)做同样的工作?我搜索了一下,但不能轻易找到。
我意识到可以在这里复制该函数并使用它,但我想知道是否有一个可以调用的内置函数。
正如@tmdavison 所建议的那样,scipy.stats.multivariate_normal()
可以用来替换matplotlib.mlab.bivariate_normal()
.
来电:
Z = matplotlib.mlab.bivariate_normal(X, Y, sig_x, sig_y, mu_x, mu_y, sig_xy)
变成:
rv = scipy.stats.multivariate_normal([mu_x, mu_y], [[sig_x, sig_xy], [sig_xy, sig_y]])
Z = rv.pdf(np.dstack((X, Y)))
该matplotlib.mlab.bivariate_normal()
函数对所有参数都有默认值,除了X
因此Y
您可能需要添加一些额外的值。和值默认为sig_x
,所有其他参数默认为。因此,如果您要替换呼叫,它将变为.sig_y
1.0
0.0
bivariate_normal(X, Y)
multivariate_normal([0, 0], [[1, 0], [0, 1]]).pdf(np.dstack((X, Y)))