Saturday, December 28, 2024
Google search engine
HomeLanguagesMatplotlib.colors.DivergingNorm class in Python

Matplotlib.colors.DivergingNorm class in Python

Matplotlib is an amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack. 
 

matplotlib.colors.DivergingNorm

The matplotlib.colors.DivergingNorm class belongs to the matplotlib.colors module. The matplotlib.colors module is used for converting color or numbers arguments to RGBA or RGB.This module is used for mapping numbers to colors or color specification conversion in a 1-D array of colors also known as colormap.
The matplotlib.colors.DivergingNorm class is very useful while mapping data with uneven or unequal rate of change around a conceptual center. For instance data range between -2 to, with 0 as the center or mid-point.
 

Syntax: matplotlib.colors.DivergingNorm(vcenter, vmin, vmax)
Parameters: 
 

  1. vcenter: It accepts a float valuethat defines the 0.5 data value in the normalization.
     
  2. vmin: It is an optional parameter that accepts float values and defines 0.0 data value in normalization which defaults to the minimum value of dataset.
     
  3. vmax: It is an optional parameter that accepts float values and defines 1.0 data value in normalization which defaults to the maximum value of dataset.
     

 

Example 1: 
 

Python3




import numpy
from matplotlib import pyplot as plt
from matplotlib import colors
 
 
# dummy data to plot
x = numpy.linspace(0, 2*numpy.pi, 30)
y = numpy.linspace(0, 2*numpy.pi, 20)
[A, B] = numpy.meshgrid(x, y)
Q = numpy.sin(A)*numpy.cos(B)
 
fig = plt.figure()
plt.ion()
 
#  yellow to green to red
# colormap
plt.set_cmap('brg')
 
ax = fig.add_subplot(1, 2, 1)
plt.pcolor(A, B, Q)
plt.colorbar()
 
ax = fig.add_subplot(1, 2, 2)
 
# defining the scale, with white
# at zero
vmin = -0.2
vmax = 0.8
norms = colors.DivergingNorm(vmin=vmin,
                             vcenter=0,
                             vmax=vmax)
 
plt.pcolor(A, B, Q,
           vmin=vmin,
           vmax=vmax,
           norm=norms) 
 
plt.colorbar()


Output:
 

python-matplotlib-divergingnorm

Example 2: 
 

Python3




import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.colors as colors
 
file = cbook.get_sample_data('topobathy.npz',
                             asfileobj = False)
 
with np.load(file) as example:
    topo = example['topo']
    longi = example['longitude']
    latit = example['latitude']
 
figure, axes = plt.subplots(constrained_layout = True)
 
# creating a colormap that
# has land and ocean clearly
# delineated and of the
# same length (256 + 256)
undersea = plt.cm.terrain(np.linspace(0, 0.17, 256))
land = plt.cm.terrain(np.linspace(0.25, 1, 256))
every_colors = np.vstack((undersea, land))
 
terrain_map = colors.LinearSegmentedColormap.from_list('terrain_map',
                                                       every_colors)
 
# the center is offset so that
# the land has more dynamic range
# while making the norm
diversity_norm = colors.DivergingNorm(vmin =-500,
                                      vcenter = 0,
                                      vmax = 4000)
 
pcm = axes.pcolormesh(longi, latit, topo,
                      rasterized = True,
                      norm = diversity_norm,
                      cmap = terrain_map, )
 
axes.set_xlabel('Longitude $[^o E]$')
axes.set_ylabel('Latitude $[^o N]$')
axes.set_aspect(1 / np.cos(np.deg2rad(49)))
 
figure.colorbar(pcm, shrink = 0.6,
                extend ='both',
                label ='Elevation [m]')
plt.show()


Output: 
 

matplotlib.colors.DivergingNorm

 

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments