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

ran*_*109 4 python plot png matplotlib button

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

unu*_*tbu 5

实际上,这可以通过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()
Run Code Online (Sandbox Code Playgroud)

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