5

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

4

1 回答 1

6

事实上,这可以通过 matplotlib事件处理动画中的一个小技巧(调用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功能。例如,您可以使用它来显示所有绘图的缩略图,然后在下一次单击时,使用鼠标的位置来确定选择了哪个绘图。然后显示该图。

于 2012-08-08T17:05:48.630 回答