barplot

Makie.barplotFunction
barplot(x, y; kwargs...)

Plots a barplot; y defines the height. x and y should be 1 dimensional.

Attributes

Available attributes and their defaults for Combined{Makie.barplot, T} where T are:

  color        RGBA{Float32}(0.0f0,0.0f0,0.0f0,0.6f0)
  colormap     :viridis
  colorrange   MakieCore.Automatic()
  cycle        [:color => :patchcolor]
  direction    :y
  dodge        MakieCore.Automatic()
  dodge_gap    0.03
  fillto       MakieCore.Automatic()
  inspectable  true
  marker       GeometryBasics.HyperRectangle
  n_dodge      MakieCore.Automatic()
  stack        MakieCore.Automatic()
  strokecolor  :black
  strokewidth  0
  visible      true
  width        MakieCore.Automatic()
  x_gap        0.2
source

Examples

using CairoMakie

f = Figure()
Axis(f[1, 1])

xs = 1:0.2:10
ys = 0.5 .* sin.(xs)

barplot!(xs, ys, color = :red, strokecolor = :black, strokewidth = 1)
barplot!(xs, ys .- 1, fillto = -1, color = xs, strokecolor = :black, strokewidth = 1)

f
using CairoMakie

xs = 1:0.2:10
ys = 0.5 .* sin.(xs)

barplot(xs, ys, width = step(xs), color = :gray85, strokecolor = :black, strokewidth = 1)
using CairoMakie

tbl = (x = [1, 1, 1, 2, 2, 2, 3, 3, 3],
       height = 0.1:0.1:0.9,
       grp = [1, 2, 3, 1, 2, 3, 1, 2, 3],
       grp1 = [1, 2, 2, 1, 1, 2, 1, 1, 2],
       grp2 = [1, 1, 2, 1, 2, 1, 1, 2, 1]
       )
(x = [1, 1, 1, 2, 2, 2, 3, 3, 3], height = 0.1:0.1:0.9, grp = [1, 2, 3, 1, 2, 3, 1, 2, 3], grp1 = [1, 2, 2, 1, 1, 2, 1, 1, 2], grp2 = [1, 1, 2, 1, 2, 1, 1, 2, 1])
barplot(tbl.x, tbl.height,
        stack = tbl.grp,
        color = tbl.grp,
        axis = (xticks = (1:3, ["left", "middle", "right"]),
                title = "Stacked bars"),
        )
barplot(tbl.x, tbl.height,
        dodge = tbl.grp,
        color = tbl.grp,
        axis = (xticks = (1:3, ["left", "middle", "right"]),
                title = "Dodged bars"),
        )
barplot(tbl.x, tbl.height,
        dodge = tbl.grp1,
        stack = tbl.grp2,
        color = tbl.grp,
        axis = (xticks = (1:3, ["left", "middle", "right"]),
                title = "Dodged and stacked bars"),
        )
colors = Makie.wong_colors()

# Figure and Axis
fig = Figure()
ax = Axis(fig[1,1], xticks = (1:3, ["left", "middle", "right"]),
        title = "Dodged bars with legend")

# Plot
barplot!(ax, tbl.x, tbl.height,
        dodge = tbl.grp,
        color = colors[tbl.grp])

# Legend
labels = ["group 1", "group 2", "group 3"]
elements = [PolyElement(polycolor = colors[i]) for i in 1:length(labels)]
title = "Groups"

Legend(fig[1,2], elements, labels, title)

fig