Как в 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)