This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)


generates a plot in which the values in an array are shown in a discrete array of squares.
  • 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 following special entries can be used: »
Nonebackground color
color directivespecified 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:
AspectRatioAutomaticratio of height to width
ClippingStyleNonehow to show cells whose values are clipped
ColorFunctionAutomatichow each cell should be colored
ColorFunctionScalingTruewhether to scale the argument to ColorFunction
ColorRulesAutomaticrules for determining colors from values
DataRangeAllthe range of and values to assume
DataReversedFalsewhether to reverse the order of rows
FrameAutomaticwhether to draw a frame around the plot
FrameLabelNonelabels for rows and columns
FrameTicksNonewhat ticks to include on the frame
MaxPlotPointsInfinitythe maximum number of points to include
MeshFalsewhether to draw a mesh
MeshStyleGrayLevel[GoldenRatio-1]the style to use for a mesh
PixelConstrainedFalsehow to constrain cells to align with pixels
PlotRangeAllthe range of values to plot
  • The rules given by ColorRules are applied to the value of each cell. The rules can involve patterns. »
  • 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->All, ticks are also placed at the minimum and maximum and . »
  • In explicit FrameTicks specifications, the tick coordinates are taken to refer to and .
  • PlotRange specifies that only those between 0 and should be shown. »
  • PlotRange specifies that between and should be shown.
  • PlotRange 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 shows only elements in the specified ranges of , , and value. »
  • With the default setting for ColorFunction, PlotRange specifies that values from to should be shown with gray scales varying from white to black.
  • Mesh->True draws mesh lines between each cell in the array.
  • Mesh gives mesh specifications for the and directions, respectively.
  • For purposes of combining with other graphics, the array element is taken to cover a unit square centered at coordinate position , .
  • A setting DataRange specifies that the centers of successive cells should be at equally spaced positions between and in the horizontal direction, and and in the vertical direction. With the default setting DataReversed->False, is centered at .
  • With the default setting DataRange->All, and DataReversed->False, the array element will be taken to cover a unit square centered at coordinate position , .
  • With PixelConstrained->True, ArrayPlot generates a Raster with an absolute size that aligns cells with pixels, so that each cell is an integer number of pixels across, or each pixel is an integer number of cells across. The cells are each taken to be as large as possible, given the ImageSize setting specified. »
Plot an array of numbers:
Give explicit color directives to specify colors for individual cells:
Specify overall color rules:
Include a mesh:
Plot a table of data:
Use a standard blend as a color function:
Plot an array of numbers:
Click for copyable input
Give explicit color directives to specify colors for individual cells:
Click for copyable input
Specify overall color rules:
Click for copyable input
Include a mesh:
Click for copyable input
Plot a table of data:
Click for copyable input
Use a standard blend as a color function:
Click for copyable input
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:
Plot a sparse array:
Make all cells square:
Use a different aspect ratio:
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:
The default is to show values outside the plot range in the background color:
Show values outside the plot range in red:
Show low values in blue and high values in red:
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:
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:
Rules are used in the order given:
Reverse the order of rows:
The frame ticks give the original row numbers:
Reverse the order of rows and columns:
Reverse the order of columns:
Use Epilog to superimpose other graphics:
The graphics can be translucent:
Epilog uses the standard Graphics coordinate system:
Do not use a frame:
Put frame ticks at round numbers:
Include frame ticks for endpoints:
Frame ticks at specific values:
Frame ticks without a visible frame:
With a mesh included, Frame->True is required for frame ticks to be drawn:
Make the frame invisible:
Use MaxPlotPoints to limit the number of elements explicitly plotted in each direction:
Insert mesh lines between all cells:
Insert 15 row mesh lines and 5 column mesh lines:
Insert mesh lines around the first 10 columns:
Use a sequence of colors for the mesh lines:
Insert mesh lines after the first and second rows:
Default mesh style:
Make the mesh pink:
Use PixelConstrained->True to force cells to line up with screen pixels:
By default cells do not necessarily line up exactly with screen pixels:
Use exactly 1 pixel for each cell:
Use a 2×2 block of pixels for each cell:
Use a 1×2 block of pixels for each cell:
Pick the number of pixels per cell to be as large as possible in the given image size:
Plot all elements:
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 the colors range from white at to black at :
Plot positive elements only:
Plot a 2-color cellular automaton evolution:
Plot a 3-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:
Create a list of array plots:
Plot a table of values of five sine waves in random directions:
Plot image-processed data:
Plot a color map:
Use a special color for non-numeric data:
Digits of powers of 3 in base 2:
Plot a sparse matrix in black and white:
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 MatrixPlot when entries have a big range and many different values:
Or for large sparse matrices:
Use ReliefPlot for medical and geographic data:
Use ListDensityPlot for structured or unstructured data sampled from continuous densities:
Use GraphPlot for visualizing adjacency matrices:
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:
Plot the Sin function at integer points:
New in 5.1 | Last modified in 6