Bar Chart Maker

Bars from a paste, with an honest axis.

Bars from a paste, with an honest axis.

How to use it

  1. Paste two columns. A label and a number per row. Commas, tabs or semicolons.
  2. Add a title and a colour. Both optional. The title goes into the file for screen readers.
  3. Download it. SVG for the web, PNG for anywhere that will not take one.

When you would use this

A bar chart is the simplest chart there is and the easiest one to make dishonest without meaning to. The axis is where it happens. Start the bars at the smallest value rather than at zero and a five percent difference looks like a doubling, because the eye compares the lengths of the bars and the lengths no longer represent the values. Every bar here starts at zero. Where the data genuinely crosses zero, so does the axis, and the negative bars hang below the line rather than being flipped or hidden. The numbers on the axis are rounded to the steps a person can read: 1, 2, 2.5 and 5 times a power of ten. Divide a range of 37 by five ticks and you get 7.4, and an axis marked 0, 7.4, 14.8 is one nobody reads a value off. A single colour is used for the bars, because in one series the colour encodes nothing and a gradient across them implies an order that is not there. The chart is drawn in your browser and downloaded from it. Nothing is uploaded, which matters because the figures people chart are usually the ones not published yet.

Questions

Why does the axis always start at zero?
Because a bar chart is read by comparing the lengths of the bars, and cutting the axis at the smallest value makes a five percent difference look like a doubling. It is the commonest way a chart misleads, usually by accident rather than design. Where the data crosses zero, the axis does too and the negative bars hang below the line.
Where do the numbers on the axis come from?
The range is divided and then rounded up to the next 1, 2, 2.5 or 5 times a power of ten. That is why an axis reads 0, 50, 100 rather than 0, 37, 74. Dividing the range by the tick count and stopping there is what produces the unreadable version.
Can I paste straight from a spreadsheet?
Yes. Commas, tabs and semicolons all work, and a header row is detected rather than assumed. A number with a currency symbol or thousands separators works too, as long as the cell is quoted, which is what a spreadsheet does when it exports one.