Bar Chart
Compare values across categories. Supports linear and log scale, grouped 2D bars, and WebGL bar3D for z-axis data.
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:
# 4D: name=algo, x=input_size, y=variant, z=run_typevizb data.csv -g algo,input_size,variant,run_type -p n,x,y,z -c bar -o out.htmlMost 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:
# Turn on labels for bar onlyvizb data.csv -g category --chart bar:labels=true -o output.html
# Enable sort on radar, keep others unsortedvizb data.csv -g category,metric -p x,y -c bar,radar --chart radar:sort=asc -o output.htmlSee 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,pieAdd 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:
# Radar and bar onlyvizb data.csv -g category,metric -p x,y -c bar,radar -o output.html
# Single chart — smallest possible outputvizb data.csv -g category -c bar -o output.html