ArrayPlot
ArrayPlot[array]
generates a plot in which the values in an array are shown in a discrete array of squares.
Details and Options




- ArrayPlot[array] by default arranges successive rows of array down the page and successive columns across, just as a table or grid would normally be formatted. »
- If array contains 0s and 1s, the 1s will appear as black squares and the 0s as white squares.
- ArrayPlot by default generates grayscale output, in which zero values are shown white, and the maximum positive or negative value is shown black. »
- With an explicit setting for PlotRange, ArrayPlot by default makes the minimum value white and the maximum black.
- The values in array can be quantities with units associated with them.
- The following special entries can be used: »
-
None background color color directive specified color - If array is ragged, shorter rows are treated as padded on the right with background. »
- ArrayPlot has the same options as Graphics, with the following additions and changes:
-
AspectRatio Automatic ratio of height to width ClippingStyle None how to show cells whose values are clipped ColorFunction Automatic how each cell should be colored ColorFunctionScaling True whether to scale the argument to ColorFunction ColorRules Automatic rules for determining colors from values DataRange All the range of and
values to assume
DataReversed False whether to reverse the order of rows Frame Automatic whether to draw a frame around the plot FrameLabel None labels for rows and columns FrameTicks None what ticks to include on the frame MaxPlotPoints Infinity the maximum number of points to include Mesh False whether to draw a mesh MeshStyle GrayLevel[GoldenRatio-1] the style to use for a mesh PlotLegends None legends for datasets PlotRange All the range of values to plot PlotTheme $PlotTheme overall theme for the plot TargetUnits Automatic units to display in the plot - The rules given by ColorRules are applied to the value
of each cell. The rules can involve patterns. »
- If none of the rules in ColorRules apply, then ColorFunction is used to determine the color.
- With the default setting ColorRules->Automatic, an explicit setting ColorFunction->f is used instead of ColorRules.
- With ColorFunctionScaling->False, each value
is supplied as the argument to any function given for ColorFunction. »
- With ColorFunctionScaling->True, the values are scaled to lie between 0 and 1. »
- If the color determined for a particular cell is None, the cell is rendered in the background color.
- If no color is determined for a particular cell, the cell is rendered in a default dark red color.
- With DataReversed->True, the order of rows is reversed, so that rows run from bottom to top, with the last row at the top.
- With the setting FrameTicks->Automatic, ticks are placed at round integers, typically multiples of 5 or 10. »
- With the setting FrameTicks->All, ticks are also placed at the minimum and maximum
and
. »
- In explicit FrameTicks specifications, the tick coordinates are taken to refer to
and
.
- With DataReversed->True, tick values decrease from top to bottom.
- PlotRange->amax specifies that only those
between 0 and amax should be shown. »
- PlotRange->{amin,amax} specifies that
between amin and amax should be shown.
- PlotRange->{{imin,imax},{jmin,jmax}} shows only elements with
and
in the specified ranges. The top‐left element has
,
. With the default setting DataReversed->False,
increases down the page;
increases to the right.
- PlotRange->{ispec,jspec,aspec} shows only elements in the specified ranges of
,
, and value. »
- With the default setting for ColorFunction, PlotRange->{amin,amax} specifies that values from amin to amax should be shown with gray scales varying from white to black.
- Mesh->True draws mesh lines between each cell in the array.
- Mesh->{mi,mj} gives mesh specifications for the
and
directions, respectively.
- With the default setting Frame->Automatic, a frame is drawn only when Mesh->False.
- For purposes of combining with other graphics, the array element
is taken to cover a unit square centered at coordinate position
,
.
- A setting DataRange->{{xmin,xmax},{ymin,ymax}} specifies that the centers of successive cells should be at equally spaced positions between xmin and xmax in the horizontal direction, and ymin and ymax in the vertical direction. With the default setting DataReversed->False,
is centered at {xmin,ymax}.
- With the default setting DataRange->All and DataReversed->False, the array element
will be taken to cover a unit square centered at coordinate position
,
.
- ArrayPlot returns Graphics[Raster[data],opts].
- ArrayPlot works with SparseArray objects. »
Examples
open allclose allBasic Examples (6)
Scope (7)
By default, absolute values go from white to black:
Unknown or symbolic values are shown dark red:
Specify explicit colors for each cell:
Plot a ragged array, padding on the right:
Cells with value None are rendered like the background:
Options (53)
Background (4)
Background is normally visible only around the edges:
The background "shows through" whenever an explicit entry is None:
Background also by default shows through for values outside the plot range:
ClippingStyle overrides background color:
ClippingStyle (3)
ColorFunction (5)
Map values from 0 to 1 onto colors according to Hue:
Use a pure function as the color function:
Use a named color gradient from ColorData:
Show elements with value 1 as black and all others as white:
With ColorFunctionScaling->True, the values are first scaled to lie between 0 and 1:
ColorRules (6)
Specify color rules for explicit values or patterns:
ColorFunction is used if no color rules apply:
The array can contain symbolic values:
Implement a "default color" by adding a rule for _:
Use any patterns in ColorRules:
DataReversed (4)
Epilog (3)
FrameTicks (6)
MaxPlotPoints (1)
Use MaxPlotPoints to limit the number of elements explicitly plotted in each direction:
Mesh (5)
PlotLegends (5)
Generate a legend automatically:
PlotLegends automatically picks up ColorFunction:
Legend uses ColorRules as labels:
Use Placed to place legend outside the plot:
PlotRange (5)
Plot only elements with values up to 3, leaving the rest white:
The first two entries in PlotRange specify the range of rows and columns to include:
With specific plot range {amin,amax}, the colors range from white at amin to black at amax:
Applications (11)
Plot a two-color cellular automaton evolution:
Plot a three-color cellular automaton evolution:
Use colors rather than gray levels:
Plot the imaginary parts of a discrete Fourier transform matrix:
Plot the inverse of a matrix, shading according to absolute value:
Show positive entries as black and others as white:
Plot a table of values of five sine waves in random directions:
Use a special color for non-numeric data:

Properties & Relations (8)
An empty array yields a blank picture:
Grid arranges elements the same way as ArrayPlot:
Raster arranges elements upside down and with colors reversed relative to ArrayPlot:
Make the array be shown the same way as in ArrayPlot:
Use ArrayPlot3D for 3D arrays of data:
Use MatrixPlot when entries have a big range and many different values:
Use ReliefPlot for medical and geographic data:
Use ListDensityPlot for structured or unstructured data sampled from continuous densities:
Use GraphPlot for visualizing adjacency matrices:
Possible Issues (2)
ArrayPlot may not be able to distinguish between large numbers of different values:
Use MatrixPlot instead (or provide a custom ColorFunction):
Entries of very small relative absolute values may not be differentiable from zero:
MatrixPlot scales entries so that entries with small relative absolute values can still be seen:
Neat Examples (2)
Plot the Sin function at integer points:
Text
Wolfram Research (2004), ArrayPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ArrayPlot.html (updated 2020).
BibTeX
BibLaTeX
CMS
Wolfram Language. 2004. "ArrayPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/ArrayPlot.html.
APA
Wolfram Language. (2004). ArrayPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ArrayPlot.html