Crear gráfico de píxeles 2D en Python

Los gráficos de píxeles son la representación de un conjunto de datos de 2 dimensiones. En estos gráficos, cada píxel se refiere a un valor diferente en un conjunto de datos. En este artículo, discutiremos cómo generar gráficos de píxeles 2D a partir de datos. Se puede generar un gráfico de píxeles de datos sin procesar utilizando cmap y los parámetros de interpolación del método imshow() en el módulo matplot.pyplot .

Sintaxis:

matplotlib.pyplot.imshow(X, cmap=Ninguno, norma=Ninguno, aspecto=Ninguno, interpolación=Ninguno, alfa=Ninguno, vmin=Ninguno, vmax=Ninguno, origen=Ninguno, extensión=Ninguno, forma=, filternorm=1 , filterrad=4.0, imlim=, resample=Ninguno, url=Ninguno, \*, data=Ninguno, \*\*kwargs)

Acercarse:

Los pasos básicos para crear gráficos de píxeles 2D en python usando Matplotlib son los siguientes:

Paso 1: Importación de bibliotecas requeridas

Estamos importando la biblioteca NumPy para crear un conjunto de datos y un módulo ‘pyplot’ de una biblioteca matplotlib para trazar gráficos de píxeles

import numpy as np
import matplotlib.pyplot as plt

Paso 2: preparación de datos

Para trazar, necesitamos datos bidimensionales. Creemos una array 2d usando el método aleatorio en NumPy. Aquí, la array data1 consta de tres subarreglos con un número de elementos igual a 7, mientras que data2 es una array de cuatro subarreglos y cada array consta de cinco elementos que tienen rangos de valores aleatorios entre cero y uno. El método aleatorio toma un máximo de cinco argumentos.

data1 = np.random.random((3,7))    
data2 = np.random.random((4,5))  

También podemos importar un archivo CSV, un archivo de texto o una imagen. 

  • Paso 2.1: Para importar un archivo de texto:
data_file = np.loadtxt("myfile.txt")
  • Paso 2.2: Para importar archivos CSV:
data_file = np.genfromtxt("my_file.csv", delimiter=',')
  • Paso 2.3: Para importar imágenes:
 img = np.load('my_img.png')

Paso 3: Creando una trama

Todo el trazado se realiza con respecto a un eje. En la mayoría de los casos, una subparcela que es un eje en un sistema de cuadrícula se ajustará a sus necesidades. Por lo tanto, estamos agregando ejes a la gráfica. Los datos proporcionados se dividirán en nrows y ncols proporcionados por el usuario.

pixel_plot = plt.figure()
pixel_plot.add_axes()
axes = plt.subplots(nrows,ncols)

Paso 4: Trazar un gráfico

 Para trazar una trama

 plt.plot(pixel_plot)

 Paso 5: Personaliza una trama: 

Podemos personalizar un gráfico dando un título para el gráfico, ejes x, ejes y, números y de varias maneras. Para el gráfico de píxeles, podemos agregar una barra de color que determina el valor de cada píxel. El atributo del método imshow() llamado interpolación con valor de atributo ninguno o el más cercano ayuda a trazar un gráfico en píxeles. Aquí el atributo cmap para colorear el mapa.

 plt.title("pixel_plot")
 pixel_plot = plt.imshow(pixel_plot,cmap='',interpolation='')
 plt.colorbar(pixel_plot)

Paso 6: Guardar parcela

Para guardar una imagen transparente, debemos establecer un atributo transparente en el valor verdadero de forma predeterminada, es falso

plt.savefig('pixel_plot.png')
plt.savefig('pixel_plot.png',transparent=True)

Paso 7: Mostrar gráfico:

 Y finalmente, para mostrar un gráfico se usa una función simple

plt.show(pixel_plot)

A continuación se muestran algunos ejemplos que muestran cómo generar gráficos de píxeles 2D utilizando matplotlib.

Ejemplo 1: en este programa, generamos un gráfico de píxeles 2D a partir de una array creada con el método random() .

Python3

# importing modules
import numpy as np
import matplotlib.pyplot as plt
  
# creating a dataset
# data is an array with four sub 
# arrays with 10 elements in each
data = np.random.random((4, 10))
  
# creating a plot
pixel_plot = plt.figure()
  
# plotting a plot
pixel_plot.add_axes()
  
# customizing plot
plt.title("pixel_plot")
pixel_plot = plt.imshow(
  data, cmap='twilight', interpolation='nearest')
  
plt.colorbar(pixel_plot)
  
# save a plot
plt.savefig('pixel_plot.png')
  
# show plot
plt.show(pixel_plot)

Producción:

Ejemplo 2: en este ejemplo, estamos tomando la entrada de una array 3D generada aleatoriamente y generamos un gráfico de píxeles 2D a partir de ella.

Python3

# importing modules
import numpy as np
import matplotlib.pyplot as plt
  
# creating a dataset
data = np.random.random((10, 12, 10))
  
# data is an 3d array  with 
# 10x12x10=1200 elements.
# reshape this 3d array in 2d
# array for plotting
nrows, ncols = 40, 30
data = data.reshape(nrows, ncols)
  
# creating a plot
pixel_plot = plt.figure()
  
# plotting a plot
pixel_plot.add_axes()
  
# customizing plot
plt.title("pixel_plot")
pixel_plot = plt.imshow(
  data, cmap='Greens', interpolation='nearest', origin='lower')
  
plt.colorbar(pixel_plot)
  
# save a plot
plt.savefig('pixel_plot.png')
  
# show plot
plt.show(pixel_plot)

Producción:

Ejemplo 3: En este ejemplo, creamos manualmente una array 3D y generamos su gráfico de píxeles.

Python3

# importing modules
import numpy as np
import matplotlib.pyplot as plt
  
# creating a dataset
data = np.random.random((10, 12, 10))
  
# data is an 3d array 
# with 10x12x10=1200 elements.
# reshape this 3d array in 2d
# array for plotting
nrows, ncols = 40, 30
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  
# creating a plot
pixel_plot = plt.figure()
  
# plotting a plot
pixel_plot.add_axes()
  
# customizing plot
plt.title("pixel_plot")
pixel_plot = plt.imshow(
  data, cmap='Greens', interpolation='nearest', origin='lower')
  
plt.colorbar(pixel_plot)
  
# save a plot
plt.savefig('pixel_plot.png')
  
# show plot
plt.show(pixel_plot)

Producción:

Publicación traducida automáticamente

Artículo escrito por illusion 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 *