creates an array of density histograms by plotting the data columns against each other in pairs.


plots density histograms with bins specified by bspec.

Details and Options

  • PairwiseDensityHistogram is a form of plot matrix.
  • It plots high-dimensional data by creating a grid of individual plots of just two data columns at a time.
  • The plot compares column yi={y1i,y2i,,ymi} against column yj={y1j,y2j,,ymj} by plotting a density histogram of the points {ykj,yki} in panel {i,j}.
  • The panel at row and column shows how the data columns yi and yj relate to each other. There are different types of features of the data that can be identified from those panels. Once the feature has been identified, it can also be quantified by further analysis of the data.
  • Correlation and covariance are measures of dependence between variables:
  • Use Correlation and Covariance to do detailed analysis of correlation.
  • The density of points is a measure of the number of points per unit area. The panels in PairwiseDensityHistogram effectively show the two-dimensional marginal densities:
  • Use PairwiseDensityHistogram and PairwiseSmoothDensityHistogram to more directly visualize the densities.
  • Clusters are groups of similar points, indicating categories:
  • The following bin specifications bspec can be given:
  • nuse n bins
    {w}use bins of width w
    {min,max,w}use bins of width w from min to max
    {{b1,b2,}}use bins [b1,b2),[b2,b3),
    Automaticdetermine bin widths automatically
    "name"use a named binning method
    {"Log",bspec}apply binning bspec on log-transformed data
    fbapply fb to get an explicit bin specification {b1,b2,}
    {spec1,spec2,,specn}give different specifications for each data column yi
  • Possible named binning methods include:
  • "Sturges"compute the number of bins based on the length of data
    "Scott"asymptotically minimize the mean square error
    "FreedmanDiaconis"twice the interquartile range divided by the cube root of sample size
    "Knuth"balance likelihood and prior probability of a piecewise uniform model
    "Wand"one-level recursive approximate Wand binning
  • The function fb in DensityHistogram[data,fb] is applied to a list of all {xi,yi} and should return an explicit bin list {{bx1,bx2,},{by1,by2,}}. In DensityHistogram[data,{fx,fy}], fx is applied to the list of xi, and fy to the list of yi.
  • PairwiseDensityHistogram takes the same options as Graphics, with the following changes and additions:
  • AspectRatio 1ratio of height to width for each panel
    Background Nonebackground to use for each plot
    FrameAutomaticwhether to draw frames around each panel
    FrameTicksAutomaticwhether to label frame edges with ticks and labels
    GridLinesAutomaticwhether to include gridlines in panels
    GridLinesStyleAutomaticstyle for gridlines
    HeaderAlignmentCenterhorizontal and vertical alignments of headers
    HeaderBackground Automaticbackground colors to use for headers
    HeaderDisplayFunctionAutomaticfunction to use to format headers
    Headers Automaticlabels to use for each data column yi
    HeaderStyleNonestyles to use for headers
    PerformanceGoal$PerformanceGoalaspects of performance to try to optimize
    PlotHighlightingAutomatichighlighting effect for points
    PlotLayout Automatichow to arrange the panels
    PlotLegendsAutomaticlegends for data
    PlotMarkersNonemarkers to use to indicate each point
    PlotStyleAutomaticgraphics directives to determine styles of points
    PlotTheme $PlotThemeoverall theme for the plot
    Spacings Automatichorizontal and vertical spacings
  • PlotLayout can have the following settings:
  • "Descending"data columns going down and to the right
    "Ascending"data columns going up and to the right
    "LowerHalfMatrix"lower half of the descending layout
    "UpperHalfMatrix"upper half of the ascending layout
  • Headers specifies the labels to use for each column in the data, and will generally be displayed above each column and after each row in the final plot.
  • Possible settings include:
  • Noneleave the plot columns and rows unlabeled
    Automaticautomatically label columns and rows
    Allalways include column and row labels
    "Indexed"number the columns and rows 1, 2, , n
    {lbl1,lbl2,,lbln}use the given labels lbli
  • HeaderAlignment determines how data column labels are aligned with regard to the plot columns and rows.
  • HeaderAlignment can take the following forms:
  • Centercenter the labels in the header positions
    {h,v}separate horizontal and vertical alignments within the header position
    {cols,rows}use col for plot columns and row for plot rows
  • HeaderBackground and HeaderStyle can take the following forms:
  • Noneuse ambient styling
    styuse the style sty for all headers
    {sty1,sty2,,styn}use the given styles styi for successive headers
    {cols,rows}use col for plot columns and row for plot rows
  • HeaderDisplayFunction determines how headers are displayed.
  • Possible settings are:
  • Automaticautomatic formatting
    Noneuse unprocessed labels
  • The arguments to ColorFunction are yi1,yi2,,yin. By default, the color function arguments are scaled per data column to be between 0 and 1.
  • Use ColorFunctionScalingNone to use unscaled values, or ColorFunctionScaling{cfsc1,cfsc2,} to selectively scale column values.
  • Possible settings for PlotHighlighting include:
  • Automaticautomatically highlight positions in the panels
    Nonedisable interactive highlighting


open allclose all

Basic Examples  (3)

Create an array of smooth density histograms from data with labeled columns:

Compare all columns in a dataset:

Provide header names for the data:

Scope  (3)

Data  (3)

Plot datasets:

Plot arrays of values:

Specify how many histogram bins to use for the axes:

Options  (26)

AspectRatio  (2)

By default, PairwiseDensityHistogram uses an equal height-to-width ratio:

Use a fixed height-to-width ratio:

Axes  (2)

By default,Frame is used instead of Axes :

Use AxesTrue to turn on axes:

Background  (2)

By default, PairwiseDensityHistogram has a white background:

Set a background color:

ColorFunction  (3)

Color based on the scaled counts:

Color by scaled coordinates:

Color with a named color scheme:

Headers  (3)

By default, PairwiseDensityHistogram does not label headers:

Number the columns for unlabeled data:

Provide header names for the columns:

HeaderBackground  (2)

By default, PairwiseDensityHistogram uses a white header background:

Set a header background color:

ImageSize  (6)

Use named sizes such as Tiny, Small, Medium, and Large:

Specify the width of the plot:

Specify the height of the plot:

Allow the width and height to be up to a certain size:

Specify the width and height for a graphic, padding with space if necessary:

Setting AspectRatioFull will fill the available space:

Use maximum sizes for the width and height:

Use ImageSizeFull to fill the available space in an object:

PlotLayout  (3)

Switch the orientation of the diagonal elements:

Show plots below the diagonal:

Only show plots above the diagonal:

PlotTheme  (2)

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

Change color scheme:

Spacings  (1)

Change the space between the plots:

Wolfram Research (2023), PairwiseDensityHistogram, Wolfram Language function,


Wolfram Research (2023), PairwiseDensityHistogram, Wolfram Language function,


Wolfram Language. 2023. "PairwiseDensityHistogram." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2023). PairwiseDensityHistogram. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_pairwisedensityhistogram, author="Wolfram Research", title="{PairwiseDensityHistogram}", year="2023", howpublished="\url{}", note=[Accessed: 21-April-2024 ]}


@online{reference.wolfram_2024_pairwisedensityhistogram, organization={Wolfram Research}, title={PairwiseDensityHistogram}, year={2023}, url={}, note=[Accessed: 21-April-2024 ]}