3

从 Matplotlib 3.1 开始, mlab.bivariate_normal 已从 matplotlib 的库中删除。我想知道是否有一个内置类可以在其他地方(或 matplotlib)做同样的工作?我搜索了一下,但不能轻易找到。

我意识到可以在这里复制该函数并使用它,但我想知道是否有一个可以调用的内置函数。

4

1 回答 1

1

正如@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_y1.00.0bivariate_normal(X, Y)multivariate_normal([0, 0], [[1, 0], [0, 1]]).pdf(np.dstack((X, Y)))

于 2021-05-18T23:15:11.033 回答