Skip to content

Commit 1e12880

Browse files
committed
Improve docstring of Axes.imshow
1 parent 5daabdd commit 1e12880

File tree

1 file changed

+85
-56
lines changed

1 file changed

+85
-56
lines changed

lib/matplotlib/axes/_axes.py

+85-56
Original file line numberDiff line numberDiff line change
@@ -5093,82 +5093,104 @@ def imshow(self, X, cmap=None, norm=None, aspect=None,
50935093
origin=None, extent=None, shape=None, filternorm=1,
50945094
filterrad=4.0, imlim=None, resample=None, url=None, **kwargs):
50955095
"""
5096-
Display an image on the axes.
5096+
Display an image, i.e. data on a 2D regular raster.
50975097
50985098
Parameters
50995099
----------
5100-
X : array_like, shape (n, m) or (n, m, 3) or (n, m, 4)
5101-
Display the image in `X` to current axes. `X` may be an
5102-
array or a PIL image. If `X` is an array, it
5103-
can have the following shapes and types:
5100+
X : array-like or PIL image
5101+
The image data. Supported array shapes are:
51045102
5105-
- MxN -- values to be mapped (float or int)
5106-
- MxNx3 -- RGB (float or uint8)
5107-
- MxNx4 -- RGBA (float or uint8)
5103+
- (M, N): an image with scalar data. The data is visualized
5104+
using a colormap.
5105+
- (M, N, 3): an image with RGB values (float or uint8).
5106+
- (M, N, 4): an image with RGBA values (float or uint8), i.e.
5107+
including transparency.
51085108
5109-
MxN arrays are mapped to colors based on the `norm` (mapping
5110-
scalar to scalar) and the `cmap` (mapping the normed scalar to
5111-
a color).
5109+
The first two dimensions (M, N) define the rows and columns of
5110+
the image.
51125111
5113-
Elements of RGB and RGBA arrays represent pixels of an MxN image.
5114-
All values should be in the range [0 .. 1] for floats or
5112+
The RGB(A) values should be in the range [0 .. 1] for floats or
51155113
[0 .. 255] for integers. Out-of-range values will be clipped to
51165114
these bounds.
51175115
5118-
cmap : `~matplotlib.colors.Colormap`, optional, default: None
5119-
If None, default to rc `image.cmap` value. `cmap` is ignored
5120-
if `X` is 3-D, directly specifying RGB(A) values.
5116+
cmap : str or `~matplotlib.colors.Colormap`, optional
5117+
A Colormap instance or registered colormap name. The colormap
5118+
maps scalar data to colors. It is ignored for RGB(A) data.
5119+
Defaults to :rc:`image.cmap`.
51215120
5122-
aspect : ['auto' | 'equal' | scalar], optional, default: None
5123-
If 'auto', changes the image aspect ratio to match that of the
5124-
axes.
5121+
aspect : {'equal', 'auto'} or float, optional
5122+
Controls the aspect ratio of the axes. The aspect is of particular
5123+
relevance for images since it may distort the image, i.e. pixel
5124+
would not be square.
51255125
5126-
If 'equal', and `extent` is None, changes the axes aspect ratio to
5127-
match that of the image. If `extent` is not `None`, the axes
5128-
aspect ratio is changed to match that of the extent.
5126+
This parameter is just a shortcut for explicitly calling
5127+
`.Axes.set_aspect`. See there for further details.
51295128
5130-
If None, default to rc ``image.aspect`` value.
5129+
- 'equal': Ensures an aspect ratio of 1. Pixels will be square
5130+
(unless pixel sizes are explicitly made non-square in data
5131+
coordinates using *extent*).
5132+
- 'auto': The axes is kept fixed and the aspect is adjusted so
5133+
that the data fit in the axes. In general, this will result in
5134+
non-square pixels.
5135+
5136+
Defaults to :rc:`image.aspect`.
51315137
5132-
interpolation : string, optional, default: None
5133-
Acceptable values are 'none', 'nearest', 'bilinear', 'bicubic',
5138+
interpolation : str, optional
5139+
Supported values are 'none', 'nearest', 'bilinear', 'bicubic',
51345140
'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser',
51355141
'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc',
5136-
'lanczos'
5142+
'lanczos'.
51375143
5138-
If `interpolation` is None, default to rc `image.interpolation`.
5139-
See also the `filternorm` and `filterrad` parameters.
5140-
If `interpolation` is 'none', then no interpolation is performed
5144+
Defaults to :rc:`image.interpolation`.
5145+
5146+
See also the *filternorm* and *filterrad* parameters.
5147+
If *interpolation* is 'none', then no interpolation is performed
51415148
on the Agg, ps and pdf backends. Other backends will fall back to
51425149
'nearest'.
51435150
5144-
norm : `~matplotlib.colors.Normalize`, optional, default: None
5145-
A `~matplotlib.colors.Normalize` instance is used to scale
5146-
a 2-D float `X` input to the (0, 1) range for input to the
5147-
`cmap`. If `norm` is None, use the default func:`normalize`.
5148-
If `norm` is an instance of `~matplotlib.colors.NoNorm`,
5149-
`X` must be an array of integers that index directly into
5150-
the lookup table of the `cmap`.
5151+
norm : `~matplotlib.colors.Normalize`, optional
5152+
If scalar data is used, the Normalize instance scales the
5153+
data values to the canonical colormap range [0,1] for mapping
5154+
to colors. By default, the data range is mapped to the
5155+
colorbar range using linear scaling. This parameter is ignored for
5156+
RGB(A) data.
51515157
5152-
vmin, vmax : scalar, optional, default: None
5153-
`vmin` and `vmax` are used in conjunction with norm to normalize
5154-
luminance data. Note if you pass a `norm` instance, your
5155-
settings for `vmin` and `vmax` will be ignored.
5158+
vmin, vmax : scalar, optional
5159+
When using scalar data and no explicit *norm*, *vmin* and *vmax*
5160+
define the data range that the colormap covers. By default,
5161+
the colormap covers the complete value range of the supplied
5162+
data. *vmin*, *vmax* are ignored if the *norm* parameter is used.
51565163
5157-
alpha : scalar, optional, default: None
5164+
alpha : scalar, optional
51585165
The alpha blending value, between 0 (transparent) and 1 (opaque).
5159-
The ``alpha`` argument is ignored for RGBA input data.
5166+
This parameter is ignored for RGBA input data.
51605167
5161-
origin : ['upper' | 'lower'], optional, default: None
5168+
origin : {'upper', 'lower'}, optional
51625169
Place the [0,0] index of the array in the upper left or lower left
5163-
corner of the axes. If None, default to rc `image.origin`.
5170+
corner of the axes. The convention 'upper' is typically used for
5171+
matrices and images.
5172+
Defaults to :rc:`image.origin`.
5173+
5174+
Note that the vertical axes points upward for 'lower'
5175+
but downward for 'upper'.
51645176
5165-
extent : scalars (left, right, bottom, top), optional, default: None
5166-
The location, in data-coordinates, of the lower-left and
5167-
upper-right corners. If `None`, the image is positioned such that
5168-
the pixel centers fall on zero-based (row, column) indices.
5177+
extent : scalars (left, right, bottom, top), optional
5178+
The bounding box in data coordinates that the image will fill.
5179+
5180+
By default, pixels have a size of (1, 1). They are centered on
5181+
integer coordinates and their center coordinates range from 0 to
5182+
columns-1 horizontally and from 0 to rows-1 vertically.
5183+
5184+
Note that the direction of the vertical axis and thus the default
5185+
values for top and bottom depend on *origin*:
5186+
5187+
- For ``origin == 'upper'`` the default is
5188+
``(-0.5, numcols-0.5, numrows-0.5, -0.5)``.
5189+
- For ``origin == 'lower'`` the default is
5190+
``(-0.5, numcols-0.5, -0.5, numrows-0.5)``.
51695191
51705192
shape : scalars (columns, rows), optional, default: None
5171-
For raw buffer images
5193+
For raw buffer images.
51725194
51735195
filternorm : bool, optional, default: True
51745196
A parameter for the antigrain image resize filter (see the
@@ -5179,17 +5201,26 @@ def imshow(self, X, cmap=None, norm=None, aspect=None,
51795201
that any sum of pixel weights must be equal to 1.0. So, the
51805202
filter function must produce a graph of the proper shape.
51815203
5182-
filterrad : scalar, optional, default: 4.0
5204+
filterrad : float > 0, optional, default: 4.0
51835205
The filter radius for filters that have a radius parameter, i.e.
5184-
when interpolation is one of: 'sinc', 'lanczos' or 'blackman'
5206+
when interpolation is one of: 'sinc', 'lanczos' or 'blackman'.
5207+
5208+
resample : bool, optional
5209+
When *True*, use a full resampling method. When *False*, only
5210+
resample when the output image is larger than the input image.
5211+
5212+
url : str, optional
5213+
Set the url of the created `.AxesImage`. See `.Artist.set_url`.
51855214
51865215
Returns
51875216
-------
51885217
image : `~matplotlib.image.AxesImage`
51895218
51905219
Other Parameters
51915220
----------------
5192-
**kwargs : `~matplotlib.artist.Artist` properties.
5221+
**kwargs : `~matplotlib.artist.Artist` properties
5222+
These parameters are passed on to the constructor of the
5223+
`.AxesImage` artist.
51935224
51945225
See also
51955226
--------
@@ -5201,7 +5232,7 @@ def imshow(self, X, cmap=None, norm=None, aspect=None,
52015232
coordinates. In other words: the origin will coincide with the center
52025233
of pixel (0, 0).
52035234
5204-
Two typical representations are used for RGB images with an alpha
5235+
There are two common representations for RGB images with an alpha
52055236
channel:
52065237
52075238
- Straight (unassociated) alpha: R, G, and B channels represent the
@@ -5227,8 +5258,6 @@ def imshow(self, X, cmap=None, norm=None, aspect=None,
52275258
if im.get_clip_path() is None:
52285259
# image does not already have clipping set, clip to axes patch
52295260
im.set_clip_path(self.patch)
5230-
#if norm is None and shape is None:
5231-
# im.set_clim(vmin, vmax)
52325261
if vmin is not None or vmax is not None:
52335262
im.set_clim(vmin, vmax)
52345263
else:
@@ -7397,7 +7426,7 @@ def matshow(self, Z, **kwargs):
73977426
73987427
Parameters
73997428
----------
7400-
Z : array-like(N, M)
7429+
Z : array-like(M, N)
74017430
The matrix to be displayed.
74027431
74037432
Returns

0 commit comments

Comments
 (0)