我正在尝试为高斯混合(高斯混合模型)的均值和协方差的估计动画,我需要在每次迭代时更新均值和协方差的图.
这是非常简单的重绘方法,因为我使用的行具有set_data方法,每次更新都可以调用该方法.不幸的是,更新协方差是另一回事,因为轮廓元素表示为QuadContourSet对象,并且没有set_data方法.
这是一个玩具示例:
import numpy as np
from matplotlib import mlab
# Toy data points (these are constant)
plt.plot(np.arange(-3,3,0.1), np.arange(-3,3,0.1))
x = np.arange(-5.0, 5.0, 0.1)
y = np.arange(-5.0, 5.0, 0.1)
X, Y = np.meshgrid(x, y)
# First toy iteration
Z1 = mlab.bivariate_normal(X, Y,
1, 1,
0, 0)
covariance1 = plt.contour(X, Y, Z1)
# Second toy iteration
Z2 = mlab.bivariate_normal(X, Y,
1, 1,
0, 3)
covariance2 = plt.contour(X, Y, Z2)
正如在实际问题中一样,我绘制均值,方差和数据点,所以我不想清除整个轴.
问题是如何在不删除其他元素的情况下删除第一个轮廓协方差1?
解决方法:
for coll in covariance1.collections:
coll.remove()
然后更新.
标签:contour,matplotlib,python
来源: https://codeday.me/bug/20191121/2048149.html