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: