Skip to content

sprezzature-figures

Figures

How to get a figure

Ask our tool:

  • "make a figure"
  • "chart this"
  • "treemap"
  • "candlestick"
  • "heatmap"
  • "sankey"
  • "SHAP plot"
  • "render this diagram"

Every figure below carries a kit: a zip with the data as a CSV, the generator that reads it, and the interactive SVG it writes. Two Python files, no build step, and for most of them nothing to install at all. The five glyph maps sit on the maps page and the two animated Gapminder generators on the Hans ROSLING tribute; with the 160 below, that is the whole 168-kind catalogue.

Simulates the default figure through a reader's eyes (normal vision for zoom).

Comparison & ranking

Rank and contrast categories: bars, lollipops, dumbbells and their kin.

Dual axis : Two units, one frame, the caveat printed.
Bar chart : Ranked categories, one house color each.
Grouped bar : Categories split by a second variable.
Lollipop : A lighter bar chart for ranked values.
Dumbbell chart : Two points per row joined by a segment showing change.
Slope chart : Before and after, two points.
Bullet graph : Measure bar, target tick and qualitative bands.
Pareto chart : Sorted bars, a cumulative line and an 80% mark for the vital few.
Radar / spider : Many criteria on radial axes.
Variable-width columns : Height, width and area each carry a variable.
Column range : High-low intervals per category; temperature ranges, confidence intervals.
Population pyramid : Age and sex, back to back.
Parliament hemicycle : One dot per seat, coloured by party, with a majority line.
Waterfall : A running total, step by step.

Time series & trends

How a value moves over an ordered axis: lines, areas and event timelines.

Sparklines : Twenty metrics, one screen.
Small multiples : One panel each, one scale for all.
Line chart : A value over an ordered axis, one line per series.
Multi-line : Two series over time with points.
Area chart : How a whole made of categories evolves over time.
Stacked area : Composition of series over time.
Step / stairs : A value that changes at discrete points.
Horizon chart : Banded, folded area for dense time series.
Streamgraph : Stacked areas on a wiggle baseline over time.
Candlestick (open-high-low-close) : Open-high-low-close price bars.
Bollinger bands : A price series with a 20-day average and ±2σ bands, a squeeze then a breakout.
Connected scatter : A trajectory through points ordered by time, with year labels and end markers.
Calendar heatmap : A value per day across weeks.
Timeline : Dated milestones on a spine with alternating callouts.
Gantt : A schedule, start to end.
Spectrogram : Time x frequency x power heatmap of a clip.
Difference chart : Two series with the gap shaded bicolour.
ACF correlogram : How far back a series remembers, and how much of that is direct.
Seasonal decomposition : The climb, the year's shape, and the month that is neither.
Forecast fan : A forecast drawn with the width of its own uncertainty.
Control chart : A process behaving, until it stops.
Missing-data matrix : Where the holes are, and whether they fall together.
Cohort retention : Who stays, by when they arrived.
Permutation importance : What the model loses when a column is shuffled.
SHAP waterfall : One prediction, taken apart.
SHAP beeswarm : Every row's explanation, and when the colour lies.
Partial dependence and ICE : The average effect, and the rows that disagree with it.
Causal DAG : The graph, and what it says to adjust for.
OHLC bars : The session as a bar, and what the axis closes up.
Bump chart : Rank over time, and what rank throws away.
Stem plot : A discrete signal, and where its floor is.
Event raster : One tick per event, and which rows burst after the moment.
3-D path : A trajectory, with depth you can read.
3-D vector field : Where length alone cannot be trusted.
Area funnel : Where the area is the quantity, not the height.
Progress against pace : How far along, against how far along you should be.
Cause and effect : Causes grouped, weighted, and marked for evidence.
Table : Drawn so a column can actually be compared.
Triangulated surface : Scattered points, with the mesh and the holes left visible.
Triangulated contour : Iso-lines over scattered samples, dashed where no sample is near.
Voxels : Filled cells of a 3-D grid, counting the ones they hide.

Distributions

The shape, spread and skew of one variable: histograms, boxes, densities.

Point plot : The estimate, its interval, and its n.
2-D histogram : Count the points, do not draw them.
Histogram : A single distribution, binned.
Box plot : Spread, quartiles and outliers per group.
Violin plot : KDE density per group, mirrored.
Density (KDE) : A smoothed distribution curve.
Rug + density : Raw values as ticks beneath a density curve.
Ridgeline / joyplot : Stacked, overlapping densities, one per group.
Strip plot : Every point, jittered by group.
Wilkinson dot plot : One dot per observation, binned and stacked.
Letter-value (boxen) : Nested quantile boxes for large samples.
ECDF : empirical cumulative distribution function (ECDF), stepped.
Error bars : A mean with its uncertainty interval.
Bell curve : Normal distribution with configurable mean and standard deviation.
Q-Q plot : Is this sample normal?
P-P plot : Empirical vs theoretical CDF probabilities.
Beeswarm : One dot per observation, nudged apart so width reads as density.

Correlation & multivariate

Relationships between two or more measures: scatters, pair matrices, projections.

Scatter : Two variables, colored by group.
Bubble : Four variables at once.
Hexbin density : Many points binned into hexagons.
Joint plot : Scatter with marginal histograms.
Pair plot / SPLOM : A scatterplot matrix of several variables.
Parallel coordinates : Many variables on shared axes.
Andrews curves : Each row a Fourier-series curve, coloured by class.
RadViz : Points spring-embedded inside a ring of features.
Regression + confidence-interval (CI) band : A fitted line with a 95% confidence band.
Residual plot : Residuals vs fitted, with a zero rule.
Gaussian process : Posterior mean, 95% band and sampled functions.
Convex hull : A grouped scatter with a hull around each cluster.
Ternary plot : Three parts summing to 100% on a triangle.
2-D density contours : Isocontour rings over a raw bivariate scatter.

Matrices & heatmaps

Values on a grid, colour-encoded: heatmaps, clustermaps, confusion and correlation.

Contour : A field, with its altitudes written on.
Annotated heatmap : A value matrix with per-cell labels.
Clustermap : Heatmap reordered by hierarchical clustering.
Interpolated heatmap : A smoothly interpolated value field (imshow).
Correlation matrix : Which variables move together.
Confusion matrix : Where a classifier is right and wrong.
Interruption matrix : Who cuts whom, at a glance (hover the crosshair).

Part-to-whole & composition

Slices and nested parts of a whole: donuts, treemaps, waffles, flows into stages.

Donut : A compact part-to-whole.
Pie : A whole, read at a glance.
100% stacked bar : Parts of a whole across quarters.
Waffle chart : A proportion as a grid of squares.
Pictorial unit chart : An ISOTYPE icon array where one icon encodes a fixed count.
Mosaic / marimekko : Column width and segment height each encode a share.
Treemap : Hierarchical parts, area by size.
Sunburst : Hierarchy as nested rings.
Icicle : Rectangular partition of a hierarchy.
Circle packing : Nested circles for a sized hierarchy.
Nightingale rose : Polar-area wedges, radius by value.
Cycle wheel : Directed ring of proportional arcs for a recurring process.
Funnel : Stage-to-stage drop-off.

Hierarchies, networks & flows

Nodes, edges and movement: trees, graphs, chords, Sankeys.

Flowchart : Labelled boxes and arrows, grouped, with loops that return.
Node-link network : Force-directed graph, hover to highlight.
Arc diagram : Nodes on a line, links as arcs above.
Dendrogram : Hierarchical clustering with a merge-height axis.
Tree diagram : A tidy node-link hierarchy.
Org chart : Top-down boxes for role and headcount, coloured by division.
Radial tree : A hierarchy laid out on concentric rings.
Force-directed graph : A 318-author co-authorship network in six communities.
Edge bundling : Relations bundled along a radial hierarchy.
Elbow detection : Kneedle finds the elbow of a diminishing-returns curve (choosing k).
Chord diagram : Ribbons between categories; arc size is the total.
Dependency wheel : Directed circular flows, arcs sized by throughput, ribbons by origin.
Sankey diagram : Flows between stages, width proportional to volume.
Alluvial / parallel sets : Category membership flowing across axes.
Parallel sets : Categorical ribbons across class, sex, age and survival, width by count.
Packed bubbles : Circles sized by value, packed and coloured by group.

Maps & spatial

Values in geographic or directional space: thematic maps, spike maps, wind and vector fields.

Binned grid map : Values counted into square grid cells over a place.
Hexbin tile map : Values binned into a hex tessellation of a place.
Geographic hexbin : Point events binned into hexagons on a world map.
Spike map : Vertical spikes sized by value at map points.
Dot-density map : One dot per N people, showing where a population lives.
Quiver : A vector field of arrows by direction and magnitude.
Streamplot : Integrated streamlines with arrowhead markers.
Wind-barb station plot : Staffs point from the wind, pennant 50kt, barb 10kt, half 5kt, across a cold front.
Wind rose : Stacked polar bars of frequency by direction.
Polar plot : A line or scatter on an angular axis.

Model evaluation & science

Diagnostics and scientific plots: ROC, calibration, survival, forest, volcano.

