Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt5-底图和Matplotlib散点图选择器_Python_Pyqt5_Matplotlib Basemap - Fatal编程技术网

Python PyQt5-底图和Matplotlib散点图选择器

Python PyQt5-底图和Matplotlib散点图选择器,python,pyqt5,matplotlib-basemap,Python,Pyqt5,Matplotlib Basemap,我在底图上绘制了点,现在我尝试添加拾取事件。使用PyQt5将地图嵌入到qwidget中。 基于此,我尝试了以下代码: self.axes.figure.canvas.mpl_connect(self, 'pick_event', self.onclick) 但我得到了这个错误: TypeError: mpl_connect() takes 3 positional arguments but 4 were given 这是我的代码: from PyQt5 import QtCore, QtG

我在
底图上绘制了点,现在我尝试添加拾取事件。使用
PyQt5
将地图嵌入到
qwidget
中。 基于此,我尝试了以下代码:

self.axes.figure.canvas.mpl_connect(self, 'pick_event', self.onclick)
但我得到了这个错误:

TypeError: mpl_connect() takes 3 positional arguments but 4 were given
这是我的代码:

from PyQt5 import QtCore, QtGui, QtWidgets
from mpl_toolkits.basemap import Basemap
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QPushButton
from Front_end import Ui_MainWindow
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
import os

class Ui_MainWindow(QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):
        super(Ui_MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.graph1 = MyCanvas()
        self.navi_toolbar = NavigationToolbar(self.graph1, self) 
        self.gridLayout_2.addWidget(self.navi_toolbar, 1, 0, 1, 1)
        self.gridLayout_2.addWidget(self.graph1, 0, 0, 1, 1) 
        self.plot_point()

    def onclick(self, event):
        print('test')

    def plot_point(self):        
        self.graph1.figure.clf()
        self.axes = self.graph1.figure.add_subplot(111)
        self.x = [0, 10, 20, 30]
        self.y = [0, 10, 20, 30]
        self.map = Basemap(resolution = 'l')
        self.map.drawmapboundary(fill_color='#00BFFF',zorder=1)
        self.map.fillcontinents(color='#F5D0A9',zorder=2,lake_color='aqua')         
        self.axes.scatter(self.y,self.x, color='#FF0080', s=75, marker="*", zorder=4)
        self.axes.figure.canvas.mpl_connect(self, 'pick_event', self.onclick) 

class MyCanvas(FigureCanvas): 

    def __init__(self, *args, **kwargs):
        self.figure = plt.figure()
        FigureCanvas.__init__(self, self.figure)
        self.figure.patch.set_facecolor("None")
        self.figure.subplots_adjust(left=0.019, bottom=0.035, right=0.99, top=0.964)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    prog = Ui_MainWindow()    
    prog.showMaximized()
    sys.exit(app.exec_())

更改为
self.axes.figure.canvas.mpl_connect('pick_event',self.onclick)
@eyllansc它工作了!非常感谢。