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.
Ingeniero industrial especializado en optimización y simulación (R, Python, SQL, VBA)
1 comment
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í !!