从 Matplotlib 3.1 开始,mlab.bivariate_normal 已从 matplotlib 的库中删除。我想知道是否有一个内置类在其他地方(或在 matplotlib 中)做同样的工作?我搜索了一下,但无法轻易找到它。
我意识到可以只复制函数 here并使用它,但我想知道是否有一个可以调用的内置函数。
最佳答案
正如@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
之外的所有参数都有默认值,因此您可能需要添加一些额外的值(value)。 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)))
.
关于python - matplotlib.mlab.bivariate_normal 的等效函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63623170/