编程语言
首页 > 编程语言> > python-Matplotlib:如何从轴上删除一个轮廓元素与其他绘制的元素?

python-Matplotlib:如何从轴上删除一个轮廓元素与其他绘制的元素?

作者:互联网

我正在尝试为高斯混合(高斯混合模型)的均值和协方差的估计动画,我需要在每次迭代时更新均值和协方差的图.

这是非常简单的重绘方法,因为我使用的行具有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