PyQtGraph: puntos de diferentes colores en el gráfico de diagrama de dispersión

En este artículo, veremos cómo podemos crear un gráfico de diagrama de dispersión en el módulo PyQtGraph que tiene diferentes puntos de color. PyQtGraph es una biblioteca de interfaz de usuario y gráficos 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.). Un diagrama de dispersión (también conocido como gráfico de dispersión, gráfico de dispersión) usa puntos para representar valores para dos variables numéricas diferentes. Es un tipo de gráfico o diagrama matemático que utiliza coordenadas cartesianas para mostrar valores de normalmente dos variables para un conjunto de datos. La posición de cada punto en el eje horizontal y vertical indica valores para un punto de datos individual.
Podemos crear una ventana de trazado y crear un gráfico de dispersión en ella con la ayuda de los comandos que se indican a continuación. 

# creating a pyqtgraph plot window
plt = pg.plot()

# creating a scatter plot graph of size = 10
scatter = pg.ScatterPlotItem(size=10)

Para hacer esto, tenemos que hacer lo siguiente 

  1. Importar módulos pyqtgraph, pyqt5 y numpy
  2. Crear clase de ventana principal
  3. Crear un objeto de ventana de trazado
  4. Crear un objeto de elemento de gráfico de dispersión
  5. Cree una lista vacía para almacenar cada lugar
  6. Con la ayuda de los bucles, cree un diccionario de puntos que tenga las claves como ‘pos’, ‘color’, ‘pen’, ‘size’ para la posición, el color, el bolígrafo y el tamaño del punto.
  7. Agregue estos diccionarios de puntos a la lista
  8. Agregue la lista al elemento del diagrama de dispersión como lista de puntos
  9. Agregue este gráfico de dispersión a la ventana del gráfico y luego agregue este gráfico al diseño de cuadrícula con otros widgets adicionales como la etiqueta

A continuación se muestra la implementación. 

Python3

# importing Qt widgets
from PyQt5.QtWidgets import *
 
# importing system
import sys
 
# importing numpy as np
import numpy as np
 
# importing pyqtgraph as pg
import pyqtgraph as pg
from PyQt5.QtGui import *
from PyQt5.QtCore import *
 
from collections import namedtuple
 
class Window(QMainWindow):
 
    def __init__(self):
        super().__init__()
 
        # setting title
        self.setWindowTitle("PyQtGraph")
 
        # setting geometry
        self.setGeometry(100, 100, 600, 500)
 
        # icon
        icon = QIcon("skin.png")
 
        # setting icon to the window
        self.setWindowIcon(icon)
 
        # calling method
        self.UiComponents()
 
        # showing all the widgets
        self.show()
 
    # method for components
    def UiComponents(self):
 
        # creating a widget object
        widget = QWidget()
 
        # text
        text = "Geeksforgeeks Scatter Plot Graph with different color spots"
 
        # creating a label
        label = QLabel(text)
 
        # setting minimum width
        label.setMinimumWidth(130)
 
        # making label do word wrap
        label.setWordWrap(True)
 
        # setting configuration options
        pg.setConfigOptions(antialias = True)
 
        # creating a plot window
        plt = pg.plot()
 
        # creating scatter plot item
        ## Set pxMode=False to allow spots to transform with the view
        scatter = pg.ScatterPlotItem(pxMode = False)
 
        # creating empty list for spots
        spots = []
 
        # creating loop for rows and column
        for i in range(10):
 
            for j in range(10):
 
                # creating  spot position which get updated after each iteration
                # of color which also get updated
                spot_dic = {'pos': (1e-6 * i, 1e-6 * j), 'size': 1e-6,
                            'pen': {'color': 'w', 'width': 2},
                            'brush': pg.intColor(i * 10 + j, 100)}
 
                # adding spot_dic in the list of spots
                spots.append(spot_dic)
 
        # adding spots to the scatter plot
        scatter.addPoints(spots)
 
        # adding scatter plot to the plot window
        plt.addItem(scatter)
 
        # Creating a grid layout
        layout = QGridLayout()
 
        # minimum width value of the label
        label.setMinimumWidth(130)
 
        # setting this layout to the widget
        widget.setLayout(layout)
 
        # adding label in the layout
        layout.addWidget(label, 1, 0)
 
        # plot window goes on right side, spanning 3 rows
        layout.addWidget(plt, 0, 1, 3, 1)
 
        # setting this widget as central widget of the main window
        self.setCentralWidget(widget)
 
# create pyqt5 app
App = QApplication(sys.argv)
 
# create the instance of our Window
window = Window()
 
# start the app
sys.exit(App.exec())

Producción : 

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 *