如何在Matplotlib动画中删除线条?

时间:2019-05-05 15:47:54

标签: python python-3.x matplotlib graph

我想删除动画中的图形, 当文本行超过19行时。.

我的代码已引用this video 如果文本行超过19行,则会删除该图形。

我曾经使用过remove()del,但这是行不通的,因为在此代码中使用remove()del不会自动删除图形。

当文本行超过19行时,重新执行matplotlib时,图形将被删除。

我也尝试使用plt.claplt.clf,但这件事.. 也要删除标签。.我不想删除标签和标题

我该如何解决?

这是我的代码:

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
plt.xlim(-190,190)
plt.ylim(-190,190)

def animate(i):
    graph_data = open('data.txt', 'r').read()    
    lines = graph_data.split('\n') 
    xs = []
    ys = []

    for line in lines:
        if len(line) > 1:
            x, y = line.split(',') 
            xs.append(x)
            ys.append(y)

    ax1.plot(xs, ys, 'r')

    if (graph_data.count(' \n')+1) >=19: 
       ax1.lines[0].remove() 
       ##del ax1.lines[0] 
       ##plt.cla()

ani = animation.FuncAnimation(fig, animate,interval=1, frames=2, repeat=True)
plt.show()

1 个答案:

答案 0 :(得分:0)

尝试为行计数函数的值分配一个变量,如下所示:

return_value = graph_data.count(' \n')+1

打印此值,并在添加行时查看计数功能是否正常工作 希望这可以帮助。