SimpleNorm#
- class astropy.visualization.mpl_normalize.SimpleNorm(stretch='linear', percent=None, *, min_percent=None, max_percent=None, vmin=None, vmax=None, power=1.0, log_a=1000, asinh_a=0.1, sinh_a=0.3, clip=False, invalid=-1.0)[source]#
Bases:
objectClass to create a normalization object that can be used for displaying images with Matplotlib.
This convenience class provides the most common image stretching functions. Additional stretch functions are available in
ImageNormalize.- Parameters:
- stretch{‘linear’, ‘sqrt’, :ref: ‘power’, log’, ‘asinh’, ‘sinh’}, optional
The stretch function to apply to the image. The default is ‘linear’.
- percent
float, optional The percentage of the image values used to determine the pixel values of the minimum and maximum cut levels. The lower cut level will set at the
(100 - percent) / 2percentile, while the upper cut level will be set at the(100 + percent) / 2percentile. The default is 100.0.percentis ignored if eithermin_percentormax_percentis input.- min_percent
float, optional The percentile value used to determine the pixel value of minimum cut level. The default is 0.0.
min_percentoverridespercent.- max_percent
float, optional The percentile value used to determine the pixel value of maximum cut level. The default is 100.0.
max_percentoverridespercent.- vmin
float, optional The pixel value of the minimum cut level. Data values less than
vminwill set tovminbefore stretching the image. The default is the image minimum.vminoverridesmin_percent.- vmax
float, optional The pixel value of the maximum cut level. Data values greater than
vmaxwill set tovmaxbefore stretching the image. The default is the image maximum.vmaxoverridesmax_percent.- power
float, optional The power index for
stretch='power'. The default is 1.0.- log_a
float, optional The log index for
stretch='log'. The default is 1000.- asinh_a
float, optional For
stretch='asinh', the value where the asinh curve transitions from linear to logarithmic behavior, expressed as a fraction of the normalized image. Must be in the range between 0 and 1. The default is 0.1.- sinh_a
float, optional The scaling parameter for
stretch='sinh'. The default is 0.3.- clipbool, optional
If
True, data values outside the [0:1] range are clipped to the [0:1] range.- invalid
Noneorfloat, optional Value to assign NaN values generated by the normalization. NaNs in the input
dataarray are not changed. For matplotlib normalization, theinvalidvalue should map to the matplotlib colormap “under” value (i.e., any finite value < 0). IfNone, then NaN values are not replaced. This keyword has no effect ifclip=True.
See also
Examples
import numpy as np import matplotlib.pyplot as plt from astropy.visualization import SimpleNorm image = np.arange(65536).reshape((256, 256)) snorm = SimpleNorm('sqrt', percent=98) norm = snorm(image) fig, ax = plt.subplots() axim = ax.imshow(image, norm=norm, origin='lower') fig.colorbar(axim)
Methods Summary
__call__(data)Return an
ImageNormalizeinstance that can be used for displaying images with Matplotlib.imshow(data[, ax])A convenience function to display an image using matplotlib's
matplotlib.pyplot.imshowfunction with the normalization defined by this class.Methods Documentation
- __call__(data)[source]#
Return an
ImageNormalizeinstance that can be used for displaying images with Matplotlib.- Parameters:
- data
ndarray The image array.
- data
- Returns:
- result
ImageNormalizeinstance An
ImageNormalizeinstance that can be used for displaying images with Matplotlib.
- result
- imshow(data, ax=None, **kwargs)[source]#
A convenience function to display an image using matplotlib’s
matplotlib.pyplot.imshowfunction with the normalization defined by this class.- Parameters:
- data2D or 3D array_like
The data to display. Can be whatever
imshowandImageNormalizeboth accept.- ax
NoneorAxes, optional The matplotlib axes on which to plot. If
None, then the currentAxesinstance is used.- **kwargs
dict, optional Keywords arguments passed to
imshow. Cannot include thenormorXkeyword.
- Returns:
Examples
import numpy as np import matplotlib.pyplot as plt from astropy.visualization import SimpleNorm image = np.arange(65536).reshape((256, 256)) snorm = SimpleNorm('sqrt', percent=98) fig, ax = plt.subplots() axim = snorm.imshow(image, ax=ax, origin='lower') fig.colorbar(axim)