我想使用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"
,如果用右键绘制间隔,则打印{{1 }}。
以上可能吗?
答案 0 :(得分:1)
SpanSelector(..., button=1)
将是鼠标左键的范围选择器,并且
SpanSelector(..., button=3)
将是鼠标右键的跨度选择器。
答案 1 :(得分:0)
我用mpl_connect
解决了。我没有区分左键单击和右键单击,但是我让代码以不同的方式对待SpanSelector
输入,具体取决于鼠标选择的跨度之前是enter
击键还是{{ 1}}击键。如果对他人有用,我将在下面的代码中保留。
shift+enter