Código fuente para mlpwidget
"""
Archivo para definir las clases MlpWidget, MlpWidgetNoToolbar, MlpWidgetSubplot y MlpWidget3D, estas clases son utilizadas por qtdesigner para promocionar un QGraphicsView a las clases aca definidas en orden de mostrar las gráficas en un QGraphicsView
"""
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.backends.backend_qt5agg import FigureCanvas
from PySide2.QtWidgets import QWidget, QGraphicsView
from PySide2.QtWidgets import QVBoxLayout
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.figure import Figure
[documentos]class MlpWidget(QGraphicsView):
"""
Clase básica para mostrar gráficas utilizando Matplotlib
:param QGraphicsView: Clase base del QGraphicsView
:type QGraphicsView: objectType
"""
[documentos] def __init__(self, parent=None):
super(MlpWidget, self).__init__(parent)
self.canvas = FigureCanvas(Figure())
vertical_layout = QVBoxLayout()
vertical_layout.addWidget(self.canvas)
self.toolbar = NavigationToolbar(self.canvas, self)
vertical_layout.addWidget(self.toolbar)
self.canvas.axes = self.canvas.figure.add_subplot(111)
self.canvas.figure.tight_layout()
self.canvas.figure.subplots_adjust(top=0.95,
bottom=0.095,
left=0.1,
right=0.97,
hspace=0.2,
wspace=0.2)
self.canvas.axes.grid()
self.setLayout(vertical_layout)
[documentos]class MlpWidgetNoToolbar(QGraphicsView):
"""
Clase para mostrar gráficas utilizando Matplotlib sin el toolbar
:param QGraphicsView: Clase base del QGraphicsView
:type QGraphicsView: objectType
"""
[documentos] def __init__(self, parent=None):
super(MlpWidgetNoToolbar, self).__init__(parent)
self.canvas = FigureCanvas(Figure(tight_layout=True))
vertical_layout = QVBoxLayout()
vertical_layout.addWidget(self.canvas)
self.canvas.axes = self.canvas.figure.add_subplot(111)
self.canvas.figure.tight_layout()
self.canvas.axes.grid()
self.setLayout(vertical_layout)
[documentos]class MlpWidgetSubplot(QGraphicsView):
"""
Clase para mostrar gráficas en subplots utilizando Matplotlib
:param QGraphicsView: Clase base del QGraphicsView
:type QGraphicsView: objectType
"""
[documentos] def __init__(self, parent=None):
super(MlpWidgetSubplot, self).__init__(parent)
self.canvas = FigureCanvas(Figure(tight_layout=True))
vertical_layout = QVBoxLayout()
vertical_layout.addWidget(self.canvas)
self.toolbar = NavigationToolbar(self.canvas, self)
vertical_layout.addWidget(self.toolbar)
self.canvas.axes1 = self.canvas.figure.add_subplot(211)
self.canvas.axes1.grid()
self.canvas.axes2 = self.canvas.figure.add_subplot(212, sharex=self.canvas.axes1)
self.canvas.axes2.grid()
self.canvas.figure.tight_layout()
self.setLayout(vertical_layout)
[documentos]class MlpWidget3D(QGraphicsView):
"""
Clase básica para mostrar gráficas en 3D utilizando Matplotlib
:param QGraphicsView: Clase base del QGraphicsView
:type QGraphicsView: objectType
"""
[documentos] def __init__(self, parent=None):
super(MlpWidget3D, self).__init__(parent)
self.canvas = FigureCanvas(Figure(tight_layout=True))
vertical_layout = QVBoxLayout()
vertical_layout.addWidget(self.canvas)
self.canvas.axes = self.canvas.figure.add_subplot(111, projection='3d')
self.canvas.figure.tight_layout()
self.canvas.axes.grid()
self.colorbar = 0
self.setLayout(vertical_layout)