MatrixPlot

MatrixPlot[m]

generates a plot that gives a visual representation of the values of elements in a matrix.

Details and Options

  • 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.
  • MatrixPlot has the same options as ArrayPlot, with the following changes:
  • 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 aij 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.
  • MatrixPlot works with SparseArray objects.

Examples

open allclose all

Basic Examples  (4)

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:

Scope  (19)

Data  (10)

Plot a dense matrix:

Plot a sparse matrix:

Plot a nonrectangular "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:

Presentation  (9)

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:

Use a plot theme:

Options  (39)

AspectRatio  (2)

Make all cells square:

Use a different aspect ratio:

Background  (2)

Background is normally visible only around the edges:

The background "shows through" whenever an explicit entry is None:

ClippingStyle  (3)

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:

ColorFunction  (5)

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:

ColorFunctionScaling  (4)

By default, a nonlinear scaling of entries is used to differentiate values over a wide range:

With ColorFunctionScaling->False, entries are not scaled:

With ColorFunctionScaling->False, MatrixPlot behaves like ArrayPlot:

ColorFunctionScaling has no effect on ColorRules:

ColorRules  (6)

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:

DataReversed  (1)

Reverse the order of columns:

Frame  (1)

Do not use a frame:

FrameTicks  (5)

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:

MaxPlotPoints  (1)

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:

Mesh  (3)

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:

MeshStyle  (1)

Make the mesh pink:

PlotRange  (3)

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:

PlotTheme  (2)

Use a theme with simple ticks and grid lines in a bright color scheme:

Turn off the grid lines:

Applications  (3)

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:

Properties & Relations  (5)

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:

Possible Issues  (2)

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:

Neat Examples  (1)

Plot the Sin function at integer points:

Introduced in 2007
 (6.0)
 |
Updated in 2014
 (10.0)