Visualización de matrices y cuadrículas 2D usando matplotlib en Python

Un diagrama de matriz de cuadrícula 2D puede ser una valiosa herramienta de visualización, p. Ej. en el ámbito de la simulación basada en agentes. En esta publicación, quiero dar un breve tutorial sobre cómo puede visualizar una matriz de cuadrícula 2D, usando matplotlib en Python. El ejemplo de codificación está a continuación; Se ha agregado documentación relevante en forma de comentarios.

# para empezar, necesitaremos matplotlib.pyplot
from matplotlib import pyplot
# a continuación, estableceré una matriz 2d de 8 x 8, con bits aleatorios como elementos (0 o 1);
# para la aleatorización de enteros (0 o 1) utilizo el módulo aleatorio en Python;
# para construir cada fila en la matriz 2d, uso la comprensión de listas en Python
import random
data = [[random.randint(a=0,b=1) for x in range(0,8)], # hilera 1
        [random.randint(a=0,b=1) for x in range(0,8)], # hilera 2
        [random.randint(a=0,b=1) for x in range(0,8)], # hilera 3
        [random.randint(a=0,b=1) for x in range(0,8)], # hilera 4
        [random.randint(a=0,b=1) for x in range(0,8)], # hilera 5
        [random.randint(a=0,b=1) for x in range(0,8)], # hilera 6
        [random.randint(a=0,b=1) for x in range(0,8)], # hilera 7
        [random.randint(a=0,b=1) for x in range(0,8)]] # hilera 8
# mostrar la matriz de datos 2d
data
[[1, 1, 0, 0, 1, 1, 1, 0],
 [1, 1, 1, 0, 1, 0, 1, 1],
 [0, 1, 0, 1, 0, 0, 0, 0],
 [1, 1, 0, 0, 1, 1, 0, 1],
 [0, 1, 0, 1, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 1, 0, 0],
 [0, 0, 1, 0, 0, 0, 1, 1],
 [0, 0, 0, 1, 1, 0, 0, 1]]
# visualizaremos los bits de esta matriz de datos con matplot.pyplot;
# la función .imshow de Python puede hacer el trabajo
pyplot.figure(figsize=(5,5))
pyplot.imshow(data)
pyplot.show()
# .imshow tiene una variedad de parámetros que puedo usar para ajustar la visualización de la cuadrícula 2D
# configuración de resultado "alfa" en transparencia definida
pyplot.imshow(data,
             alpha=0.75)
pyplot.show()
# "cmap" permite definir un mapa de colores definido;
# para esto necesitamos importar colores de matplotlib
from matplotlib import colors
# usando el método ListedColormap del paquete de colores podemos definir un mapa de color
colormap = colors.ListedColormap(["red","green"])
# entregando este problema a
pyplot.imshow(data,
             cmap=colormap)
pyplot.show()
# como se muestra en mi documentación sobre matplotlib en python, también podemos, por ejemplo, ajustar las marcas de los ejes o agregar etiquetas;
# adjusting figure size
pyplot.figure(figsize=(10,10))
# agregando etiquetas a los ejes xey
pyplot.xlabel("x axis with ticks",
             size = 14)
pyplot.ylabel("y axis with ticks",
             size= 14)
# agregando título de la trama
pyplot.title("this is the title of the plot",
             size=28)
# ajustando las marcas en los ejes x e y
pyplot.xticks(size=14,
             color = "red")
pyplot.yticks(size=14, 
              color = "red")
# definición de mapa de colores
colormap = colors.ListedColormap(["darkblue","lightblue"])
# asignación de mapa de color al combinar el método ".imshow"
pyplot.imshow(data,
             cmap=colormap)
<matplotlib.image.AxesImage at 0x16408e89488>

Utilizaré este enfoque para visualizar iteraciones en algunos estudios de simulación basados ​​en agentes que se publicarán en mi blog.

You May Also Like

Leave a Reply

1 comment

Leo says:

Muy buen paso a paso. Gracias. Consulta: ¿cómo se pondría una etiqueta para cada valor? (por ej: “valor 1” para los 1, “valor 0” para los 0. Y, otra cosa, ¿cómo agregarle una barra de colores en un lado? Estoy intentando hacer lo mismo pero con la matriz sacada de un mapa de ciudad.
Seguí así !!

Leave a Reply

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.