violin

Makie.violinFunction
violin(x, y; kwargs...)

Draw a violin plot.

Arguments

  • x: positions of the categories
  • y: variables whose density is computed

Keywords

  • orientation=:vertical: orientation of the violins (:vertical or :horizontal)
  • width=0.8: width of the violin
  • show_median=true: show median as midline
  • side=:both: specify :left or :right to only plot the violin on one side
  • datalimits: specify values to trim the violin. Can be a Tuple or a Function (e.g. datalimits=extrema)
source

Examples

using CairoMakie

xs = rand(1:3, 1000)
ys = randn(1000)

violin(xs, ys)
using CairoMakie

xs = rand(1:3, 1000)
ys = map(xs) do x
    return x == 1 ? randn() : x == 2 ? 0.5 * randn() : 5 * rand()
end

violin(xs, ys, datalimits = extrema)
using CairoMakie

N = 1000
xs = rand(1:3, N)
dodge = rand(1:2, N)
side = rand([:left, :right], N)
color = @. ifelse(side == :left, :orange, :teal)
ys = map(side) do s
    return s == :left ? randn() : rand()
end

violin(xs, ys, dodge = dodge, side = side, color = color)
using CairoMakie

N = 1000
xs = rand(1:3, N)
side = rand([:left, :right], N)
color = map(xs, side) do x, s
    colors = s == :left ? [:red, :orange, :yellow] : [:blue, :teal, :cyan]
    return colors[x]
end
ys = map(side) do s
    return s == :left ? randn() : rand()
end

violin(xs, ys, side = side, color = color)