Imshow con dos barras de colores en Matplotlib

En este artículo, aprenderemos a usar Imshow con dos barras de colores en Matplotlib. Analicemos algunos conceptos:

  • Matplotlib es una increíble biblioteca de visualización en Python para gráficos 2D de arrays. Matplotlib es una biblioteca de visualización de datos multiplataforma basada en arrays NumPy y diseñada para funcionar con la pila SciPy más amplia. Fue presentado por John Hunter en el año 2002.
  • Uno de los mayores beneficios de la visualización es que nos permite el acceso visual a grandes cantidades de datos en imágenes fácilmente digeribles. Matplotlib consta de varios gráficos como línea, barra, dispersión, histograma, etc.
  • función mostrar()
  • función barra de colores()

Python3

# import libraries
import matplotlib.pyplot as plt
import numpy as np
  
# create image = 10x10 array
img = np.random.randint(-100, 100, (10, 10))
  
# make plot
fig, ax = plt.subplots()
  
# show image
shw = ax.imshow(img)
  
# make bar
bar = plt.colorbar(shw)
  
# show plot with labels
plt.xlabel('X Label')
plt.ylabel('Y Label')
bar.set_label('ColorBar')
plt.show()

Producción :

En el resultado anterior, podemos ver que hay una barra de color con valores que van desde -100 a 100. Esto no parece efectivo y no aclara la diferencia de valores positivos pequeños a valores positivos más grandes. De manera similar, no aclara la diferencia de valores negativos pequeños a valores negativos mayores. Aquí, dividimos la barra de colores en dos partes:

  • uno con valores positivos
  • uno con valores negativos

Con diferentes colores, que nos ayudan a entender la trama de forma clara y eficaz. A continuación se mencionan todos los pasos para dicho trabajo.

  1. Crear/cargar datos de imagen
  2. Array enmascarada a valores positivos y negativos
  3. Hacer una trama usando el método subplot()
  4. Mostrar imagen usando el método imshow()
  5. Haz barras usando el método matplotlib.pyplot.colorbar()
  6. Mostrar trama con etiquetas

Ejemplo:

Python3

# import libraries
import matplotlib.pyplot as plt
import numpy as np
from numpy.ma import masked_array
  
# create image = 10x10 array
img = np.random.randint(-100, 100, (10, 10))
  
# masked array to positive and negative values
neg_img = masked_array(img, img >= 0)
pos_img = masked_array(img, img < 0)
  
# make plot
fig, ax = plt.subplots()
  
# show image
shw1 = ax.imshow(neg_img, cmap=plt.cm.Reds)
shw2 = ax.imshow(pos_img, cmap=plt.cm.winter)
  
# make bars
bar1 = plt.colorbar(shw1)
bar2 = plt.colorbar(shw2)
  
# show plot with labels
plt.xlabel('X Label')
plt.ylabel('Y Label')
bar1.set_label('ColorBar 1')
bar2.set_label('ColorBar 2')
plt.show()

Publicación traducida automáticamente

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