Skip to content
Connect an agent

Other diagram kinds

Radar charts

A radar chart scores a few items on the same three or more axes and draws each item as a shape round a centre, so the reader sees at once where each one is strong and where it is weak. Use it to compare options against criteria, to map a team's skills, or to show a maturity assessment before and after. It is for anyone choosing between a few options, and for an agent asked to compare them.

TL;DR

QuestionAnswer
What is it for?A few items scored on the same criteria: databases on scale and cost, people on skills, a practice on maturity.
How do I start one?Write radar "Title" max=5, one axis line for each criterion, and one series line for each item with a score per axis.
How is a score written?series pg "PostgreSQL" : 3, 5, 2 in the order of the axes, or : scale=3, query=5, cost=2 by axis id. Scores run from min= (default 0) to max=.
What does Mermaid convert?radar-beta: axes, curves in order or by axis, and the settings. See From Mermaid.
How big can it be?3 to 16 axes and at most 12 series. Warnings start at 10 axes or 5 series.
How is it drawn?A plate with rings and spokes, one shape per item with a light wash of its tone and a dot at each score, a label outside each spoke, and a legend.

Ask your agent

text
Use Plotwork to draw a radar chart comparing PostgreSQL, DynamoDB and MongoDB for the orders service, scored 0 to 5 on scale, query power, ease of running, cost and transactions. Lower cost is better.
text
Use Plotwork to draw a radar chart of my team's skills: Kubernetes, Terraform, observability, security, Go and incident response, each person rated 0 to 4.

Example

Three databases scored on five criteria. Cost is marked better=down, so its label says that a lower score is better, and the outline counts it that way when it names each database's strongest and weakest axes.

Team skills

With rings=4, a team rated 0 to 4 gets one ring a level. Past five people the shapes are hard to tell apart, so draw one chart per squad.

A maturity assessment

Before and after on one chart: the grey shape is last year, the green one this year, and min=1 puts the lowest level at the centre.

The language

The header

radar "Title" starts the chart. Every option is optional.

OptionValuesDefaultMeaning
min=a number0The score at the centre. A number below zero goes in quotes: min="-10".
max=a numberthe largest score, rounded upThe score at the outer ring.
grid=polygon, circlepolygonHow the rings are drawn.
rings=2 to 10one a score for a short whole scale, else a round stepHow many rings divide the scale.
legend=on, offon for two or more seriesThe legend under the chart.
values=on, offoffWrites each score by its dot.
unit=textnoneWritten after the number of the outer ring.
desc=textnoneThe plain-language description, for assistive technology.

Statements

StatementMeaningExample
axis <id> "<Label>"A spoke. The first points up and the rest follow clockwise. The label is optional; the id is used when it is left out.axis cost "Cost" better=down
series <id> "<Label>" : <scores>An item and its scores.series pg "PostgreSQL" : 3, 5, 2
desc "<text>"The plain-language description, the same as desc=.desc "Three databases."

Axes

An axis takes icon=, drawn before its label, and better=down for a criterion where a lower score is better, such as a price or a latency. better=down adds "lower is better" under the label; the scores are drawn as written, so a cheap option sits near the centre on that spoke. A chart needs at least three axes: with two, an XY chart or a quadrant chart reads better.

Series

Write the scores in the order the axes are written, : 3, 5, 2, or name each one by its axis id, : cost=2, scale=3, query=5, which reads better when there are many axes. Every axis gets a score. A series may come before the axes it scores. tone= chooses its colour; series with none take blue, orange, aqua, violet, amber, green, red and grey in turn.

Scale, grid and rings

Each score lies along its spoke by its share of the scale from min= to max=. A score outside the scale is an error that names the series and the axis. With no max=, a short scale ends at the next whole score (a team rated up to 4 tops out at 4) and a longer one at the next round number (87 tops out at 100). The ring numbers sit halfway between the first two spokes, where no dot lies.

Limits and warnings

LimitWhat happens
Fewer than 3 axesRefused with E100.
More than 16 axes or 12 seriesRefused with E140 before any layout.
More than 10 axes or 5 seriesW200: a reader cannot tell the shapes apart. Split the items, or compare them in a matrix.
A series at the minimum on every axisW200: it is a dot at the centre, usually scores not filled in.
Axis labels that touchW200: shorten them, or use fewer axes.
A label cut to fitW203. The full text stays in the text description.

From Mermaid

Mermaid radar-beta converts to a radar chart. Ask your agent to convert it, or use the convert_mermaid tool. The migration guide covers the converter in full.

Mermaid
radar-beta  title Restaurant Comparison  axis food["Food Quality"], service["Service"], price["Price"]  axis ambiance["Ambiance"]  curve a["Restaurant A"]{4, 3, 2, 4}  curve b["Restaurant B"]{3, 4, 3, 3}  curve c{ food: 2, service: 3, price: 4, ambiance: 2 }  max 5  min 0

The converter writes one line for each axis and each curve, and puts the keyed scores in axis order:

Plotwork
radar "Restaurant Comparison" max=5axis food "Food Quality"axis service "Service"axis price "Price"axis ambiance "Ambiance"series a "Restaurant A" : 4, 3, 2, 4series b "Restaurant B" : 3, 4, 3, 3series c : 2, 3, 4, 2
MermaidPlotworkReport
radar-beta, radarradar "<title>"none
title X, front matter title:The header titlenone
axis a["A"], b["B"]One axis a "A" line eachnone
curve c["L"]{1, 2, 3}series c "L" : 1, 2, 3none
curve c{ x: 3, y: 2 }The scores in axis ordernone
max, minmax=, min=none
graticule, showLegend falsegrid=, legend=offnone
ticksrings=, kept from 2 to 10M204 when moved
Too few or too many scores, or a keyed score missingPadded with the minimum, or cutM204
A keyed score on an axis that does not existDroppedM203
A score outside min to maxMoved to the nearest endM204
A second axis or curve of the same idDroppedM209
An id that is not a Plotwork idRenamedM206
axisScaleFactor, curveTension, theme coloursDroppedM200
Fewer than three axesNothing is converted.M110
A chart with no curvesNothing is converted.M103

See also

DocWhy
Writing diagramsThe rules every kind shares
Examples to copyFinished diagrams with the prompt that gets an agent to write each one
Migrating from MermaidConvert existing Mermaid diagrams, and what is dropped
MatricesThe same comparison as a table of scores
Quadrant chartsItems placed on two axes
Language referenceEvery kind, option and diagnostic