class SegmentedNorm(levels, vcenter=None, vmin=None, vmax=None, clip=None, fair=True)[source]

Bases: Normalize

Normalizer that scales data linearly with respect to the interpolated index in an arbitrary monotonic level sequence.

  • levels (sequence of float) – The level boundaries. Must be monotonically increasing or decreasing.

  • vcenter (float, default: None) – The central colormap value. Default is to omit this.

  • vmin (float, optional) – Ignored but included for consistency. Set to min(levels).

  • vmax (float, optional) – Ignored but included for consistency. Set to max(levels).

  • clip (bool, optional) – Whether to clip values falling outside of vmin and vmax.

  • fair (bool, optional) – Whether to use fair scaling. See DivergingNorm.


The algorithm this normalizer uses to select normalized values in-between level list indices is adapted from the algorithm LinearSegmentedColormap uses to select channel values in-between segment data points (hence the name SegmentedNorm).


In the below example, unevenly spaced levels are passed to contourf, resulting in the automatic application of SegmentedNorm.

>>> import proplot as pplt
>>> import numpy as np
>>> levels = [1, 2, 5, 10, 20, 50, 100, 200, 500, 1000]
>>> data = 10 ** (3 * np.random.rand(10, 10))
>>> fig, ax = pplt.subplots()
>>> ax.contourf(data, levels=levels)

Methods Summary

__call__(value[, clip])

Normalize the data values to 0-1.


Inverse of __call__.