Dot Plot Maker

Paste your category labels in one column and their values in the other, and the tool draws a Cleveland dot plot: one row per category, one dot per value, sorted however you like. Everything runs in your browser and nothing is uploaded.

Sort order

Position Beats Length

The dot plot was developed by William Cleveland at Bell Labs in the 1980s as a deliberate replacement for the bar chart in ranking comparisons, and the argument behind it is experimental rather than aesthetic. Cleveland and Robert McGill's 1984 work on graphical perception tested how accurately people decode different visual encodings, and produced a ranking. Judging position along a common scale is the most accurate task there is. Judging length comes several places lower, and angle and area lower still.

A bar chart asks you to compare lengths. A dot plot asks you to compare positions on a shared axis — the task people are demonstrably best at. Everything else about the chart follows from that one substitution:

Why the Axis Need Not Start at Zero

This is the practical difference that matters most, and it is worth being precise about. A bar encodes its value as a length measured from the axis. Move the axis and every length changes, so a bar chart whose axis starts at 140 rather than 0 genuinely misrepresents its data — a value of 150 draws a bar a third the size of a value of 170, when the real ratio is 0.88.

A dot encodes its value as a position. There is no length to distort. So the axis is free to frame the window your data actually occupies, and the chart can resolve differences a zero-based bar chart flattens into nothing.

The obligation that comes with that freedom is honesty about the frame: the axis range has to be legible, and you must not describe differences as proportional when the axis does not begin at zero. "Twice as far along the axis" is not "twice as much".

Comparing Session Duration Across Landing Pages

Suppose you measure average session duration, in seconds, for eight landing pages:

Landing page Seconds
Pricing page 182
Product tour 176
Customer stories 171
Integrations directory 168
Blog — technical posts 164
Blog — company news 159
Careers 151
Press releases 148

The whole spread is 34 seconds, from 148 to 182. Drawn as bars from zero, the shortest bar is 148 ÷ 182 = 81% of the longest — every bar reaches at least four-fifths of the way across, and the differences occupy the last fifth of the chart. The eight bars look, at a glance, the same. The 3-second gap between Careers and Press releases is 1.6% of a 182-unit bar: invisible.

Drawn as a dot plot with the axis running 145 to 185, that same 34-second spread fills the plot. The 3-second gap now spans 7.5% of the chart width — small, but visibly small rather than absent. And the shape becomes readable: a steady decline through the middle six pages with Careers and Press releases sitting apart at the bottom, which is a finding, not a rendering artefact.

To reproduce it, paste the labels into the left box one per line and the values into the right box in the same order, then choose Descending.

Sorting Is Half the Chart

Category order is a design decision, not a property of the data, and it is the single biggest lever on how readable a dot plot is. Leaving categories in the order they happened to arrive in a spreadsheet throws away most of the chart's value.

Ascending versus descending is mostly about where you want the reader's eye to land first, since the top row of the chart is read first.

Before-and-After Comparisons

Dot plots are a natural fit for two-state comparisons. Plotted as two dots on the same row joined by a line — a dumbbell or connected dot plot — the gap between the dots becomes the change, read directly as a distance, and the direction is the direction the line points.

This tool draws one series per chart, so the practical route to the same insight is to plot the change itself. Take the landing pages above, subtract each old figure from its new one, and you have a single column of signed values:

Pricing page          +15
Blog — technical posts  +8
Integrations directory  +6
Product tour            +5
Press releases          +4
Careers                 -2
Blog — company news     -4
Customer stories        -5

Sorted descending, this chart answers "what moved?" faster than either of the two originals, because movement is the quantity being encoded rather than something the reader has to compute by eye. Negative values sit left of zero and positive values right of it — one of the few cases where a dot plot's axis genuinely should include zero, since zero is the meaningful reference point for a change.

When a Bar Chart Is Still the Better Choice

Dot plots are not a universal upgrade. Reach for a bar chart when:

The reverse test is just as simple. If you have more than about ten categories, or labels longer than a couple of words, or values clustered in a narrow band well away from zero, the dot plot wins on every count.

Two Charts, One Name

Be aware that "dot plot" names two unrelated charts. The one this tool draws is Cleveland's: one row per category, one dot per value, used for ranked comparison. The other — the Wilkinson dot plot, and the one most people meet in school — stacks one dot per observation above a number line to show how a set of measurements is distributed. They share nothing but the word.

If what you have is a list of raw measurements rather than one value per named category, you want the distribution, not a ranking: a histogram shows its shape, and a box plot summarises its centre, spread and outliers.

Frequently Asked Questions

Do the labels and values have to line up?

Yes — row for row. The first label is paired with the first value, the second with the second, and so on, and blank lines in the label column are skipped. If the two counts differ the tool refuses to draw and tells you how many of each it found, which is almost always a stray blank line or a header row pasted in with the data.

Why doesn't the axis start at zero?

Because a dot plot encodes value by position, not by length. There is no bar whose length would be distorted by a truncated axis, so the axis is free to frame the range your data actually occupies. The one obligation this creates is that the axis range must be clearly visible — which it is, since the tick labels are drawn — and that you should not describe differences as proportional when the axis does not start at zero.

Can I plot a before-and-after comparison?

The tool draws one series at a time, so the practical approach is to plot the change rather than both states: subtract each 'before' value from its 'after' value and plot the differences, sorted largest to smallest. That gives you a single chart where positives sit right of zero, negatives sit left, and the categories that moved most are at the top — usually a clearer answer than two overlaid series.

How many categories can a dot plot handle?

Far more than a bar chart. The chart grows by about 30 pixels per row, so thirty or forty categories stay legible in a single readable column where the same number of bars becomes a solid block of ink. Past roughly fifty rows the labels start to become the constraint rather than the chart, and it is usually better to group the tail into an 'other' row or split the data into two charts.

Is this the same as the dot plots taught in school?

No, and the shared name causes real confusion. School dot plots — properly Wilkinson dot plots — stack one dot per observation above a number line to show a distribution, so they are effectively a histogram made of dots. This tool draws Cleveland dot plots, where each row is a category and each dot is that category's single value. For the stacked-dot use case a histogram is the right tool.

How do I save the chart?

Use the camera icon in the chart's toolbar, which appears when you hover over the plot. It exports a PNG at twice the display resolution — 2000 pixels wide, with the height scaled to the number of rows — so it stays sharp in a slide deck or a printed report. The export is produced in your browser; nothing is uploaded.