Skip to content

Charts Overview

Vizb folds the same x/y/z dimension model into every chart type — you describe your data once with a group pattern (e.g. -p x,y,z for CSV or -p x/y/z for benchmarks), and each selected renderer interprets it in parallel. One pipeline, six different shapes. Use --charts (or -c) to control which renderers are bundled into the output file.

Bar Chart

Compare values across categories. Supports linear and log scale, grouped 2D bars, and WebGL bar3D for z-axis data.

Line Chart

Track trends across X-axis values. One line per Y-series in 2D; switches to WebGL line3D with a z-axis.

Scatter Chart

Plot individual points in 2D or 3D. Grouped categories or auto-value from all-numeric columns.

Pie Chart

Show proportional distribution. Scales from one pie (1D) to two side-by-side (2D) to three pies (3D).

Radar Chart

Multi-dimensional comparison on a spoke diagram. Spokes change meaning across 1D/2D/3D — great for profiles and benchmarks.

Heatmap

X × Y colored grid — works with or without a z-axis. With z, cell value sums z-series and cell color blends the z palette.

Every vizb chart is driven by up to three chart dimensions: X-axis (x), Y-axis (y), and Z-axis (z). You declare them with the -p flag:

Pattern Dimensionality What you get
-p x 1D — X only X is the only axis
-p x,y (CSV) or -p x/y (bench) 2D — X + Y Y subdivides each X point into groups or series
-p x,y,z (CSV) or -p x/y/z (bench) 3D — X + Y + Z Z adds a third dimension; bar/line go WebGL, pie/radar add a third slice set, heatmap blends Z into cell color

Pie and radar have no cartesian axes, but the same -p pattern governs how many series or spokes they render:

Chart 1D (-p x) 2D (-p x,y / -p x/y) 3D (-p x,y,z / -p x/y/z)
Bar Single bar series over X Grouped bars, one series per Y value; or auto-value (all-numeric) WebGL bar3D — Z stacked per (X, Y) cell; or auto-value continuous 3D
Line Single line over X One line per Y value across X; or auto-value (all-numeric) WebGL line3D — sparse points per Z; or auto-value continuous 3D
Scatter One point per X One series per Y value across X; or auto-value (all-numeric) WebGL scatter3D — points per Z; or auto-value continuous 3D
Pie One pie (X = slices) Two pies side-by-side (By X / By Y) Three pies (By X / By Y / By Z)
Radar One polygon, X = spokes, value = stat total One polygon per X, Y = spokes, legend = X One polygon per Z, X = data points, Y = spokes
Heatmap n/a — needs at least X + Y Matrix X × Y, single-series gradient Same matrix; cell = Σ z, color blends z palette

The n axis is the 4th dimension. Unlike x/y/z — which add visual structure inside a chart — n splits data into named groups, each rendered as its own chart panel. Every unique name value becomes a separate chart.

Pattern Result
-p n/x One chart per name, each a 1D view
-p n/x/y One chart per name, each a 2D view
-p n/x/y/z One chart per name, each a 3D view — maximum dimensionality

For CSV, -g maps columns to pattern slots positionally:

Terminal window
# 4D: name=algo, x=input_size, y=variant, z=run_type
vizb data.csv -g algo,input_size,variant,run_type -p n,x,y,z -c bar -o out.html

Most settings apply to every chart type. The exceptions are scale (log), which only affects cartesian charts, and 3d-rotate (3D auto-spin), which only applies when bar, line, or scatter renders in WebGL mode.

Setting bar line scatter pie radar heatmap
sort / --sort
labels / --show-labels
swap (axis reorder)
scale log
3d-rotate (3D auto-rotate) ✓ 3D only ✓ 3D only ✓ 3D only

To override a setting for a single chart type without affecting the others, use the --chart <type>:key=val syntax:

Terminal window
# Turn on labels for bar only
vizb data.csv -g category --chart bar:labels=true -o output.html
# Enable sort on radar, keep others unsorted
vizb data.csv -g category,metric -p x,y -c bar,radar --chart radar:sort=asc -o output.html

See Commands: root for the full flag reference.

The --charts flag (short: -c) controls which renderers are compiled into the output HTML. The default is:

bar,line,pie

Add scatter, heatmap, or radar explicitly when you need them: -c bar,line,pie,scatter,heatmap,radar.

Each chart renderer ships as a separate compressed chunk; only the ones you select are embedded. This keeps the output small when you only need one or two shapes:

Terminal window
# Radar and bar only
vizb data.csv -g category,metric -p x,y -c bar,radar -o output.html
# Single chart — smallest possible output
vizb data.csv -g category -c bar -o output.html