hist
hist(values; bins = 15, normalization = :none)
Plot a histogram of
values
.
bins
can be an
Int
to create that number of equal-width bins over the range of
values
. Alternatively, it can be a sorted iterable of bin edges. The histogram can be normalized by setting
normalization
. Possible values are:
-
:pdf
: Normalize by sum of weights and bin sizes. Resulting histogram has norm 1 and represents a PDF. -
:density
: Normalize by bin sizes only. Resulting histogram represents count density of input and does not have norm 1. Will not modify the histogram if it already represents a density (h.isdensity == 1
). -
:probability
: Normalize by sum of weights only. Resulting histogram represents the fraction of probability mass for each bin and does not have norm 1. -
:none
: Do not normalize.
Statistical weights can be provided via the
weights
keyword argument.
The following attributes can move the histogram around, which comes in handy when placing multiple histograms into one plot:
-
offset = 0.0
: adds an offset to every value -
fillto = 0.0
: defines where the bar starts -
scale_to = nothing
: allows to scale all values to a certain height -
flip = false
: flips all values
Color can either be:
-
a vector of
bins
colors -
a single color
-
:values
, to color the bars with the values from the histogram
Attributes
Available attributes and their defaults for
MakieCore.Combined{Makie.hist, T} where T
are:
bar_labels "nothing"
bins 15
color RGBA{Float32}(0.0f0,0.0f0,0.0f0,0.6f0)
cycle [:color => :patchcolor]
fillto MakieCore.Automatic()
flip_labels_at Inf
label_color :black
label_font "TeX Gyre Heros Makie"
label_formatter Makie.bar_label_formatter
label_offset 5
label_size 20
normalization :none
offset 0.0
over_background_color MakieCore.Automatic()
over_bar_color MakieCore.Automatic()
scale_to "nothing"
weights MakieCore.Automatic()
Examples
using GLMakie
data = randn(1000)
f = Figure()
hist(f[1, 1], data, bins = 10)
hist(f[1, 2], data, bins = 20, color = :red, strokewidth = 1, strokecolor = :black)
hist(f[2, 1], data, bins = [-5, -2, -1, 0, 1, 2, 5], color = :gray)
hist(f[2, 2], data, normalization = :pdf)
f
Histogram with labels
You can use all the same arguments as
barplot
:
using CairoMakie
data = randn(1000)
hist(data, normalization = :pdf, bar_labels = :values,
label_formatter=x-> round(x, digits=2), label_size = 15,
strokewidth = 0.5, strokecolor = (:black, 0.5), color = :values)
Moving histograms
With
scale_to
, and
offset
, one can put multiple histograms into the same plot. Note, that offset automatically sets fillto, to move the whole barplot. Also, one can use a negative
scale_to
amount to flip the histogram.
using CairoMakie
fig = Figure()
ax = Axis(fig[1, 1])
for i in 1:5
hist!(ax, randn(1000), scale_to=-0.6, offset=i, direction=:x)
end
fig
Using statistical weights
using CairoMakie, Distributions
N = 100_000
x = rand(Uniform(-5, 5), N)
w = pdf.(Normal(), x)
fig = Figure()
hist(fig[1,1], x)
hist(fig[1,2], x, weights = w)
fig
These docs were autogenerated using Makie: v0.17.13, GLMakie: v0.6.13, CairoMakie: v0.8.13, WGLMakie: v0.6.13