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


generates a plot that gives a visual representation of the values of elements in a matrix.
  • MatrixPlot[m] by default arranges successive rows of m down the page and successive columns across, just as a matrix would normally be formatted.
  • MatrixPlot by default displays zero values as white, with negative values tending to be bluish and positive values reddish.
ClippingStyleAutomatichow to show clipped values
FrameTruewhether to draw a frame around the plot
FrameTicksAllwhat ticks to include on the frame
MaxPlotPointsAutomaticthe maximum number of points to include
  • PlotRange->r specifies that only those between -r and +r should be shown.
  • With the default setting ColorFunctionScaling->True, scaling is done based on a mixture of relative value and ranking for each matrix element. The final scaled value always lies between 0 and 1, with scaled value 0.5 corresponding to matrix element value 0.
  • With the default setting MaxPlotPoints->Automatic, sufficiently large or sparse matrices are downsampled so that their structure is visible in the plot generated by MatrixPlot.
Plot a matrix as an array of colors:
Plot a matrix using only black and white:
Plot the structure of dense matrices:
Plot the structure of sparse matrices:
Plot a matrix as an array of colors:
Click for copyable input
Plot a matrix using only black and white:
Click for copyable input
Plot the structure of dense matrices:
Click for copyable input
Plot the structure of sparse matrices:
Click for copyable input
Click for copyable input
Plot a dense matrix:
Plot a sparse matrix:
Plot a non-rectangular "matrix", with missing entries transparent:
Negative entries are shown in cool colors, positive entries in warm colors, and zeros in white:
Entries near zero are shown in a shade of gray; entries very close to zero may be shown in white:
Complex numbers are shown based on their real parts:
None is interpreted as a missing value and displayed using transparency:
Symbolic values other than None are shown in dark red:
Colors are shown darker for very sparse matrices to make entries more visible:
Show a matrix with irrational and arbitrary-precision entries:
Add labels:
Give explicit color directives to specify colors for individual cells:
Use a named color gradient:
Use a black and white color function to highlight the sparse structure of a matrix:
Use a custom color function with blue colors for negative values and red colors for positive values:
Use ColorRules to color different values:
Use both ColorRules and ColorFunction to color elements, giving priority to ColorRules:
Use Mesh and MeshStyle to provide an overlay mesh:
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:
By default the clipped values are colored vibrant red and blue:
Use explicit colors for the clipped values:
Use None to indicate no style, showing the background in those cells:
Use an explicit color function:
Use a pure function as the color function:
Use a named color gradient from ColorData:
If the color function is undefined for some value, then a dark red is substituted:
In this case the color is defined for all the values:
For complex matrices the real part is used for the color function:
By default a nonlinear scaling of entries is used to differentiate values over a wide range:
With ColorFunctionScaling->False, entries are not scaled:
ColorFunctionScaling has no effect on ColorRules:
Specify color rules for explicit values or patterns:
Implement a "default color" by adding a rule for :
The array can contain symbolic values:
Use any patterns in ColorRules:
Rules are used in the order given:
ColorRules can be used together with ColorFunction and has higher priority:
Reverse the order of columns:
Do not use a frame:
Do not include frame ticks:
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:
By default, automatic methods are used to downsample large and/or sparse matrices:
Without downsampling, the entries are less visible:
Explicitly set downsampling values for MaxPlotPoints:
The visual appearance in the resulting plot is also affected by the choice of ColorFunction:
Insert mesh lines between all cells:
Insert 19 row mesh lines and 1 column mesh line:
Use a sequence of colors for the mesh lines:
Make the mesh pink:
Plot all elements:
Plot only elements with values from 0 to 1; clip the rest:
The first two entries in PlotRange specify the range of rows and columns to include:
Plot a sparse matrix:
Zoom in to the top-left diagonal block:
Plot the imaginary parts of a discrete Fourier transform matrix:
Plot a table of values of five sine waves in random directions:
MatrixPlot colors negative entries with cool colors and positive entries with warm colors:
ArrayPlot uses gray scale:
MatrixPlot rescales the matrix entries to differentiate values over a wide range:
Without rescaling, fewer elements can be differentiated:
Use ReliefPlot for medical and geographic data:
Use ListDensityPlot for structured or unstructured data sampled from continuous densities:
Use GraphPlot for visualizing adjacency matrices:
Using MaxPlotPoints may result in artifacts not actually present in the original data.
With a small MaxPlotPoints option value, all entries become nonzero:
Entries very close to zero may be treated as zero:
Plot the Sin function at integer points:
New in 6