AxisPlot

Bar graph maker

Paste one column of labels and one column of numbers, and this bar graph maker draws a bar chart you can download. It works in your browser and starts the value axis at zero.

One column of labels, one column of numbers. Add more number columns for grouped bars. Copying straight out of Excel, Google Sheets or Numbers works: the clipboard uses tabs. Commas, semicolons and pipes are recognised too.

Chart

or press Ctrl D (⌘ D Mac)

What a bar chart needs from your data

A bar chart compares amounts across categories. The shape is simple: one column of labels, one column of numbers, and one row per bar. Your labels might be months, machine names, species, or survey answers. Your numbers are the amounts you measured for each one.

Paste that block straight out of Excel, Google Sheets, or Numbers. The tool finds the delimiter by itself: a tab if any line has one, otherwise a comma, semicolon, or pipe, whichever splits the lines most consistently. A single column of numbers needs no delimiter at all. Quoted fields follow the ordinary CSV convention, so a quoted field may contain the delimiter and a doubled quote inside quotes is one quote [RFC 4180].

A first row is treated as headings only when the rows below it are numbers or dates and the first row is not. That way a sheet of plain text never loses its first row of data. Rows with fewer columns than the widest row are padded, and the count is reported rather than dropped.

Numbers are read carefully. The decimal separator is decided once per column from all of its values, not cell by cell, because "1,234" is one thousand two hundred and thirty-four in a US sheet and 1.234 in a German one. Currency symbols, trailing units, and spaces are ignored. A value in parentheses is negative, as accountants write it. Empty cells and spreadsheet placeholders such as n/a, NA, NaN, null, a lone dash, #DIV/0!, and #VALUE! are counted as empty rather than zero, so one n/a cannot turn a column of numbers into a column of text.

Vertical or horizontal, sorted or not

Vertical bars work well when you have a few short labels. The categories sit along the bottom, and the bars rise from a common baseline. This is the default shape most people picture when they hear "bar chart."

Horizontal bars work better when labels are long or when you have many categories. Long labels fit on the left without tilting or cutting them off. Many categories fit down the page without crowding. If you are making a horizontal bar chart, the value axis runs along the bottom and the bars extend to the right.

Sorting by value helps when ranking is the point. Put the largest bar first or last, and the order itself carries meaning. Keep the original order when the categories have a natural sequence, such as months, age groups, or steps in a process. A sorted chart of months would scramble a sequence your reader expects.

Start the value axis at zero. The length of a bar is what encodes its value, so cutting the axis short exaggerates the difference between bars. Tufte calls the ratio between the size of an effect shown in a graphic and the size of the effect in the data the "lie factor" [Tufte 1983]. This tool starts at zero for bar charts for that reason. You can override the default, but the chart will show what you asked for.

Value labels are useful when you have a handful of bars and the exact numbers matter. They put the figure at the end of each bar so the reader does not have to estimate against gridlines. Gridlines are better when you have many bars and the pattern across them matters more than any single value. You can use both, but too many labels on a crowded chart become noise.

A bar chart is not a histogram

A bar chart compares categories you supply. A histogram counts how many of your values fall in each range, and its bars touch because the ranges are continuous. If your data is one column of numbers and you want to see its shape, you want a histogram, not a bar chart. The how it works page explains the bin rules in full.

For other data shapes, try a line graph when something changes over time, a scatter plot when you have two measurements per observation, or a pie chart when you have parts of one whole and only a handful of parts.

Worked example

Suppose you paste this small table of monthly sales:

MonthSales
Jan120
Feb150
Mar90
Apr200

The tool reads the first row as headings because the rows below it are numbers. It finds four bars, one per month. The value axis starts at zero and runs to 200, with ticks at 0, 50, 100, 150, and 200. If you sort by value, April comes first and March last. If you keep the original order, the months stay in sequence. You can download the result as a PNG at twice the chart's size, or as an SVG that stays sharp at any size and can be opened in Illustrator, Inkscape, Figma, or Word. There is no watermark, no sign-up, and no limit on the number of charts.

The chart carries a title and a description in the file itself so a screen reader can announce it. The figures behind every chart are also shown as a table on the page, because a chart is an image and an image needs a text equivalent [WCAG 2.2, success criterion 1.1.1].

Your data stays in your browser. Pasted text and uploaded files are read by code running on your own machine and are never sent to a server. The "copy link to this chart" link carries the data in the fragment of the URL, the part after the # that browsers do not transmit to a server. A link has a practical length limit of about 7,800 characters, and the page says plainly when a dataset is too large to share that way instead of quietly truncating it.

Frequently asked questions

How do I make a bar graph from a list of numbers?

Paste one column of labels and one column of numbers into the box. The tool finds the delimiter, reads the numbers, and draws one bar per row. You can then download the chart as a PNG or SVG.

When should I use a horizontal bar chart instead of vertical?

Use horizontal bars when your labels are long or when you have many categories. Long labels fit on the left without tilting. Many categories fit down the page without crowding. Vertical bars work well for a few short labels.

Why does the value axis start at zero?

The length of a bar is what encodes its value. Cutting the axis short exaggerates the difference between bars. Tufte calls the ratio between the shown effect and the real effect the "lie factor" [Tufte 1983]. This tool starts at zero for bar charts for that reason.

What is the difference between a bar chart and a histogram?

A bar chart compares categories you supply, such as months or machine names. A histogram counts how many of your values fall in each range, and its bars touch because the ranges are continuous. If you have one column of numbers and want its shape, use a histogram.

Can I sort the bars by value?

Yes. Sorting by value helps when ranking is the point. Keep the original order when the categories have a natural sequence, such as months or age groups. A sorted chart of months would scramble a sequence your reader expects.