Exemple #1
0
    def __init__(self, data_frame, parent_widget, mdi_area):
        if data_frame.empty:
            return
        self.subplot = False
        self.label_text = {}
        loader = QUiLoader()
        subwindow = loader.load("plot.ui", parentWidget=parent_widget)
        subwindow.setWindowTitle("图形展示")

        pwidget = subwindow.findChild(QWidget)

        canvas = FigureCanvas(Figure())
        canvas.figure.add_subplot(111)
        canvas.axes = canvas.figure.add_subplot(111)

        canvas.mpl_connect('motion_notify_event',
                           lambda event: self.onPlotMotion(event, canvas))
        canvas.mpl_connect('key_press_event', self.onPlotPress)

        cols = list(data_frame.columns)
        index = list(data_frame.index)
        index_name = data_frame.index.name
        for i in range(0, len(index)):
            self.label_text[i] = []
            for j in range(0, len(cols)):
                col_data = float(data_frame.iloc[i, j])
                self.label_text[i].append(
                    canvas.axes.annotate(
                        "%s:%s\n%s:%s" %
                        (index_name, index[i], cols[j], col_data),
                        (i, col_data),
                        bbox=dict(boxstyle="round", fc="w", ec="k"),
                        visible=False,
                        size=0.3 * 36))
                # self.label_text[i, col_data] = self.axes.annotate("%s: %s" % (cols[j], col_data), (i, col_data), visible=False)
        axes = data_frame.plot(ax=canvas.axes,
                               legend=True,
                               subplots=self.subplot)
        # self.axes.legend(loc="best")
        # x_label = to_unicode(index_name)
        # x_label = index_name
        axes.set_xlabel(index_name)
        axes.grid(True)
        axes.tick_params(axis='x', labelsize=7)
        toolbar = NavigationToolbar2QT(canvas, pwidget)
        toolbar.update()
        l = QtWidgets.QVBoxLayout(pwidget)
        l.addWidget(toolbar)
        l.addWidget(canvas)
        subwindow.setAttribute(Qt.WA_DeleteOnClose)

        mdi_area.addSubWindow(subwindow)
        subwindow.show()
Exemple #2
0
def _create_diagram_canvas(
        main_window: QtWidgets.QMainWindow,
        vertical_layout: QtWidgets.QVBoxLayout) -> FigureCanvasQTAgg:
    figure = Figure(figsize=(5, 4), dpi=100)
    figure_canvas = FigureCanvasQTAgg(figure)
    figure_canvas.axes = figure.add_subplot(111)

    toolbar = NavigationToolbar2QT(figure_canvas, main_window)

    vertical_layout.addWidget(figure_canvas)
    vertical_layout.addWidget(toolbar)

    return figure_canvas
 def initUI(self):
     self.setGeometry(100, 100, 640, 480)
     #x = numpy.linspace(0, 2.0*numpy.pi, 101)
     #y = numpy.sin(x)
     #plt.plot(x, y)
     
     label = QtWidgets.QLabel('Hello', self)
     
     layout = QtWidgets.QVBoxLayout() #было self
     layout.addWidget(label)
     
     #qwidget = QtWidgets.QWidget
     #layout.addWidget(qwidget)
     
     fig = Figure(figsize=(5, 4), dpi=100)
     canvas = FigureCanvasQTAgg(fig)
     canvas.axes = fig.add_subplot(111)
     canvas.axes.grid()
     canvas.setParent(self)
     
     
     #layout.addWidget(canvas)
     #canvas.show()
     
     
     #fig, ax = plt.subplots()
     #ax.plot([1, 2], [2, 3]) 
     #ax.grid()
     #canvas = FigureCanvasQTAgg(fig)
     #layout.addWidget(canvas)
     #canvas.draw()
     
     #self.canvas = FigureCanvasQTAgg(fig)
 
     #self.figure = Figure()
     #self.canvas = FigureCanvasQTAgg(fig) 
     #self.canvas = FigureCanvasQTAgg(self.figure) # Было (self.fi)
     #self.canvas = FigureCanvasQTAgg(fig)
     
     #self.addWidget(self.canvas)
     self.toolbar = NavigationToolbar2QT(canvas, self)
     self.show()