plots a smooth kernel histogram for the PDF of the values xi.


plots a smooth kernel histogram with estimator specification espec.


plots the distribution function dfun.


plots smooth kernel histograms for multiple datasets datai.

Details and Options


open allclose all

Basic Examples  (3)

Plot a dataset:

Plot several datasets:

Plot the probability density function of the data:

Cumulative distribution function:

Survival function:

Hazard function:

Cumulative hazard function:

Scope  (29)

Data  (11)

Plot multiple datasets:

Plot different distribution functions:

PlotRange is selected automatically:

Use PlotRange to focus on areas of interest:

Non-real data points are ignored:

Specify the number of times to refine the curve:

Use wrappers on datasets:

Override the default tooltips:

Use any object in the tooltip:

Use PopupWindow to provide additional drilldown information:

Numeric values in an association are used as the y coordinates:

Numeric keys and values in an association are used as the x and y coordinates:

Plot time series directly:

The weights in WeightedData are ignored:

Bandwidth and Kernel  (9)

Automatically select the bandwidth to use:

More data yields better approximations to the underlying distribution:

Explicitly specify the bandwidth:

Larger bandwidths yield smoother estimates:

Specify bandwidths in units of standard deviation:

Use bandwidths of and of the standard deviation:

Allow bandwidth to vary adaptively with local density:

Vary the local sensitivity from (none) to (full):

Vary the initial bandwidth for an adaptive estimate:

Specify an initial bandwidth of and respectively:

Use any of several automatic bandwidth selection methods:

Silverman's method is used by default for bandwidth selection:

The PDFs are equivalent:

Specify any one of several kernel functions:

Define the kernel function as a pure function:

Presentation  (9)

Multiple datasets are automatically colored to be distinct:

Provide explicit styling to different sets:

Use rows and columns of individual plots to show multiple sets:

Add labels:

Use the default tooltip for the data:

Provide an interactive tooltip for the data:

Create filled plots:

Create an overlay mesh:

Style the curve segments between mesh points:

Options  (79)

AspectRatio  (4)

By default, SmoothHistogram uses a fixed height to width ratio for the plot:

Make the height the same as the width with AspectRatio1:

AspectRatioAutomatic determines the ratio from the plot ranges:

AspectRatioFull adjusts the height and width to tightly fit inside other constructs:

Axes  (4)

By default, axes are drawn:

Use AxesFalse to turn off axes:

Use AxesOrigin to specify where the axes intersect:

Turn each axis on individually:

AxesLabel  (4)

No axes labels are drawn by default:

Place a label on the axis:

Specify axes labels:

Use units as labels:

AxesOrigin  (2)

The position of the axes is determined automatically:

Specify an explicit origin for the axes:

AxesStyle  (4)

Change the style for the axes:

Specify the style of each axis:

Use different styles for the ticks and the axes:

Use different styles for the labels and the axes:

ClippingStyle  (4)

Omit clipped regions of the plot:

Show the clipped regions like the rest of the curve:

Show the clipped regions with red lines:

Show the clipped regions as red and thick:

ColorFunction  (5)

Color by scaled and coordinates:

Color with a named color scheme:

Fill with the color used for the curve:

ColorFunction has higher priority than PlotStyle for coloring the curve:

Use Automatic in MeshShading to use ColorFunction:

ColorFunctionScaling  (2)

Color the line based on scaled value:

Color the line based on unscaled value:

Filling  (6)

Use symbolic or explicit values:

By default, overlapping fills combine using opacity:

Fill between curve 1 and the axis:

Fill between curves 1 and 2:

Fill between datasets using a particular style:

Use different styles above and below the filling level:

FillingStyle  (4)

Use different fill colors:

Fill with opacity 0.5 orange:

Fill with red when the first curve is below the second, and blue when the second is below the first:

Use a variable filling style obtained from a ColorFunction:

ImageSize  (7)

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:

Specify the image size as a fraction of the available space:

MaxRecursion  (2)

The default sampling mesh:

Each level of MaxRecursion will subdivide the initial mesh into a finer mesh:

Mesh  (3)

Use 20 mesh levels evenly spaced in the direction:

Use an explicit list of values for the mesh in the direction:

Specify and mesh levels and styles in the direction:

MeshFunctions  (2)

Use a mesh evenly spaced in the and directions:

Show five mesh levels in the direction (red) and 10 in the direction (blue):

MeshShading  (6)

Alternate red and blue segments of equal width in the direction:

Use None to remove segments:

MeshShading can be used with PlotStyle:

MeshShading has higher priority than PlotStyle for styling the curve:

Use PlotStyle for some segments by setting MeshShading to Automatic:

MeshShading can be used with ColorFunction:

MeshStyle  (4)

Color the mesh the same color as the plot:

Use a red mesh in the direction:

Use a red mesh in the direction and a blue mesh in the direction:

Use big, red mesh points in the direction:

PerformanceGoal  (2)

Generate a higher-quality plot:

Emphasize performance, possibly at the cost of quality:

PlotLayout  (3)

Place each histogram in a separate panel using shared axes:

Use a row instead of a column:

Use multiple columns or rows:

Prefer full columns or rows:

PlotPoints  (1)

Use more initial points to get a smoother curve:

PlotRange  (2)

PlotRange is automatically calculated:

Show the full range:

SmoothHistogram automatically chooses the plotting domain:

Plot over the middle 90% of the data:

PlotStyle  (6)

Use different style directives:

By default, different styles are chosen for multiple curves:

Explicitly specify the style for different curves:

PlotStyle can be combined with ColorFunction:

PlotStyle can be combined with MeshShading:

MeshStyle by default uses the same style as PlotStyle:

PlotTheme  (2)

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

Change the color scheme:

Applications  (4)

The velocities in km/sec of 82 galaxies from six well-separated conic sections of an unfilled survey of the Corona Borealis region. Multimodality in such surveys is evidence for voids and superclusters in the far universe:

Multiple modes are readily detected for a variety of bandwidths:

Observe the density over many possible bandwidths and choose one that captures important features of the data while smoothing out noise. For presentation, it is best to choose a bandwidth that slightly undersmooths the data:

Choosing 6.0 seems to capture the important features of the snowfall data:

Visually compare data to a parametric model of its density:

Smooth histogram for the slice distribution of a random process:

Smooth histogram for several slices of a process:

Properties & Relations  (5)

SmoothHistogram effectively plots the distribution function of SmoothKernelDistribution:

Use Histogram to plot the data in discrete bins:

Use SmoothDensityHistogram and SmoothHistogram3D for bivariate data:

Additional points will result in a better approximation of the underlying distribution:

As the bandwidth approaches infinity, the estimate approaches the shape of the kernel:

Possible Issues  (1)

Using SmoothHistogram with multivariate data will plot multiple curves:

Neat Examples  (1)

A visual explanation of kernel density estimation:

The estimate results from mixing the kernel functions placed at each data point:

Wolfram Research (2010), SmoothHistogram, Wolfram Language function, (updated 2023).


Wolfram Research (2010), SmoothHistogram, Wolfram Language function, (updated 2023).


Wolfram Language. 2010. "SmoothHistogram." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023.


Wolfram Language. (2010). SmoothHistogram. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_smoothhistogram, author="Wolfram Research", title="{SmoothHistogram}", year="2023", howpublished="\url{}", note=[Accessed: 23-June-2024 ]}


@online{reference.wolfram_2024_smoothhistogram, organization={Wolfram Research}, title={SmoothHistogram}, year={2023}, url={}, note=[Accessed: 23-June-2024 ]}