Integrar Matplotlib en PyQt4: una guía paso a paso
Integrar un gráfico matplotlib interactivo en una interfaz de usuario de PyQt4 es más simple que eso puede parecer. Aquí hay una explicación paso a paso:
Importar los módulos necesarios:
Comience importando los widgets Qt relevantes desde matplotlib.backends. backend_qt4agg:
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
Crear una figura de Matplotlib:
Crea una instancia de un objeto Figura para que sirva como lienzo para tu gráfico.
self.figure = Figure()
Crear una instancia de un widget Qt para el lienzo:
Crear una instancia de FigureCanvas, que representa el widget Qt que mostrará el figura.
self.canvas = FigureCanvas(self.figure)
Agregar una barra de herramientas de navegación:
El widget de la barra de herramientas de navegación proporciona controles para hacer zoom, desplazarse y guardar la figura.
self.toolbar = NavigationToolbar(self.canvas, self)
Crear un botón:
Crea un botón PyQt que, al hacer clic en él, activará una función de trazado.
self.button = QtGui.QPushButton('Plot')
self.button.clicked.connect(self.plot)
Diseña el diseño:
Organiza los widgets dentro de un diseño Qt.
layout = QtGui.QVBoxLayout()
layout.addWidget(self.toolbar)
layout.addWidget(self.canvas)
layout.addWidget(self.button)
self.setLayout(layout)
Trazar datos aleatorios:
Defina una función para generar datos aleatorios y trazarlos en la figura.
def plot(self):
data = [random.random() for i in range(10)]
ax = self.figure.add_subplot(111)
ax.clear()
ax.plot(data, '*-')
self.canvas.draw()
Si sigue estos pasos, puede incrustar un gráfico matplotlib dentro de una interfaz de usuario de PyQt4, lo que le permitirá visualizar datos e interactuar con ellos a través de widgets de Qt.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3