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

时间:2014-12-07 16:57:33

标签: python matplotlib contour

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

这是非常简单的重绘方法,因为我使用的行具有set_data方法,我可以在每次更新时调用。不幸的是,更新协方差是另一个故事,因为contour元素表示为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)

toy example

在实际问题中,我绘制平均值,方差和数据点,我不想清除整个轴。

问题是如何在不删除其他元素的情况下删除第一个轮廓covariance1

1 个答案:

答案 0 :(得分:3)

for coll in covariance1.collections:
    coll.remove()

然后更新。