Chart Builder

Turn a CSV into a clear bar, line, pie or scatter chart and export it as PNG or SVG.

Runs in your browser. Nothing is uploaded — your input is processed on this device and discarded when you close the tab.

Build a chart

Drop a CSV file here or click to browse. The file is read on this device only. Data is capped at 5,000 cells (rows × columns) so charts stay honest and the tab stays responsive.

Pasted data is parsed exactly like an uploaded file, with the header option below.

Value / Y columns (tick one or more)

Load data first — the columns will appear here.

When several rows share a label — three sales rows for “Jan”, say — aggregation decides how they become one bar or point.

The default palette is designed to stay distinguishable under the common forms of colour-vision deficiency.

Load data to draw a chart.

Exports are yours to use: charts you generate here may be used in documents, slides and reports, including commercially, with no attribution required. The 2× PNG renders at double resolution for print and retina slides; the transparent option removes the white background from both PNG and SVG exports.

Aggregated data behind the chart

The exact values plotted — check them before you trust the picture

Data preview — first 50 rows

Cells that are not numbers are highlighted, named in the warning above with their row and column, and excluded from the chart. Empty cells are skipped and counted separately.

Preview — first 50 rows

How to use the Chart Builder

  1. Load your data. Drop a CSV file onto the dropzone, paste CSV text and choose Load pasted data, or use Load sample data. If you have just cleaned a file in the CSV Cleaning Studio, a banner offers the handed-off copy directly. Leave “First row is a header row” ticked unless your file has no headers, in which case columns are named Column 1, Column 2 and so on.
  2. Pick the columns. Choose the label column — the categories or X values — then tick one or more value columns. Each ticked column becomes its own series of bars or its own line.
  3. Choose an aggregation. If your file has several rows per label, decide how they combine: sum for totals, average for typical values, count for “how many rows”, minimum or maximum for extremes.
  4. Pick the chart type and tidy up. Bar and line suit most category data, pie and doughnut show shares of a whole, scatter plots one numeric column against another, and histogram shows the distribution of a single numeric column across bins you control.
  5. Sort, limit and label. Sort by label or by value, cap the chart at a Top N so a long tail cannot crush the leaders, then add a title and axis labels — a chart without them is a picture, not an explanation.
  6. Check, then export. Read the aggregated data table and the warning line: both tell you exactly what was plotted and what was excluded. Then download a PNG for documents and slides, or an SVG when the chart needs to stay sharp at any size or be edited later.

Worked example: sales by month and channel

A small shop exports six rows of sales data: one row per month per channel, with Sales and Returns columns. Charted raw, row by row, the file would draw six bars with the month labels repeated — hard to read and easy to misquote. Aggregated by month, it becomes a three-bar story. Load it with the tool itself:

The sample is already set up the way the example needs — Month as the label column, Sales ticked as the value, aggregation set to Sum — so the chart shows Jan 200, Feb 240 and Mar 280: January is 120 online plus 80 in store, February is 150 plus 90, and March is 170 plus 110. Switch the aggregation to Average and the same bars become 100, 120 and 140, the typical month per channel rather than the total. Now untick Sales, tick Returns instead, and keep Sum: the chart shows returns of 8 in January, 10 in February and 9 in March — the returns did not follow the sales climb in March, which is exactly the kind of pattern a raw six-bar chart hides. Tick both columns together for a two-series view, or sort by value, high to low, with Top N set to 2 to keep only February and March. The aggregated table under the chart always repeats the plotted numbers, so anything you quote from the picture can be checked against the table in seconds.

What the Chart Builder does, and why it matters

Most data that matters to a small team already exists as a CSV: the sales export, the survey download, the server log summary, the spreadsheet someone emailed. The hard part was never storing those numbers — it is seeing them. A column of forty figures communicates almost nothing; the same figures as bars make the largest, the smallest, the trend and the odd one out visible in about a second. That speed is not a cosmetic extra. People decide from the picture — in the meeting, in the report, in the funding deck — so a tool that turns a file into a defensible chart quickly, without an upload or an account, removes the two usual failure points: the chart that never gets made because the software was too heavy, and the chart that gets made carelessly because nobody checked what it actually plotted.

The step this builder treats as first-class is the one most quick chart tools skip: aggregation. Real exports are rarely one row per category. They are one row per transaction, per day, per channel — dozens of rows competing for the same label. Plotting them raw produces either a forest of overlapping bars or, worse, a chart that silently shows only some rows and looks authoritative while doing it. Here, every row for a label is combined by a rule you choose and can see — sum, average, count, minimum or maximum — and the aggregated table beneath the chart prints the resulting values in plain figures. If a number in a presentation is challenged, the defence is not “the tool said so”; it is a table anyone can recompute from the source file.

