Matplotlib.colors.DivergingNorm class in Python

06 Oct, 2021
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.  
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:  
vcenter: It accepts a float valuethat defines the 0.5 data value in the normalization. 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. 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. 
vcenter: It accepts a float valuethat defines the 0.5 data value in the normalization. 
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. 
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 numpyfrom matplotlib import pyplot as pltfrom matplotlib import colors  # dummy data to plotx = 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# colormapplt.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 zerovmin = -0.2vmax = 0.8norms = colors.DivergingNorm(vmin=vmin,                             vcenter=0,                             vmax=vmax) plt.pcolor(A, B, Q,           vmin=vmin,           vmax=vmax,           norm=norms)  plt.colorbar()
Output: 
Example 2:  
Python3
import numpy as npimport matplotlib.pyplot as pltimport matplotlib.cbook as cbookimport 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 normdiversity_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:  
 
gabaa406
Python-matplotlib
Python
Write From Home
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Different ways to create Pandas Dataframe
Enumerate() in Python
Read a file line by line in Python
Python String | replace()
Convert integer to string in Python
Convert string to integer in Python
How to set input type date in dd-mm-yyyy format using HTML ?
Python infinity
Similarities and Difference between Java and C++