Introducción al módulo PyQtGraph en Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *