SmoothHistogram
✖
SmoothHistogram
plots a smooth kernel histogram with estimator specification espec.
Details and Options




- SmoothHistogram is also known as nonparametric kernel density estimator or kernel estimator.
- SmoothHistogram plots
for a smoothing kernel
as an estimate of the PDF.
- Data for SmoothHistogram can be given in the following forms:
-
{e1,e2,…} list of elements with or without wrappers <k1y1,k2y2,… > association of keys and lengths TimeSeries[…],EventSeries[…],TemporalData[…] time series, event series, and temporal data WeightedData[…],EventData[…] augmented datasets w[{e1,e2,…},…] wrapper applied to a whole dataset w[{data1,data1,…},…] wrapper applied to all datasets - SmoothHistogram[Tabular[…]cspec] extracts and plots values from the tabular object using the column specification cspec.
- The following forms of column specifications cspec are allowed for plotting tabular data:
-
colx create a smooth histogram for the values in column colx {colx1,colx2,…} create smooth histograms for columns colx1, colx2, … - The estimator specification espec can be of the form bw or {bw,kernel}.
- The specifications for bandwidth bw and kernel are the same as for SmoothKernelDistribution.
- Possible distribution functions dfun include:
-
"PDF" probability density function "Intensity" count density function "CDF" cumulative distribution function "SF" survival function "HF" hazard function "CHF" cumulative hazard function - The form w[data] provides a wrapper w to be applied to the resulting graphics primitives.
- The following wrappers can be used:
-
Annotation[e,label] provide an annotation Button[e,action] define an action to execute when the element is clicked EventHandler[e,…] define a general event handler for the element Highlighted[e,effect] dynamically highlight e with an effect Highlighted[e,Placed[effect,pos]] statically highlight e with an effect at position pos Hyperlink[e,uri] make the element act as a hyperlink PopupWindow[e,cont] attach a popup window to the element StatusArea[e,label] display in the status area when the element is moused over Style[e,opts] show the element using the specified styles Tooltip[e,label] attach an arbitrary tooltip to the element - SmoothHistogram has the same options as Graphics with the following additions and changes: [List of all options]
-
AspectRatio 1/GoldenRatio ratio of width to height Axes True whether to draw axes ClippingStyle None what to draw where curves are clipped ColorFunction Automatic how to determine the coloring of curves ColorFunctionScaling True whether to scale arguments to ColorFunction Filling None filling to insert under each curve FillingStyle Automatic style to use for filling MaxRecursion Automatic the maximum number of recursive subdivisions allowed Mesh None how many mesh points to draw on each curve MeshFunctions {#1&} how to determine the placement of mesh points MeshShading None how to shade regions between mesh points MeshStyle Automatic the style for mesh points Method Automatic methods to use PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotHighlighting Automatic highlighting effect for curves PlotPoints Automatic initial number of sample points PlotRange Automatic range of values to include PlotRangeClipping True whether to clip at the plot range PlotStyle Automatic graphics directives to specify the style for each object PlotTheme $PlotTheme overall theme for the plot RegionFunction (True&) how to determine whether a point should be included ScalingFunctions None how to scale individual coordinates WorkingPrecision MachinePrecision the precision used in internal computations for symbolic distributions - Possible settings for PlotLayout that show single curves in multiple plot panels include:
-
"Column" use separate curves in a column of panels "Row" use separate curves in a row of panels {"Column",k},{"Row",k} use k columns or rows {"Column",UpTo[k]},{"Row",UpTo[k]} use at most k columns or rows - The arguments supplied to RegionFunction, MeshFunctions, and ColorFunction are x and f, where f can be the PDF, CDF, etc. of the distribution.
- Possible highlighting effects for Highlighted and PlotHighlighting include:
-
style highlight the indicated curve "Ball" highlight and label the indicated point in a curve "Dropline" highlight and label the indicated point in a curve with droplines to the axes "XSlice" highlight and label all points along a vertical slice "YSlice" highlight and labels all points along a horizontal slice Placed[effect,pos] statically highlight the given position pos - Highlight position specifications pos include:
-
x,{x} effect at {x,y} with y chosen automatically {x,y} effect at {x,y} {pos1,pos2,…} multiple positions posi - With ScalingFunctions->{sx,sy}, the
coordinate is scaled using sx and the
coordinate is scaled using sy.
-
AlignmentPoint Center the default point in the graphic to align with AspectRatio 1/GoldenRatio ratio of width to height Axes True whether to draw axes AxesLabel None axes labels AxesOrigin Automatic where axes should cross AxesStyle {} style specifications for the axes Background None background color for the plot BaselinePosition Automatic how to align with a surrounding text baseline BaseStyle {} base style specifications for the graphic ClippingStyle None what to draw where curves are clipped ColorFunction Automatic how to determine the coloring of curves ColorFunctionScaling True whether to scale arguments to ColorFunction ContentSelectable Automatic whether to allow contents to be selected CoordinatesToolOptions Automatic detailed behavior of the coordinates tool Epilog {} primitives rendered after the main plot Filling None filling to insert under each curve FillingStyle Automatic style to use for filling FormatType TraditionalForm the default format type for text Frame False whether to put a frame around the plot FrameLabel None frame labels FrameStyle {} style specifications for the frame FrameTicks Automatic frame ticks FrameTicksStyle {} style specifications for frame ticks GridLines None grid lines to draw GridLinesStyle {} style specifications for grid lines ImageMargins 0. the margins to leave around the graphic ImagePadding All what extra padding to allow for labels etc. ImageSize Automatic the absolute size at which to render the graphic LabelStyle {} style specifications for labels MaxRecursion Automatic the maximum number of recursive subdivisions allowed Mesh None how many mesh points to draw on each curve MeshFunctions {#1&} how to determine the placement of mesh points MeshShading None how to shade regions between mesh points MeshStyle Automatic the style for mesh points Method Automatic methods to use PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotHighlighting Automatic highlighting effect for curves PlotLabel None an overall label for the plot PlotPoints Automatic initial number of sample points PlotRange Automatic range of values to include PlotRangeClipping True whether to clip at the plot range PlotRangePadding Automatic how much to pad the range of values PlotRegion Automatic the final display region to be filled PlotStyle Automatic graphics directives to specify the style for each object PlotTheme $PlotTheme overall theme for the plot PreserveImageOptions Automatic whether to preserve image options when displaying new versions of the same graphic Prolog {} primitives rendered before the main plot RegionFunction (True&) how to determine whether a point should be included RotateLabel True whether to rotate y labels on the frame ScalingFunctions None how to scale individual coordinates Ticks Automatic axes ticks TicksStyle {} style specifications for axes ticks WorkingPrecision MachinePrecision the precision used in internal computations for symbolic distributions

List of all options




Examples
open allclose allBasic Examples (3)Summary of the most common use cases

https://wolfram.com/xid/0c0oui2qzzg66-b3m84i


https://wolfram.com/xid/0c0oui2qzzg66-o7jrwn

Plot the probability density function of the data:

https://wolfram.com/xid/0c0oui2qzzg66-usgcjb

https://wolfram.com/xid/0c0oui2qzzg66-ynj6e

Cumulative distribution function:

https://wolfram.com/xid/0c0oui2qzzg66-ms1psj


https://wolfram.com/xid/0c0oui2qzzg66-mrrcwo


https://wolfram.com/xid/0c0oui2qzzg66-t3qrax


https://wolfram.com/xid/0c0oui2qzzg66-xidk3c

Scope (30)Survey of the scope of standard use cases
Data (11)

https://wolfram.com/xid/0c0oui2qzzg66-fppj24

Plot different distribution functions:

https://wolfram.com/xid/0c0oui2qzzg66-fd1f9l

PlotRange is selected automatically:

https://wolfram.com/xid/0c0oui2qzzg66-dl3n9y

https://wolfram.com/xid/0c0oui2qzzg66-rawkfx

Use PlotRange to focus on areas of interest:

https://wolfram.com/xid/0c0oui2qzzg66-pkua49

Non-real data points are ignored:

https://wolfram.com/xid/0c0oui2qzzg66-lqjnxh

https://wolfram.com/xid/0c0oui2qzzg66-s0irj4

Specify the number of times to refine the curve:

https://wolfram.com/xid/0c0oui2qzzg66-2yalfn


https://wolfram.com/xid/0c0oui2qzzg66-xen594

https://wolfram.com/xid/0c0oui2qzzg66-zrp2jf

Override the default tooltips:

https://wolfram.com/xid/0c0oui2qzzg66-k43m8e

https://wolfram.com/xid/0c0oui2qzzg66-qfodye

Use any object in the tooltip:

https://wolfram.com/xid/0c0oui2qzzg66-79qqzp

Use PopupWindow to provide additional drilldown information:

https://wolfram.com/xid/0c0oui2qzzg66-36o6ng

https://wolfram.com/xid/0c0oui2qzzg66-yo4nmv

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

https://wolfram.com/xid/0c0oui2qzzg66-vy1wh8

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

https://wolfram.com/xid/0c0oui2qzzg66-wkbmwq


https://wolfram.com/xid/0c0oui2qzzg66-rgbns3


https://wolfram.com/xid/0c0oui2qzzg66-ycg14g

The weights in WeightedData are ignored:

https://wolfram.com/xid/0c0oui2qzzg66-76w2jt

Tabular Data (1)

https://wolfram.com/xid/0c0oui2qzzg66-cxnvul

Create a smooth histogram for the city mileage:

https://wolfram.com/xid/0c0oui2qzzg66-ljsi47

Compare the distributions of city and highway mileages:

https://wolfram.com/xid/0c0oui2qzzg66-jvoexk

Vary the bandwidth to affect the smoothness of the histograms:

https://wolfram.com/xid/0c0oui2qzzg66-6tucc3

Bandwidth and Kernel (9)
Automatically select the bandwidth to use:

https://wolfram.com/xid/0c0oui2qzzg66-bey9d5
More data yields better approximations to the underlying distribution:

https://wolfram.com/xid/0c0oui2qzzg66-f5b1m

Explicitly specify the bandwidth:

https://wolfram.com/xid/0c0oui2qzzg66-mld2m6
Larger bandwidths yield smoother estimates:

https://wolfram.com/xid/0c0oui2qzzg66-ek9dr9

Specify bandwidths in units of standard deviation:

https://wolfram.com/xid/0c0oui2qzzg66-d270so
Use bandwidths of and
of the standard deviation:

https://wolfram.com/xid/0c0oui2qzzg66-g1jltg

Allow bandwidth to vary adaptively with local density:

https://wolfram.com/xid/0c0oui2qzzg66-t9pfn
Vary the local sensitivity from (none) to
(full):

https://wolfram.com/xid/0c0oui2qzzg66-o4cf4i

Vary the initial bandwidth for an adaptive estimate:

https://wolfram.com/xid/0c0oui2qzzg66-bugu6z
Specify an initial bandwidth of and
respectively:

https://wolfram.com/xid/0c0oui2qzzg66-mhjjq7

https://wolfram.com/xid/0c0oui2qzzg66-d6wy4h

Use any of several automatic bandwidth selection methods:

https://wolfram.com/xid/0c0oui2qzzg66-i3icnm

https://wolfram.com/xid/0c0oui2qzzg66-igqicu

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

https://wolfram.com/xid/0c0oui2qzzg66-jzjv4g

https://wolfram.com/xid/0c0oui2qzzg66-oijjnl

Specify any one of several kernel functions:

https://wolfram.com/xid/0c0oui2qzzg66-iuq9xu

https://wolfram.com/xid/0c0oui2qzzg66-nn4ei5

Define the kernel function as a pure function:

https://wolfram.com/xid/0c0oui2qzzg66-i8w57

https://wolfram.com/xid/0c0oui2qzzg66-hhjpj5

Presentation (9)
Multiple datasets are automatically colored to be distinct:

https://wolfram.com/xid/0c0oui2qzzg66-jtr7wy

https://wolfram.com/xid/0c0oui2qzzg66-bivltz

Provide explicit styling to different sets:

https://wolfram.com/xid/0c0oui2qzzg66-z9g3kp

https://wolfram.com/xid/0c0oui2qzzg66-mbhcn8

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

https://wolfram.com/xid/0c0oui2qzzg66-ue06gn


https://wolfram.com/xid/0c0oui2qzzg66-0odcty


https://wolfram.com/xid/0c0oui2qzzg66-jsuhnx

Use the default tooltip for the data:

https://wolfram.com/xid/0c0oui2qzzg66-yj9fvo

https://wolfram.com/xid/0c0oui2qzzg66-yez1l8

Provide an interactive tooltip for the data:

https://wolfram.com/xid/0c0oui2qzzg66-2zxbcq

https://wolfram.com/xid/0c0oui2qzzg66-rz9dp5


https://wolfram.com/xid/0c0oui2qzzg66-wxemyr

https://wolfram.com/xid/0c0oui2qzzg66-f78ys


https://wolfram.com/xid/0c0oui2qzzg66-mysnz7

Style the curve segments between mesh points:

https://wolfram.com/xid/0c0oui2qzzg66-kw8u97

Options (79)Common values & functionality for each option
AspectRatio (4)
By default, SmoothHistogram uses a fixed height to width ratio for the plot:

https://wolfram.com/xid/0c0oui2qzzg66-icqfb9

Make the height the same as the width with AspectRatio1:

https://wolfram.com/xid/0c0oui2qzzg66-glbke

AspectRatioAutomatic determines the ratio from the plot ranges:

https://wolfram.com/xid/0c0oui2qzzg66-eg8osb

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

https://wolfram.com/xid/0c0oui2qzzg66-cohwd

https://wolfram.com/xid/0c0oui2qzzg66-smzznw

Axes (4)

https://wolfram.com/xid/0c0oui2qzzg66-ip2l0n

Use AxesFalse to turn off axes:

https://wolfram.com/xid/0c0oui2qzzg66-mttx6y

Use AxesOrigin to specify where the axes intersect:

https://wolfram.com/xid/0c0oui2qzzg66-dsfmga

Turn each axis on individually:

https://wolfram.com/xid/0c0oui2qzzg66-hvnp55

AxesLabel (4)
AxesOrigin (2)
AxesStyle (4)
Change the style for the axes:

https://wolfram.com/xid/0c0oui2qzzg66-mejqg

Specify the style of each axis:

https://wolfram.com/xid/0c0oui2qzzg66-eamjao

Use different styles for the ticks and the axes:

https://wolfram.com/xid/0c0oui2qzzg66-nsm6mu

Use different styles for the labels and the axes:

https://wolfram.com/xid/0c0oui2qzzg66-h4w5g6

ClippingStyle (4)
Omit clipped regions of the plot:

https://wolfram.com/xid/0c0oui2qzzg66-0qcqac

Show the clipped regions like the rest of the curve:

https://wolfram.com/xid/0c0oui2qzzg66-5ck1a8

Show the clipped regions with red lines:

https://wolfram.com/xid/0c0oui2qzzg66-81jvaq

Show the clipped regions as red and thick:

https://wolfram.com/xid/0c0oui2qzzg66-c3n8bs

ColorFunction (5)
Color by scaled and
coordinates:

https://wolfram.com/xid/0c0oui2qzzg66-u20z4a

Color with a named color scheme:

https://wolfram.com/xid/0c0oui2qzzg66-n3g70b

Fill with the color used for the curve:

https://wolfram.com/xid/0c0oui2qzzg66-lwp

ColorFunction has higher priority than PlotStyle for coloring the curve:

https://wolfram.com/xid/0c0oui2qzzg66-p0uon

Use Automatic in MeshShading to use ColorFunction:

https://wolfram.com/xid/0c0oui2qzzg66-6xbe8y

ColorFunctionScaling (2)
Filling (6)
Use symbolic or explicit values:

https://wolfram.com/xid/0c0oui2qzzg66-insrrc

By default, overlapping fills combine using opacity:

https://wolfram.com/xid/0c0oui2qzzg66-b8

Fill between curve 1 and the axis:

https://wolfram.com/xid/0c0oui2qzzg66-ud5


https://wolfram.com/xid/0c0oui2qzzg66-i7e

Fill between datasets using a particular style:

https://wolfram.com/xid/0c0oui2qzzg66-ba0u8a

Use different styles above and below the filling level:

https://wolfram.com/xid/0c0oui2qzzg66-zigo27

FillingStyle (4)

https://wolfram.com/xid/0c0oui2qzzg66-7z0v53


https://wolfram.com/xid/0c0oui2qzzg66-mbbu1v

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

https://wolfram.com/xid/0c0oui2qzzg66-yuyy95

Use a variable filling style obtained from a ColorFunction:

https://wolfram.com/xid/0c0oui2qzzg66-x70

ImageSize (7)
Use named sizes such as Tiny, Small, Medium and Large:

https://wolfram.com/xid/0c0oui2qzzg66-m9jf2i

Specify the width of the plot:

https://wolfram.com/xid/0c0oui2qzzg66-ba52nz

Specify the height of the plot:

https://wolfram.com/xid/0c0oui2qzzg66-cdn0h2

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

https://wolfram.com/xid/0c0oui2qzzg66-ehec8r

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

https://wolfram.com/xid/0c0oui2qzzg66-hyro77

Setting AspectRatioFull will fill the available space:

https://wolfram.com/xid/0c0oui2qzzg66-gb7q0s

Use maximum sizes for the width and height:

https://wolfram.com/xid/0c0oui2qzzg66-eshyu

Use ImageSizeFull to fill the available space in an object:

https://wolfram.com/xid/0c0oui2qzzg66-0aoea

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

https://wolfram.com/xid/0c0oui2qzzg66-bbrf9d

MaxRecursion (2)

https://wolfram.com/xid/0c0oui2qzzg66-nlb

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

https://wolfram.com/xid/0c0oui2qzzg66-dgkh6a

Mesh (3)
Use 20 mesh levels evenly spaced in the direction:

https://wolfram.com/xid/0c0oui2qzzg66-gfbk92

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

https://wolfram.com/xid/0c0oui2qzzg66-cbjjqo

Specify and mesh levels and styles in the direction:

https://wolfram.com/xid/0c0oui2qzzg66-dft9a9

MeshFunctions (2)
MeshShading (6)
Alternate red and blue segments of equal width in the direction:

https://wolfram.com/xid/0c0oui2qzzg66-gky3tn

Use None to remove segments:

https://wolfram.com/xid/0c0oui2qzzg66-vr08fl

MeshShading can be used with PlotStyle:

https://wolfram.com/xid/0c0oui2qzzg66-fap4gj

MeshShading has higher priority than PlotStyle for styling the curve:

https://wolfram.com/xid/0c0oui2qzzg66-kblnl4

Use PlotStyle for some segments by setting MeshShading to Automatic:

https://wolfram.com/xid/0c0oui2qzzg66-ojnwt3

MeshShading can be used with ColorFunction:

https://wolfram.com/xid/0c0oui2qzzg66-54kv4p

MeshStyle (4)
Color the mesh the same color as the plot:

https://wolfram.com/xid/0c0oui2qzzg66-0w1c10

Use a red mesh in the direction:

https://wolfram.com/xid/0c0oui2qzzg66-e2f67g

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

https://wolfram.com/xid/0c0oui2qzzg66-j9hdji

Use big, red mesh points in the direction:

https://wolfram.com/xid/0c0oui2qzzg66-7w0q6r

PerformanceGoal (2)
PlotLayout (3)
Place each histogram in a separate panel using shared axes:

https://wolfram.com/xid/0c0oui2qzzg66-e05390

Use a row instead of a column:

https://wolfram.com/xid/0c0oui2qzzg66-kxivfq


https://wolfram.com/xid/0c0oui2qzzg66-fa7eqd


https://wolfram.com/xid/0c0oui2qzzg66-bgjbfl


https://wolfram.com/xid/0c0oui2qzzg66-xm7aar

PlotPoints (1)
PlotRange (2)
PlotRange is automatically calculated:

https://wolfram.com/xid/0c0oui2qzzg66-5wokru

https://wolfram.com/xid/0c0oui2qzzg66-rkxjft


https://wolfram.com/xid/0c0oui2qzzg66-f2cym4

SmoothHistogram automatically chooses the plotting domain:

https://wolfram.com/xid/0c0oui2qzzg66-6j2f71

https://wolfram.com/xid/0c0oui2qzzg66-xipf9s

Plot over the middle 90% of the data:

https://wolfram.com/xid/0c0oui2qzzg66-d3g0or

PlotStyle (6)
Use different style directives:

https://wolfram.com/xid/0c0oui2qzzg66-le4jhi

By default, different styles are chosen for multiple curves:

https://wolfram.com/xid/0c0oui2qzzg66-fopx6f

Explicitly specify the style for different curves:

https://wolfram.com/xid/0c0oui2qzzg66-5zl554

PlotStyle can be combined with ColorFunction:

https://wolfram.com/xid/0c0oui2qzzg66-rjb3ix

PlotStyle can be combined with MeshShading:

https://wolfram.com/xid/0c0oui2qzzg66-o1bmr5

MeshStyle by default uses the same style as PlotStyle:

https://wolfram.com/xid/0c0oui2qzzg66-0b39nk

Applications (4)Sample problems that can be solved with this function
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:

https://wolfram.com/xid/0c0oui2qzzg66-okxxo
Multiple modes are readily detected for a variety of bandwidths:

https://wolfram.com/xid/0c0oui2qzzg66-dt3m4e

https://wolfram.com/xid/0c0oui2qzzg66-lk11mb

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:

https://wolfram.com/xid/0c0oui2qzzg66-dr2xmy

https://wolfram.com/xid/0c0oui2qzzg66-dcxma8

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

https://wolfram.com/xid/0c0oui2qzzg66-nv7et

Visually compare data to a parametric model of its density:

https://wolfram.com/xid/0c0oui2qzzg66-28z3x

https://wolfram.com/xid/0c0oui2qzzg66-re1cz


https://wolfram.com/xid/0c0oui2qzzg66-nf5s8b

Smooth histogram for the slice distribution of a random process:

https://wolfram.com/xid/0c0oui2qzzg66-dw4106

https://wolfram.com/xid/0c0oui2qzzg66-bb9elg

Smooth histogram for several slices of a process:

https://wolfram.com/xid/0c0oui2qzzg66-bvqha

https://wolfram.com/xid/0c0oui2qzzg66-xxb

Properties & Relations (5)Properties of the function, and connections to other functions
SmoothHistogram effectively plots the distribution function of SmoothKernelDistribution:

https://wolfram.com/xid/0c0oui2qzzg66-r9xh2x

https://wolfram.com/xid/0c0oui2qzzg66-rf9cb4

Use Histogram to plot the data in discrete bins:

https://wolfram.com/xid/0c0oui2qzzg66-hjt9j0

https://wolfram.com/xid/0c0oui2qzzg66-h0e9a6


https://wolfram.com/xid/0c0oui2qzzg66-dchbr0

Use SmoothDensityHistogram and SmoothHistogram3D for bivariate data:

https://wolfram.com/xid/0c0oui2qzzg66-uzqufc

https://wolfram.com/xid/0c0oui2qzzg66-g8qcz1

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

https://wolfram.com/xid/0c0oui2qzzg66-nbn1n3

https://wolfram.com/xid/0c0oui2qzzg66-f84fhv

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

https://wolfram.com/xid/0c0oui2qzzg66-ev75i

https://wolfram.com/xid/0c0oui2qzzg66-bs5zy7

https://wolfram.com/xid/0c0oui2qzzg66-bk0bgr

Possible Issues (1)Common pitfalls and unexpected behavior
Using SmoothHistogram with multivariate data will plot multiple curves:

https://wolfram.com/xid/0c0oui2qzzg66-tchyhh


https://wolfram.com/xid/0c0oui2qzzg66-q9ahnp

Neat Examples (1)Surprising or curious use cases
A visual explanation of kernel density estimation:

https://wolfram.com/xid/0c0oui2qzzg66-evjj9w

https://wolfram.com/xid/0c0oui2qzzg66-evlkx6

https://wolfram.com/xid/0c0oui2qzzg66-cqz8jz

https://wolfram.com/xid/0c0oui2qzzg66-f68i2u

https://wolfram.com/xid/0c0oui2qzzg66-kkhbg0
The estimate results from mixing the kernel functions placed at each data point:

https://wolfram.com/xid/0c0oui2qzzg66-f1o2iw

Wolfram Research (2010), SmoothHistogram, Wolfram Language function, https://reference.wolfram.com/language/ref/SmoothHistogram.html (updated 2025).
Text
Wolfram Research (2010), SmoothHistogram, Wolfram Language function, https://reference.wolfram.com/language/ref/SmoothHistogram.html (updated 2025).
Wolfram Research (2010), SmoothHistogram, Wolfram Language function, https://reference.wolfram.com/language/ref/SmoothHistogram.html (updated 2025).
CMS
Wolfram Language. 2010. "SmoothHistogram." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/SmoothHistogram.html.
Wolfram Language. 2010. "SmoothHistogram." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/SmoothHistogram.html.
APA
Wolfram Language. (2010). SmoothHistogram. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SmoothHistogram.html
Wolfram Language. (2010). SmoothHistogram. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SmoothHistogram.html
BibTeX
@misc{reference.wolfram_2025_smoothhistogram, author="Wolfram Research", title="{SmoothHistogram}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/SmoothHistogram.html}", note=[Accessed: 17-May-2025
]}
BibLaTeX
@online{reference.wolfram_2025_smoothhistogram, organization={Wolfram Research}, title={SmoothHistogram}, year={2025}, url={https://reference.wolfram.com/language/ref/SmoothHistogram.html}, note=[Accessed: 17-May-2025
]}