Matplotlib,逐步动画

7

这是一个与matplotlib相关的基本问题,但我无法弄清如何实现:

我想绘制多个图形,并在绘图窗口中使用箭头来在它们之间移动。

目前,我只知道如何创建多个绘图并将它们绘制在不同的窗口中,就像这样:

import matplotlib.pyplot as plt

fig = plt.figure()
plt.figure(1)
n= plt.bar([1,2,3,4],[1,2,3,4])
plt.figure(2)
n= plt.bar([1,2,3,4],[-1,-2,-3,-4])
plt.show() 

或者使用subplot在同一个窗口上有多个图像。

如何在同一个窗口上拥有多个绘图,并用箭头从一个绘图移动到下一个绘图?

提前感谢。


2
非常抱歉,但是“在同一个窗口上绘制多个图并使用箭头在它们之间切换”这一点让我感到非常困惑...您能以另一种方式解释您的需求吗? - Joe Kington
@JoeKington 我想要一个动态条形图,我希望能够使用图形窗口中的箭头(下一个和前进)进行动画处理。 - Ricky Bobby
1个回答

14
为了在按下左右箭头时更新绘图,您需要处理键盘事件(文档:http://matplotlib.sourceforge.net/users/event_handling.html)。我已经用pyplot接口创建了一个示例,演示如何在按下左右箭头时更新绘图。
import matplotlib.pyplot as plt
import numpy as np


data = np.linspace(1, 100)
power = 0
plt.plot(data**power)


def on_keyboard(event):
    global power
    if event.key == 'right':
        power += 1
    elif event.key == 'left':
        power -= 1

    plt.clf()
    plt.plot(data**power)
    plt.draw()

plt.gcf().canvas.mpl_connect('key_press_event', on_keyboard)

plt.show()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接