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()
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()