11  Ranking

Bar charts and their variants β€” comparing quantities across categories.

(ns napkinsketch-book.ranking
  (:require
   ;; Shared datasets for these docs
   [napkinsketch-book.datasets :as data]
   ;; Kindly β€” notebook rendering protocol
   [scicloj.kindly.v4.kind :as kind]
   ;; Napkinsketch β€” composable plotting
   [scicloj.napkinsketch.api :as sk]))
(def sales {:product [:widget :gadget :gizmo :doohickey]
            :revenue [120 340 210 95]})

Bar Chart

Count occurrences of a categorical column.

(-> data/iris
    (sk/lay-bar :species))
speciessetosaversicolorvirginica05101520253035404550

Colored Bar Chart

Grouped (dodged) bars β€” count by day, colored by smoking status.

(-> data/tips
    (sk/lay-bar :day {:color :smoker}))
daysmokerNoYesSunSatThurFri01020304050

Stacked Bar Chart

Same data, stacked instead of dodged.

(-> data/tips
    (sk/lay-stacked-bar :day {:color :smoker}))
daysmokerNoYesSunSatThurFri0102030405060708090

Stacked Bar (Proportions)

100% stacked bars β€” shows proportions instead of counts.

(-> data/penguins
    (sk/lay-stacked-bar-fill :island {:color :species}))
islandspeciesAdelieChinstrapGentooTorgersenBiscoeDream0.00.10.20.30.40.50.60.70.80.91.0

Horizontal Bar Chart

Flip the bar chart for horizontal orientation.

(-> data/iris
    (sk/lay-bar :species)
    (sk/coord :flip))
species05101520253035404550setosaversicolorvirginica

Horizontal Colored Bars

Colored bars, flipped.

(-> data/tips
    (sk/lay-bar :day {:color :time})
    (sk/coord :flip))
daytimeDinnerLunch0102030405060708090SunSatThurFri

Value Bar

Pre-computed y values (no counting).

(-> sales
    (sk/lay-value-bar :product :revenue))
revenueproduct:widget:gadget:gizmo:doohickey050100150200250300350

Value Bar (Horizontal)

Flip for horizontal orientation.

(-> sales
    (sk/lay-value-bar :product :revenue)
    (sk/coord :flip))
productrevenue050100150200250300350:widget:gadget:gizmo:doohickey

Lollipop

Stem + dot β€” a lighter alternative to bar charts.

(-> sales
    (sk/lay-lollipop :product :revenue))
revenueproduct:widget:gadget:gizmo:doohickey050100150200250300350

Lollipop (Horizontal)

Flipped for horizontal orientation.

(-> sales
    (sk/lay-lollipop :product :revenue)
    (sk/coord :flip))
productrevenue050100150200250300350:widget:gadget:gizmo:doohickey

What’s Next

source: notebooks/napkinsketch_book/ranking.clj