This example http://matplotlib.org/examples/event_handling/legend_picking.html可以单击图例从而更改绘图。
我想做类似的事情,但不是通过单击图例,而是通过单击图中的线。我尝试这样做:
self.ax = self.fig.add_subplot(1,2,1)
data = NP.array(2,10) #filled with numbers
self.x = NP.arange(2)
for line in range(len(data[0,:])):
self.ax.plot(self.x, data[:,line], picker=5)
在每个循环中,都会绘制一条额外的线。一条线由 2 个点组成,因此它画出一条直线。但现在每个循环,选择器都是相同的,因此无论我单击哪一行,我编写的用于操作单击的行的命令始终会影响第一行。
有没有办法改善这一点?
你想要这样的东西吗?当单击一行时,它将隐藏,当再次单击“空”位置时,它将显示。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
fig, ax = plt.subplots()
for i in range(1, 10):
ax.plot(x, i * x + x, picker=5)
def on_pick(event):
event.artist.set_visible(not event.artist.get_visible())
fig.canvas.draw()
fig.canvas.callbacks.connect('pick_event', on_pick)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)