我在 matplotlib 中创建了一个散点图,但是我想让它具有交互性。我想要它,所以我可以在图表上选择多个绘制点。
我在 matplotlib 网站上看到了 lasso 函数,但不知道如何放入我的代码中,因为一些代码在 main 位中。我更喜欢的是很像缩放功能的例子,你有一个矩形。但是我不知道如何做到这一点
到目前为止,我的代码只允许您选择一个点
def showFrame(self, msg):
self.pubsubText.SetLabel("This is the Contact Map for the chain "+msg.data[0]+" in the PDB file "+msg.data[1])
self.dpi = 100
self.fig = figure.Figure((5.0, 4.0), dpi=self.dpi)
self.canvas = wxagg.FigureCanvasWxAgg(self, -1, self.fig)
self.axes = self.fig.add_subplot(111)
self.vbox = wx.BoxSizer(wx.VERTICAL)
self.vbox.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.vbox.AddSpacer(25)
self.toolbar = wxagg.NavigationToolbar2WxAgg(self.canvas)
self.vbox.Add(self.toolbar, 0, wx.EXPAND)
self.SetSizer(self.vbox)
self.vbox.Fit(self)
def draw_figure(self):
def onpick3(event):
ind = event.ind
print('onpick3 scatter:', ind, np.take(x, ind), np.take(y, ind))
self.axes.get_xaxis().set_visible(False)
self.axes.get_yaxis().set_visible(False)
self.axes.clear()
x, y= [e[0] for e in number_list],[e[1] for e in number_list]
self.axes.scatter(x, y,color="black",picker=True)
self.canvas.mpl_connect('pick_event', onpick3)
self.canvas.draw()
draw_figure(self)
frame=self.GetParent()
frame.Show()
基本上我要问的是如何将套索或矩形应用于我的代码