我在带有单个 x 轴和 2 个 y 轴的 wxpython 面板中嵌入了以下图。
#Draw graph on 2nd panel
self.p2.figure = matplotlib.pyplot.figure()
self.p2.axes = self.p2.figure.add_subplot(111)
self.p2.axes.plot(interval_graph_values,flow_graph_values,'b',linewidth=0.35)
self.p2.axes.set_xlabel('Time after start of event (Hours)', fontsize=8, fontweight='bold')
self.p2.axes.set_ylabel('Flow (cumecs)', fontsize=8, color = 'blue', fontweight='bold')
for t1 in self.p2.axes.get_yticklabels():
t1.set_color('blue')
t1.set_fontsize(8)
self.p2.axes.twinx()
self.p2.axes.twinx().plot(interval_graph_values, rainfall_graph_values, 'r', linewidth=0.35)
self.p2.axes.twinx().set_ylabel('Rainfall (mm)', fontsize=8, color='red', fontweight='bold')
for t1 in self.p2.axes.twinx().get_yticklabels():
t1.set_color('red')
t1.set_fontsize(8)
self.p2.canvas = FigureCanvas(self.p2, -1, self.p2.figure)
#self.p2.toolbar = NavigationToolbar(self.p2.canvas)
self.p2.sizer = wx.BoxSizer(wx.VERTICAL)
self.p2.sizer.Add(self.p2.canvas, 1, wx.LEFT | wx.TOP | wx.GROW | wx.EXPAND)
#self.p2.sizer.Add(self.p2.toolbar, 0, wx.EXPAND)
self.p2.SetSizer(self.p2.sizer)
self.p2.Fit()
self.sp.SetMinimumPaneSize(360)
数据是非常简单的水文测量资料 - interval_graph_values = [0.25, 0.5, 0.75...],flow_graph_values = [0.123, 0.191, 0.111...],rainbow_graph_values=[0, 0, 0.1...]
在鼠标单击事件上,我想从左轴检索 event.ydata,但我一直从右轴获取事件数据。
我试过玩 set_zorder() 但这似乎隐藏了具有最低 z_order 值的轴。
有没有办法指定鼠标事件应该使用哪个轴?
*如果我的代码不是最好的,请提前抱歉,我正在尝试从头开始自学。
谢谢