我有2个色条,我想他们都有不同的事件 我该怎么做? 我的代码是atm
x_ax.set_picker(5)##colorbar set picker
def on_pick(event):
artist = event.artist
val = event.mouseevent.ydata
xal = event.mouseevent.xdata
if highlight == 1 :
print 'hello'
global highlight
highlight = 0
self.canvas.draw()
if highlight == 0 :
highlight = 2
trans = transforms.blended_transform_factory(self.ax.transAxes,self.ax.transData )
rect = patches.Rectangle((0,1),width=5, height=5, transform=trans, color='yellow',alpha=0.5)
self.ax.add_patch(rect)
self.canvas.draw()
rect.remove()
else:
self.canvas.draw()
trans = transforms.blended_transform_factory(self.ax.transAxes,self.ax.transData )
rect = patches.Rectangle((0,10),width=25, height=25, transform=trans, color='yellow',alpha=0.5)
self.ax.add_patch(rect)
highlight = 1
self.canvas.draw()
rect.remove()
self.canvas = FigureCanvas(self, -1, self.fig)
self.canvas.mpl_connect('pick_event',on_pick)
我尝试添加x2_ax.setpicker(5)
和self.canvas.mpl.connect('pick_event', on_click)
但当你点击任何一个颜色条的时候,这两个功能似乎都能完成
我的onïpick只是在图表上突出显示一个部分
如何为每个色条添加单独的pick事件???你知道吗
您正在将pick事件连接到
canvas
,并且每个canvas
只能获得一个pick事件。你需要在你的on_pick
中添加代码,这样你就可以知道你在和哪个艺术家打交道。您可以使用闭包来实现这一点,一个稍微简单/不那么优雅的方法是简单地将label
添加到您的轴中然后在你的
on_pick
你可以做得稍微好一点,制作一个
dict
键控标签和函数的值,特别是如果你结束了许多标签艺术家。你知道吗相关问题 更多 >
编程相关推荐