@radeon3850
Начинающий разработчик python

Как в PyQt5 вставить фигуру с графиками из matplotlibe?

Как в PyQt5 вставить фигуру с графиками из matplotlibe если код с графиками находится в другом файле? Изначально делал в Qt designer - кнопку и виджет.
Так как оф документация в примерах показано как график добавить но как интегрировать именно фигуру с графиками это оказалось проблемой.

Код который написал для добавления одного графика и вызову по нажатию на кнопку.

Основной файл главного окна
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets, uic
from matplotlib.backends.backend_qt5agg import (NavigationToolbar2QT as NavigationToolbar)
import matplotlib as plt
import formuls_of_statistic


class MatplotlibWidget(QMainWindow):

    def __init__(self):
        QMainWindow.__init__(self)

        uic.loadUi("mainPlotWidget.ui", self)

        self.setWindowTitle("PyQt5 & Matplotlib Example GUI")
        self.pushButton.clicked.connect(self.update_graph)
        self.addToolBar(NavigationToolbar(self.MplWidget.canvas, self))

    def update_graph(self):
        plt.style.use('seaborn-darkgrid')
        counts_value = [i for i in range(len(formuls_of_statistic.equity()))]
        self.MplWidget.canvas.axes.clear()
        self.MplWidget.canvas.axes.fill_between(counts_value,formuls_of_statistic.equity(), color='#00FF00', alpha=0.75, edgecolor = '#32CD32')
        self.MplWidget.canvas.draw()

app = QApplication([])
window = MatplotlibWidget()
window.show()
app.exec_()


файл виджета c кодом виджета

from PyQt5.QtWidgets import *
from matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure

class MplWidget(QWidget):

    def __init__(self, parent=None):
        QWidget.__init__(self, parent)

        self.canvas = FigureCanvas(Figure())

        vertical_layout = QVBoxLayout()
        vertical_layout.addWidget(self.canvas)

        self.canvas.axes = self.canvas.figure.add_subplot()
        self.setLayout(vertical_layout)
  • Вопрос задан
  • 21 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы