我正在尝试为高斯混合(高斯混合模型)的均值和协方差的估计动画,我需要在每次迭代时更新均值和协方差的图.
这是非常简单的重绘方法,因为我使用的行具有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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。