Silhouette : Which cluster is not a cluster.
Validation curve : Not the peak — the simplest value that ties it.
Loss curve : The epoch you should have stopped at.
Learning curve : Would more data help? It says so.
ROC curve : Classifier trade-off, with AUC.
Precision-recall curve : Precision against recall, with the average precision.
Calibration curve : Predicted probability against observed frequency.
Ablation matrix : Which components a variant keeps, and what dropping one costs.
Cumulative gain : Model vs baseline vs perfect targeting.
Manhattan plot : −log10 p-values across the genome, peaks above the significance line.
Volcano : Effect size versus significance.
Kaplan–Meier : Survival over time, per arm.
Forest plot : Per-study effect sizes and a pooled estimate.
Bland-Altman : Agreement: difference vs mean of two methods.

Gauges, 3-D, sets & the rest

KPI gauges, projected 3-D, set intersections, and one-of-a-kind figures.

Venn / Euler : Overlapping sets, each region sized by its count.
UpSet plot : Set intersections as bars over a matrix, Venn beyond three sets.
Voronoi tessellation : Catchment cells coloured by group, with seed points.
Embedding projector : 2D word-embedding map; hover a word for its nearest neighbours.
Diffusion trajectory : A point cloud carried through a noise schedule, forward then back.
Word cloud : Words sized by frequency, coloured by theme.
Speaking time : Who spoke, and for how long (donut).
Radial gauge : A needle over coloured zones with a big readout.
Liquid gauge : A disc filled with wavy liquid to a percentage, a reservoir at 63%.
Radial bar : Bars wrapped around a polar axis.
3D surface : A static 3-D surface via offline projection.
Manifold path : Gradient ascent on a two-coordinate surface, stalling on a lesser peak.
3D wireframe : A projected surface mesh, slowly rotating.
3D scatter : Projected 3D points with a slow turntable.
3D bar : Depth-shaded bars on a grid; use sparingly.

Frequently asked questions

How do I install sprezzature-figures?

Run pip install sprezzature-figures (Python 3.10 to 3.13): one command installs the generators, the command line, the HTTP API, the MCP server and Sprezzature Studio, with no extras to choose. It is free and open source under the BSD 3-Clause licence, and sprezzature-figures render bar --out check.svg checks the install.

How many chart types does sprezzature-figures have?

sprezzature-figures has +150 chart types in its catalogue, all marked stable, and sprezzature-figures list prints them. The gallery on this page shows all but seven of them on purpose: the five glyph maps are on the maps page and the two animated Gapminder figures on the Hans ROSLING page.

Which file formats can sprezzature-figures export?

sprezzature-figures writes SVG by default, self-contained with its fonts embedded, and the --out extension also picks .png, .jpg, .pdf or .html. PNG, JPEG and PDF are rasterised from that SVG inside Python, and --scale 3 upsamples them for high-density screens.

What is the Ralph Eyeball Loop?

The Ralph Eyeball Loop is how sprezzature-figures looks at a figure before calling it done: it renders an SVG, an HTML page or a TikZ source to PNG, writes an assessment, and you edit the source and run it again. By default the agent running it reads the picture; with --local, the vision model qwen3-vl:8b served by Ollama writes the critique offline. It is the script scripts/ralph_eyeball_loop.py in the repository, explained on its own page.

Does sprezzature-figures send my data to a cloud service?

No: sprezzature-figures renders, recommends and checks figures on your machine with no model and no account. The three steps that use a model (redraw, the Studio chat and the eyeball loop's --local mode) call one served by Ollama locally by default, through best-engine-ai-helper. Used as a skill, the agent itself follows its own provider's data policy.

What does sprezzature-figures need besides pip?

sprezzature-figures needs nothing more to render and check figures: the rasteriser and the fonts come with the package. redraw, which rebuilds a chart from a screenshot without inventing its numbers, and the Studio chat need a model served by Ollama. The Ralph Eyeball Loop also uses system renderers (Chrome for HTML, tectonic for TikZ, rsvg-convert), and --check-tools lists which ones you have.

Can I use sprezzature-figures without Claude Code, for example in CI?

Yes: sprezzature-figures is also a Python library (make_figure), a command line, an HTTP API with a Docker image, and the MCP server sprezzature-figures-mcp for any MCP client; the Claude Code skill is one of five ways in. In CI, sprezzature-figures check figure.svg exits 1 on any finding (labels printed over each other, text off the canvas, a dropped title), and --format json prints them for a program.

How is sprezzature-figures different from matplotlib, Plotly or Vega-Lite?

matplotlib, Plotly and Vega-Lite give you an API or a grammar to compose a chart; sprezzature-figures gives you +150 finished chart kinds by name, each writing its SVG directly with no charting library underneath, and a checker that reads the result. For a live dashboard, a very large table or matplotlib's twenty years of answered questions, those tools remain the better choice, as LANDSCAPE.md in the repository says.