SimpleNorm#
- class astropy.visualization.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:
object
Class 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) / 2
percentile, while the upper cut level will be set at the(100 + percent) / 2
percentile. The default is 100.0.percent
is ignored if eithermin_percent
ormax_percent
is input.- min_percent
float
, optional The percentile value used to determine the pixel value of minimum cut level. The default is 0.0.
min_percent
overridespercent
.- max_percent
float
, optional The percentile value used to determine the pixel value of maximum cut level. The default is 100.0.
max_percent
overridespercent
.- vmin
float
, optional The pixel value of the minimum cut level. Data values less than
vmin
will set tovmin
before stretching the image. The default is the image minimum.vmin
overridesmin_percent
.- vmax
float
, optional The pixel value of the maximum cut level. Data values greater than
vmax
will set tovmax
before stretching the image. The default is the image maximum.vmax
overridesmax_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
None
orfloat
, optional Value to assign NaN values generated by the normalization. NaNs in the input
data
array are not changed. For matplotlib normalization, theinvalid
value 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
ImageNormalize
instance that can be used for displaying images with Matplotlib.imshow
(data[, ax])A convenience function to display an image using matplotlib's
matplotlib.pyplot.imshow
function with the normalization defined by this class.Methods Documentation
- __call__(data)[source]#
Return an
ImageNormalize
instance that can be used for displaying images with Matplotlib.- Parameters:
- data
ndarray
The image array.
- data
- Returns:
- result
ImageNormalize
instance An
ImageNormalize
instance 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.imshow
function with the normalization defined by this class.- Parameters:
- data2D or 3D array_like
The data to display. Can be whatever
imshow
andImageNormalize
both accept.- ax
None
orAxes
, optional The matplotlib axes on which to plot. If
None
, then the currentAxes
instance is used.- **kwargs
dict
, optional Keywords arguments passed to
imshow
. Cannot include thenorm
orX
keyword.
- 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)