绘制图形,清除其轴,然后绘制新图形

时间:2015-06-06 22:02:05

标签: python python-3.x matplotlib

我尝试执行以下操作:创建一个图形,在其上绘制图形,然后在3秒内清除其轴。当发生这种情况时,应在同一图上绘制新图表,并在屏幕上更新。

类似的东西:

import matplotlib.pyplot as plt
import time

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3],[1,2,3])
plt.show()
time.sleep(3)
plt.ion()
plt.cla()
ax.plot([10,20,30],[10,20,30])
fig.canvas.draw()

但它不起作用。这个逻辑有什么问题?

1 个答案:

答案 0 :(得分:1)

如果要为图形设置动画,可以使用 matplotlib.animation 库。 以下是您的代码的样子:

import matplotlib.pyplot as plt
import time
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(111)
line, = ax.plot([],[])
ax.set_xlim(3)
ax.set_ylim(3)
line.set_data([1,2,3],[1,2,3])

def init():
            """ Initializes the plots to have zero values."""
            line.set_data([],[])
            return line,

def animate(n, *args, **kwargs):
    if(n%2==0):
        line.set_data([],[])
    else:   
        line.set_data([1,2,3],[1,2,3])

    return line,

ani = animation.FuncAnimation(fig, animate, init_func=init,frames =100, interval=10, blit=False, repeat =False)
fig.show()

查看matplotlib.animation了解更多详情。这个link可以帮助您入门。