def onSpanSelect(self, x0, x1): """ 记住当前 span 的数值,当新的 span 绘制完毕后, 根据记录信息,主动绘制之前的 span :param x0: :param x1: :return: """ print("onSpanSelect enter... x0={},x1={}".format(x0, x1)) self.x1 = x0 self.x2 = x1 ylim = plt.gca().get_ylim() self.y2 = ylim[1] self.y1 = ylim[0]
def draw(self): df = load_data_txt('4444_height.csv') plt.xlim((13000, 35000)) plt.ylim((-2000, 4500))
self.fig = plt.figure(num=1) self.ax = self.fig.add_subplot(111)
self.ax.plot(df['width'], df['height'], marker='o', mec='b', mfc='w') self.ax.set_aspect(1) self.ax.grid(True, linestyle='-.')
self.canvas = FigureCanvasTkAgg(self.fig, self)
toolbar = NavigationToolbar2Tk(self.canvas, self) toolbar.update() self.canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.X, expand=True)
self.canvas.draw() self.canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)
self.on_draw_points()
self.span = SpanSelector(self.ax, self.onSpanSelect, 'horizontal', useblit=True) self.canvas.mpl_connect('key_press_event', self.span)
self.fig.canvas.draw()
|