Skip to content

boxplot

Makie.boxplot Function
julia
boxplot(x, y; kwargs...)

Draw a Tukey style boxplot. The boxplot has 3 components:

  • a crossbar spanning the interquartile (IQR) range with a midline marking the median

  • an errorbar whose whiskers span range * iqr

  • points marking outliers, that is, data outside the whiskers

Arguments

  • x: positions of the categories

  • y: variables within the boxes

Plot type

The plot type alias for the boxplot function is BoxPlot.

source

Examples

julia
using CairoMakie
categories = rand(1:3, 1000)
values = randn(1000)

boxplot(categories, values)
julia
using CairoMakie
categories = rand(1:3, 1000)
values = randn(1000)
dodge = rand(1:2, 1000)

boxplot(categories, values, dodge = dodge, show_notch = true, color = dodge)

Colors are customizable. The color attribute refers to the color of the boxes, whereas outliercolor refers to the color of the outliers. If not scalars (e.g. :red), these attributes must have the length of the data. If outliercolor is not provided, outliers will have the same color as their box, as shown above.

Note

For all indices corresponding to points within the same box, color (but not outliercolor) must have the same value.

julia
using CairoMakie
categories = rand(1:3, 1000)
values = randn(1000)
dodge = rand(1:2, 1000)

boxplot(categories, values, dodge = dodge, show_notch = true, color = map(d->d==1 ? :blue : :red, dodge) , outliercolor = rand([:red, :green, :blue, :black, :yellow], 1000))

Using statistical weights

julia
using CairoMakie
using Distributions

N = 100_000
x = rand(1:3, N)
y = rand(Uniform(-1, 5), N)

w = pdf.(Normal(), x .- y)

fig = Figure()

boxplot(fig[1,1], x, y)
boxplot(fig[1,2], x, y, weights = w)

fig

Horizontal axis

julia
using CairoMakie
fig = Figure()

categories = rand(1:3, 1000)
values = randn(1000)

ax_vert = Axis(fig[1,1];
    xlabel = "categories",
    ylabel = "values",
    xticks = (1:3, ["one", "two", "three"])
)
ax_horiz = Axis(fig[1,2];
    xlabel="values", # note that x/y still correspond to horizontal/vertical axes respectively
    ylabel="categories",
    yticks=(1:3, ["one", "two", "three"])
)

# Note: same order of category/value, despite different axes
boxplot!(ax_vert, categories, values) # `orientation=:vertical` is default
boxplot!(ax_horiz, categories, values; orientation=:horizontal)

fig

Attributes

color

Defaults to @inherit patchcolor

No docs available.

colormap

Defaults to @inherit colormap

No docs available.

colorrange

Defaults to automatic

No docs available.

colorscale

Defaults to identity

No docs available.

cycle

Defaults to [:color => :patchcolor]

No docs available.

dodge

Defaults to automatic

Vector of Integer (length of data) of grouping variable to create multiple side-by-side boxes at the same x position.

dodge_gap

Defaults to 0.03

Spacing between dodged boxes.

gap

Defaults to 0.2

Shrinking factor, width -> width * (1 - gap).

inspectable

Defaults to @inherit inspectable

No docs available.

marker

Defaults to @inherit marker

No docs available.

markersize

Defaults to @inherit markersize

No docs available.

mediancolor

Defaults to @inherit linecolor

No docs available.

medianlinewidth

Defaults to @inherit linewidth

No docs available.

n_dodge

Defaults to automatic

No docs available.

notchwidth

Defaults to 0.5

Multiplier of width for narrowest width of notch.

orientation

Defaults to :vertical

Orientation of box (:vertical or :horizontal).

outliercolor

Defaults to automatic

No docs available.

outlierstrokecolor

Defaults to @inherit markerstrokecolor

No docs available.

outlierstrokewidth

Defaults to @inherit markerstrokewidth

No docs available.

range

Defaults to 1.5

Multiple of IQR controlling whisker length.

show_median

Defaults to true

Show median as midline.

show_notch

Defaults to false

Draw the notch.

show_outliers

Defaults to true

Show outliers as points.

strokecolor

Defaults to @inherit patchstrokecolor

No docs available.

strokewidth

Defaults to @inherit patchstrokewidth

No docs available.

weights

Defaults to automatic

Vector of statistical weights (length of data). By default, each observation has weight 1.

whiskercolor

Defaults to @inherit linecolor

No docs available.

whiskerlinewidth

Defaults to @inherit linewidth

No docs available.

whiskerwidth

Defaults to 0.0

Multiplier of width for width of T's on whiskers, or :match to match width.

width

Defaults to automatic

Width of the box before shrinking.