Establecer rango de barra de colores en matplotlib

¡Hola Geeks! En este artículo, intentaremos establecer la gama de colores usando el módulo de Python matplotlib. Matplotlib nos permite una amplia gama de personalización de Colorbar. Colorbar es simplemente una instancia de plt.Axes. Proporciona una escala para la relación número-color basada en los datos de un gráfico. Establecer un rango limita los colores a una subsección, The Colorbar transmite falsamente la información de que el límite inferior de los datos es comparable con su límite superior. Con los dos límites diferentes, puede controlar el rango y la leyenda de la barra de colores.
 

Requisito: Matplotlib, NumPy

Para la instalación Matplotlib

pip install matplotlib

Para la instalación Numpy.

pip install numpy

Entendamos con la implementación paso a paso:

Paso 1:

Importe la biblioteca requerida y configure algunos datos genéricos. 

Python3

import numpy as np
import matplotlib.pyplot as plt
  
# setup some generic data
N = 37
x, y = np.mgrid[:N, :N]
Z = (np.cos(x*0.2) + np.sin(y*0.3))

Paso 2:

Enmascare los valores negativos y positivos.

Python3

Zpos = np.ma.masked_less(Z, 0)
Zneg = np.ma.masked_greater(Z, 0)

 

Paso 3:

Muestre los datos como una imagen, es decir, en un ráster regular 2D.

Python3

# plot just the positive data and save the
# color "mappable" object returned by ax1.imshow
pos = ax1.imshow(Zpos, cmap = 'Blues', interpolation = 'none')

Paso 4:

Trazar valores positivos y negativos entre +/- 1.2

Python3

fig, (ax1, ax2, ax3) = plt.subplots(figsize=(13, 3), 
                                    ncols = 3)
  
pos_neg_clipped = ax3.imshow(Z, 
                             cmap = 'RdBu', 
                             vmin = -1.2,
                             vmax = 1.2)
# Add minorticks on the colorbar to make 
# it easy to read the values off the colorbar.
color_bar = fig.colorbar(pos_neg_clipped, 
                         ax = ax3,
                         extend = 'both')
  
color_bar.minorticks_on()
plt.show()

Producción:

A continuación se muestra la implementación completa:

Python3

import numpy as np
import matplotlib.pyplot as plt
  
# setup some generic data
N = 37
x, y = np.mgrid[:N, :N]
Z = (np.cos(x*0.2) + np.sin(y*0.3))
  
# mask out the negative and positive values
Zpositive = np.ma.masked_less(Z, 0)
Znegative = np.ma.masked_greater(Z, 0)
  
fig, (ax1, ax2, ax3) = plt.subplots(figsize = (13, 3),
                                    ncols = 3)
  
# plot just the positive data and save the
# color "mappable" object returned by ax1.imshow
pos = ax1.imshow(Zpositive, cmap = 'Blues')
  
# add the colorbar using the figure's method,
fig.colorbar(pos, ax = ax1)
  
# repeat everything above for the negative data
neg = ax2.imshow(Znegative, cmap = 'Reds_r')
fig.colorbar(neg, ax = ax2)
  
# Plot both positive and negative values between +/- 1.2
pos_neg_clipped = ax3.imshow(Z, cmap = 'RdBu',
                             vmin = -1.2, 
                             vmax = 1.2)
  
# Add minorticks on the colorbar to make 
# it easy to read the values off the colorbar.
color_bar = fig.colorbar(pos_neg_clipped, 
                         ax = ax3,
                         extend = 'both')
  
color_bar.minorticks_on()
plt.show()

Producción:

Publicación traducida automáticamente

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