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

Matplotlib.colors.TwoSlopeNorm 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.TwoSlopeNorm

The matplotlib.colors.TwoSlopeNorm class is used to normalize data with the set center. It comes handy while mapping data with unequal rates of change around the conceptual center. For example, the range between -3 to 6 has a center 0.
 

Syntax: class matplotlib.colors.TwoSlopeNorm(vcenter, vmin=None, vmax=None)
Parameters:
 

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

 

Method of the class:
 

  • autoscale_none(self, A): This method is used to clip at vcenter by getting vmax and vmin. 
     

Example 1: 
 

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.TwoSlopeNorm(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: 
 

Example 2: 
 

Python3




import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
 
data = np.random.normal(.4, 2, (10, 10))
 
two_slope_norm = mcolors.TwoSlopeNorm(vmin = data.min(),
                                      vmax = data.max(),
                                      vcenter = 0)
 
plt.imshow(data, cmap = plt.cm.RdBu,
           norm = two_slope_norm)
 
plt.colorbar()
plt.show()


Output: 
 

 

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