跨度选择器 SpanSelector是一个鼠标小部件,用于选择xmin / xmax范围并绘制下轴中所选区域的详细视图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.widgets import SpanSelectornp.random.seed(19680801 ) fig, (ax1, ax2) = plt.subplots(2 , figsize=(8 , 6 )) ax1.set (facecolor='#FFFFCC' ) x = np.arange(0.0 , 5.0 , 0.01 ) y = np.sin(2 *np.pi*x) + 0.5 *np.random.randn(len (x)) ax1.plot(x, y, '-' ) ax1.set_ylim(-2 , 2 ) ax1.set_title('Press left mouse button and drag to test' ) ax2.set (facecolor='#FFFFCC' ) line2, = ax2.plot(x, y, '-' ) def onselect (xmin, xmax ): indmin, indmax = np.searchsorted(x, (xmin, xmax)) indmax = min (len (x) - 1 , indmax) thisx = x[indmin:indmax] thisy = y[indmin:indmax] line2.set_data(thisx, thisy) ax2.set_xlim(thisx[0 ], thisx[-1 ]) ax2.set_ylim(thisy.min (), thisy.max ()) fig.canvas.draw() span = SpanSelector(ax1, onselect, 'horizontal' , useblit=True , rectprops=dict (alpha=0.5 , facecolor='red' )) plt.show()
下载这个示例