Honesty about bad data is built the same way. A cell containing “many”, “TBC” or a stray note cannot be plotted, so it is never quietly treated as zero — a substitution that would drag down averages and invent totals. Instead the cell is highlighted in the preview, named by row and column in a warning, counted, and excluded, while empty cells are skipped and counted separately. You keep the decision: fix the file (the CSV Cleaning Studio sits one step earlier in the workflow for exactly this), or accept the exclusion knowing precisely what it was.

Finally, the output respects where charts end up. The PNG suits slides and documents; the SVG is a genuine vector redraw of the chart’s data — bars, slices, lines and points as editable shapes — so it stays sharp in print and can be restyled later. The default palette is the Okabe–Ito set, designed to remain distinguishable for readers with colour-vision deficiency, because a chart that only works for some of its audience has only done some of its job. Everything runs in your browser: the file is never uploaded, which makes the tool safe for sales figures, internal metrics and other data that should not be pasted into a stranger’s server just to draw twelve bars.

Common errors and limitations

Frequently asked questions

Is my CSV uploaded anywhere?

No. The file is read and parsed in your browser with the PapaParse library, charted with the self-hosted Chart.js library, and discarded when you close the tab. Nothing is sent to a server and no copy is kept, which is why the tool is safe for sales exports, internal metrics and other files you would not hand to a third-party chart service.

What is the difference between Sum and Count aggregation?

Sum adds the numeric values in each group, so three January rows of 120, 80 and 30 become one bar of 230. Count ignores the values entirely and counts the rows, so the same group becomes a bar of 3 — the right choice when the question is “how many orders / sign-ups / tickets per month” rather than “how much”. Average, minimum and maximum summarise the values without adding them, which suits prices, ratings, temperatures and response times.

Why was one of my cells excluded, and how do I find it?

A cell is excluded when it sits in a charted value column but is not a number — words like “many” or “TBC”, stray notes, or mixed entries such as “12 approx”. Currency symbols, thousands commas and a trailing % are understood and parsed. The warning line above the preview names the first few excluded cells by row and column, the preview table highlights them, and the warning gives the full count. Empty cells are different: they are skipped silently as missing data, but still counted and reported separately.

What is the difference between the PNG and SVG exports?

The PNG is a pixel image of the chart exactly as drawn on screen — best for slides, documents and anywhere a picture is simply placed. The SVG is a standalone vector file redrawn from the chart’s aggregated data: bars, pie slices, lines and scatter points become editable SVG shapes with axes and a legend, so it scales to any size without blurring and can be restyled in a vector editor. Fine on-screen styling may differ slightly in the SVG; the data geometry — labels and values — is the same, and the aggregated table on this page is the authoritative record of both.

When should I use a histogram instead of a bar chart?

Use a bar chart to compare totals or averages across named categories — months, channels, products. Use a histogram when you have one numeric column and want to see how its values are distributed: how many orders fell between £0 and £10, £10 and £20, and so on. The histogram ignores labels, groups the values into equal-width bins you control (1–50), and counts the values per bin, which exposes skew, clusters and outliers that an average would flatten away.

Why is there a 5,000-cell limit?

Because aggregation, the preview table and the chart all run in your browser tab, the limit is your device’s responsiveness rather than a server plan. Five thousand cells cover the great majority of everyday exports while keeping every interaction instant. If your file is larger, the honest fix is usually upstream: remove columns you will never chart, or aggregate the export by day or by category first — a chart of 5,000 raw points would be unreadable long before it was slow.

Related tools

CSV Cleaning Studio

Remove duplicates, fix missing values, standardise dates and export a clean CSV. Your file never leaves your device.

Data and Productivity

JSON Studio

Format, validate, minify, query and compare JSON in your browser, with precise line-and-column errors.

Developer Tools

Regex Tester

Test patterns against sample text with match highlighting, capture groups and a safe one-second timeout.

Developer Tools

Related articles

How to Turn CSV Data Into Useful Charts

The step most chart tools skip: aggregating rows before you chart them. Using the cleaned 10-row orders file, this guide builds the exact grouping tables — totals by category, by month, by city — shows the arithmetic, names the missing month the grouping produces, and matches each table to the chart type its shape calls for.

By AtoZTools Editorial Team · Last reviewed 2026-10-24

How to Choose the Right Chart for Your Data

Choose a chart by the question, not by habit: comparison wants bars, trend wants a line, parts of a whole want few slices and honest percentages. One real dataset — order totals by city, every number computed from the same cleaned file — is presented three ways to show concretely where a pie chart misleads and a bar chart does not.

By AtoZTools Editorial Team · Last reviewed 2026-10-24

How to Clean and Transform CSV Files

A step-by-step CSV cleaning workflow — delimiter and encoding first, then headers, whitespace, case, dates, missing values, duplicates and a formula-safe export — demonstrated on a deliberately messy 12-row file run through the CSV Cleaning Studio's own pipeline code, with its real change summary quoted.

By AtoZTools Editorial Team · Last reviewed 2026-10-24