@@ -5596,62 +5596,73 @@ def _pcolorargs(funcname, *args, **kw):
55965596 @docstring .dedent_interpd
55975597 def pcolor (self , * args , ** kwargs ):
55985598 """
5599- Create a pseudocolor plot of a 2-D array .
5599+ Create a pseudocolor plot with a non-regular rectangular grid .
56005600
5601- Call signatures::
5601+ Call signature::
5602+
5603+ pcolor([X, Y,] C, **kwargs)
5604+
5605+ *X* and *Y* can be used to specify the corners of the quadrilaterals.
56025606
5603- pcolor(C, **kwargs)
5604- pcolor(X, Y, C, **kwargs)
5607+ .. hint::
56055608
5606- pcolor can be very slow for large arrays; consider
5607- using the similar but much faster
5608- :func:`~matplotlib.pyplot.pcolormesh` instead.
5609+ ``pcolor()`` can be very slow for large arrays. In most
5610+ cases you should use the the similar but much faster
5611+ `~.Axes.pcolormesh` instead. See there for a discussion of the
5612+ differences.
56095613
56105614 Parameters
56115615 ----------
56125616 C : array_like
5613- An array of color values.
5617+ A scalar 2-D array. The values will be color-mapped .
56145618
56155619 X, Y : array_like, optional
5616- If given, specify the (x, y) coordinates of the colored
5617- quadrilaterals; the quadrilateral for ``C[i,j]`` has corners at::
5620+ The coordinates of the quadrilateral corners. The quadrilateral
5621+ for ``C[i,j]`` has corners at::
56185622
5619- (X[i, j], Y[i, j]),
5620- (X[i, j+1], Y[i, j+1]),
5621- (X[i+1, j], Y[i+1, j]),
5622- (X[i+1, j+1], Y[i+1, j+1])
5623-
5624- Ideally the dimensions of ``X`` and ``Y`` should be one greater
5625- than those of ``C``; if the dimensions are the same, then the last
5626- row and column of ``C`` will be ignored.
5623+ (X[i+1, j], Y[i+1, j]) (X[i+1, j+1], Y[i+1, j+1])
5624+ +--------+
5625+ | C[i,j] |
5626+ +--------+
5627+ (X[i, j], Y[i, j]) (X[i, j+1], Y[i, j+1]),
56275628
56285629 Note that the column index corresponds to the
5629- x-coordinate, and the row index corresponds to y; for
5630- details, see the :ref:`Grid Orientation
5631- <axes-pcolor-grid-orientation>` section below.
5630+ x-coordinate, and the row index corresponds to y. For
5631+ details, see the :ref:`Notes <axes-pcolor-grid-orientation>`
5632+ section below.
56325633
5633- If either or both of ``X`` and ``Y`` are 1-D arrays or column
5634- vectors, they will be expanded as needed into the appropriate 2-D
5635- arrays, making a rectangular grid .
5634+ The dimensions of *X* and *Y* should be one greater than those of
5635+ *C*. Alternatively, *X*, *Y* and *C* may have equal dimensions, in
5636+ which case the last row and column of *C* will be ignored .
56365637
5637- cmap : `~matplotlib.colors.Colormap`, optional, default: None
5638- If `None`, default to rc settings.
5638+ If *X* and/or *Y* are 1-D arrays or column vectors they will be
5639+ expanded as needed into the appropriate 2-D arrays, making a
5640+ rectangular grid.
5641+
5642+ cmap : str or `~matplotlib.colors.Colormap`, optional
5643+ A Colormap instance or registered colormap name. The colormap
5644+ maps the *C* values to colors. Defaults to :rc:`image.cmap`.
56395645
5640- norm : `matplotlib.colors.Normalize`, optional, default: None
5641- An instance is used to scale luminance data to (0, 1).
5642- If `None`, defaults to :func:`normalize`.
5646+ norm : `~matplotlib.colors.Normalize`, optional
5647+ The Normalize instance scales the data values to the canonical
5648+ colormap range [0, 1] for mapping to colors. By default, the data
5649+ range is mapped to the colorbar range using linear scaling.
56435650
56445651 vmin, vmax : scalar, optional, default: None
5645- ``vmin`` and ``vmax`` are used in conjunction with ``norm`` to
5646- normalize luminance data. If either is `None`, it is autoscaled to
5647- the respective min or max of the color array ``C``. If not `None`,
5648- ``vmin`` or ``vmax`` passed in here override any pre-existing
5649- values supplied in the ``norm`` instance.
5652+ The colorbar range. If *None*, suitable min/max values are
5653+ automatically chosen by the `~.Normalize` instance (defaults to
5654+ the respective min/max values of *C* in case of the default linear
5655+ scaling).
5656+
5657+ edgecolors : {'none', None, color, color sequence}, optional
5658+ The color of the edges. Defaults to 'none'. Possible values:
5659+
5660+ - 'none' or '': No edge.
5661+ - *None*: :rc:`patch.edgecolor` will be used. Note that currently
5662+ :rc:`patch.force_edgecolor` has to be True for this to work.
5663+ - An mpl color or sequence of colors will set the edge color.
56505664
5651- edgecolors : {None, 'none', color, color sequence}
5652- If None, the rc setting is used by default.
5653- If 'none', edges will not be visible.
5654- An mpl color or sequence of colors will set the edge color.
5665+ The singular form *edgecolor* works as an alias.
56555666
56565667 alpha : scalar, optional, default: None
56575668 The alpha blending value, between 0 (transparent) and 1 (opaque).
@@ -5666,72 +5677,54 @@ def pcolor(self, *args, **kwargs):
56665677 Other Parameters
56675678 ----------------
56685679 antialiaseds : bool, optional, default: False
5669- The default `` antialiaseds`` is False if the default
5670- `` edgecolors="none"`` is used. This eliminates artificial lines
5680+ The default * antialiaseds* is False if the default
5681+ * edgecolors*\ ="none" is used. This eliminates artificial lines
56715682 at patch boundaries, and works regardless of the value of alpha.
5672- If `` edgecolors`` is not "none", then the default `` antialiaseds``
5683+ If * edgecolors* is not "none", then the default * antialiaseds*
56735684 is taken from :rc:`patch.antialiased`, which defaults to True.
5674- Stroking the edges may be preferred if `` alpha`` is 1, but will
5685+ Stroking the edges may be preferred if * alpha* is 1, but will
56755686 cause artifacts otherwise.
56765687
56775688 **kwargs :
5678-
5679- Any unused keyword arguments are passed along to the
5680- `~matplotlib.collections.PolyCollection` constructor:
5689+ Additionally, the following arguments are allowed. They are passed
5690+ along to the `~matplotlib.collections.PolyCollection` constructor:
56815691
56825692 %(PolyCollection)s
56835693
56845694 See Also
56855695 --------
56865696 pcolormesh : for an explanation of the differences between
56875697 pcolor and pcolormesh.
5698+ imshow : If *X* and *Y* are each equidistant, `~.Axes.imshow` can be a
5699+ faster alternative.
56885700
56895701 Notes
56905702 -----
5691- .. _axes-pcolor-grid-orientation:
5692-
5693- ``X``, ``Y`` and ``C`` may be masked arrays. If either C[i, j], or one
5694- of the vertices surrounding C[i,j] (``X`` or ``Y`` at [i, j], [i+1, j],
5695- [i, j+1], [i+1, j+1]) is masked, nothing is plotted.
5696-
5697- The grid orientation follows the MATLAB convention: an array ``C`` with
5698- shape (nrows, ncolumns) is plotted with the column number as ``X`` and
5699- the row number as ``Y``, increasing up; hence it is plotted the way the
5700- array would be printed, except that the ``Y`` axis is reversed. That
5701- is, ``C`` is taken as ``C`` (y, x).
5702-
5703- Similarly for :func:`meshgrid`::
57045703
5705- x = np.arange(5)
5706- y = np.arange(3)
5707- X, Y = np.meshgrid(x, y)
5704+ **Masked arrays**
57085705
5709- is equivalent to::
5706+ *X*, *Y* and *C* may be masked arrays. If either ``C[i, j]``, or one
5707+ of the vertices surrounding ``C[i,j]`` (*X* or *Y* at
5708+ ``[i, j], [i+1, j], [i, j+1], [i+1, j+1]``) is masked, nothing is
5709+ plotted.
57105710
5711- X = array([[0, 1, 2, 3, 4],
5712- [0, 1, 2, 3, 4],
5713- [0, 1, 2, 3, 4]])
5714-
5715- Y = array([[0, 0, 0, 0, 0],
5716- [1, 1, 1, 1, 1],
5717- [2, 2, 2, 2, 2]])
5718-
5719- so if you have::
5720-
5721- C = rand(len(x), len(y))
5711+ .. _axes-pcolor-grid-orientation:
57225712
5723- then you need to transpose C::
5713+ **Grid orientation**
57245714
5725- pcolor(X, Y, C.T)
5715+ The grid orientation follows the standard matrix convention: An array
5716+ *C* with shape (nrows, ncolumns) is plotted with the column number as
5717+ *X* and the row number as *Y*.
57265718
5727- or::
5719+ **Handling of pcolor() end-cases**
57285720
5729- pcolor(C.T)
5721+ ``pcolor()`` displays all columns of *C* if *X* and *Y* are not
5722+ specified, or if *X* and *Y* have one more column than *C*.
5723+ If *X* and *Y* have the same number of columns as *C* then the last
5724+ column of *C* is dropped. Similarly for the rows.
57305725
5731- MATLAB :func:`pcolor` always discards the last row and column of ``C``,
5732- but Matplotlib displays the last row and column if ``X`` and ``Y`` are
5733- not specified, or if ``X`` and ``Y`` have one more row and column than
5734- ``C``.
5726+ Note: This behavior is different from MATLAB's ``pcolor()``, which
5727+ always discards the last row and column of *C*.
57355728 """
57365729
57375730 if not self ._hold :
0 commit comments