如何在matplotlib中以交互方式切换图表,或者有选择地隐藏和显示图表上的数据?

时间:2012-08-08 16:52:11

标签: python button plot matplotlib png

我想要一个按钮,将正在显示的绘图从一组子图切换到另一个子图,这样有人可以轻松地在它们之间切换以直观地比较差异。如果我创建几个数字,有没有办法显示一个按钮,选择显示哪个数字?或者有没有办法以交互方式选择性地显示和隐藏绘图上的数据向量子集?

1 个答案:

答案 0 :(得分:5)

事实上,这可以通过matplotlib event handlinganimation的一个小技巧(调用set_ydata来改变情节)来完成。

例如,当您单击鼠标时,这会在两个绘图之间切换:

import matplotlib.pyplot as plt
import numpy as np
import itertools

fig = plt.figure()
ax = fig.add_subplot(111)
y1 = np.random.rand(10)
y2 = np.random.rand(10)
ys = itertools.cycle((y1,y2))
line, = ax.plot(next(ys))

def onclick(event):
    line.set_ydata(next(ys))
    fig.canvas.draw()

cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()

您可以使用onclick功能获得更多体验。例如,您可以使用它来显示所有绘图的缩略图,然后在下一次单击时,使用鼠标的位置来确定选择了哪个绘图。然后显示该情节。