首页 > 解决方案 > 如何区分 SpanSelector 中的左右按钮?

问题描述

我想用来SpanSelector在图中选择两个区间。为了保存区间的不同极值,我想使用一个标志,具体取决于我是使用右按钮还是左按钮选择区间(这样我就可以区分两个想要的区间)。

以上可能吗?


编辑:

更具体地说:我希望一旦显示该图,SpanSelector如果通过左键完成,则绘制一个红色的区域跨度,如果通过右键完成,则绘制一个蓝色的区域跨度。


例子:

下面的代码让用户以交互方式选择一个间隔,然后打印这样的间隔

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.widgets as mwidgets  

fig = plt.figure() 
ax = plt.axes() 
x = np.arange(0,2*np.pi)  
y = np.sin(x) 
ax.plot(x,y) 

def onselect(vmin, vmax):
    print(vmin, vmax)

span = mwidgets.SpanSelector(ax, onselect, 'horizontal') 

plt.show()                                                               

我想修改上面的代码,如果间隔是由左按钮绘制的,那么它会打印出来"LEFT: vimin, vmax",如果间隔是由右键绘制的,那么它会打印出来"RIGHT: vmin, vmax"

以上可能吗?

标签: pythonmatplotlibwidgetmouseinteractive

解决方案


SpanSelector(..., button=1)

将是鼠标左键的跨度选择器和

SpanSelector(..., button=3)

将是鼠标右键的跨度选择器。


推荐阅读