PyQtGraph es una biblioteca de gráficos e interfaz de usuario para Python que proporciona la funcionalidad comúnmente requerida en el diseño y las aplicaciones científicas. Sus objetivos principales son proporcionar gráficos rápidos e interactivos para mostrar datos (gráficos, videos, etc.) y el segundo es proporcionar herramientas para ayudar en el desarrollo rápido de aplicaciones (por ejemplo, árboles de propiedades como los que se usan en Qt Designer).
PyQtGraph hace un uso intensivo de la plataforma Qt GUI (a través de PyQt o PySide) para sus gráficos de alto rendimiento y numpy para el procesamiento de números pesados. En particular, pyqtgraph utiliza el marco GraphicsView de Qt, que es un sistema de gráficos de gran capacidad por sí mismo, lo que trae primitivas optimizadas y simplificadas a este marco para permitir la visualización de datos con un esfuerzo mínimo.
Para instalar PyQtGraph usamos el siguiente comando
pip install pyqtgraph
Requisitos: PyQtGraph puede ejecutarse en cualquier plataforma que admita los siguientes paquetes:
1. Python 2.7 y 3+
2. PyQt 4.8+ o PySide
3. NumPy
4. Se requieren enlaces python-opengl para gráficos 3D
Ejemplo: En este ejemplo crearemos un gráfico de barras simple usando el módulo PyQtGraph en python
Python3
# importing pyqtgraph as pg import pyqtgraph as pg # importing QtCore and QtGui from the pyqtgraph module from pyqtgraph.Qt import QtCore, QtGui # importing numpy as np import numpy as np # creating a pyqtgraph plot window window = pg.plot() # title title = "GeeksforGeeks PyQtGraph" # setting window title window.setWindowTitle(title) # create list for y-axis y1 = [5, 5, 7, 10, 3, 8, 9, 1, 6, 2] # create horizontal list i.e x-axis x = [1, 10, 4, 5, 7, 3, 6, 8, 9, 2] # create pyqt5graph bar graph item # with bar colors = green bargraph1 = pg.BarGraphItem(x = x, height = y1, width = 0.6, brush ='g') # adding bargraph item to the window window.addItem(bargraph1) # main method if __name__ == '__main__': # importing system import sys # Start Qt event loop unless running in interactive mode or using if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_()
Producción :
Ejemplo: en esto trazaremos dos líneas juntas en el mismo gráfico, a continuación se muestra la implementación
Python3
# importing pyqtgraph as pg import pyqtgraph as pg # importing QtCore and QtGui from the pyqtgraph module from pyqtgraph.Qt import QtCore, QtGui # importing numpy as np import numpy as np # define the data title = "GeeksforGeeks PyQtGraph" # y values to plot by line 1 y = [2, 8, 6, 8, 6, 11, 14, 13, 18, 19] # y values to plot by line 2 y2 = [3, 1, 5, 8, 9, 11, 16, 17, 14, 16] x = range(0, 10) # create plot object plt = pg.plot() # showing x and y grids plt.showGrid(x = True, y = True) # adding legend plt.addLegend() # set properties of the label for y axis plt.setLabel('left', 'Vertical Values', units ='y') # set properties of the label for x axis plt.setLabel('bottom', 'Horizontal Values', units ='s') # setting horizontal range plt.setXRange(0, 10) # setting vertical range plt.setYRange(0, 20) # setting window title plt.setWindowTitle(title) # ploting line in green color line1 = plt.plot(x, y, pen ='g', symbol ='x', symbolPen ='g', symbolBrush = 0.2, name ='green') # ploting line2 with blue color line2 = plt.plot(x, y2, pen ='b', symbol ='o', symbolPen ='b', symbolBrush = 0.2, name ='blue') # main method if __name__ == '__main__': # importing system import sys # Start Qt event loop unless running in interactive mode or using if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_()
Producción :
Cosas que PyQtGraph puede realizar:
1. Visualización básica de datos como imágenes, líneas y diagramas de dispersión
2. Lo suficientemente rápido como para trazar la actualización en tiempo real de video/datos
3. Escalado/panorámica interactiva, promedio, FFT, exportación SVG/PNG
4. Widgets para marcar y selección de regiones de trazado
5. Corte automático de datos de imágenes multidimensionales
6. Marco para crear widgets de regiones de interés de imágenes personalizadas
7. Sistema de acoplamiento que reemplaza/complementa el sistema de acoplamiento de Qt para permitir arreglos de acoplamiento más complejos (y más predecibles)
8. Widget de ParameterTree para la creación rápida de prototipos de interfaces dinámicas
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA