删除matplotlib中图形的某个部分

时间:2012-10-14 13:44:46

标签: python matplotlib

我正在尝试执行以下操作:绘制两个不同的数据集,询问用户哪个更好,从图中删除坏的数据集,并保存好的情节。但是,我找不到用matplotlib做的方法。我发现了cla()命令,但即便如此,它仍然会删除整个数字......有人可以帮我一把吗?

以下是我的表现。

fig=plt.figure()
ax=fig.add_subplot(111)
plot(something)
ax2=fig.add_subplot(111)
plot(other thing)
cla()

谢谢!

1 个答案:

答案 0 :(得分:3)

这绘制了两条曲线。单击曲线会删除它。

import matplotlib.pyplot as plt
import numpy as np
sin = np.sin
cos = np.cos
pi = np.pi

def delete(event):
    artist = event.artist
    artist.remove()
    event.canvas.draw()

fig = plt.figure()
ax = fig.add_subplot(111)

x = np.linspace(0, 2*pi, 50)
y = 2*sin(x)
z = 2*cos(x)
line1, = ax.plot(x,y)
line2, = ax.plot(x,z)
for artist in [line1, line2]:
    artist.set_picker(5)
fig.canvas.mpl_connect('pick_event', delete)

plt.show()