Visualize CSV Online
Drop a CSV below and it is charted straight away, with no account, no upload and no empty builder to fill in first. If the shape you need is not one of the eight in the dropdown, the rest of this page maps every visual tool on the site to the question it answers, in one honest sentence each.
Nothing to hand? Try with sample sales data · a year of orders, charted on arrival.
Need to filter, join or clean first? Open the app
The picture comes first, the setup comes second
The usual online chart maker opens with a blank canvas and a list of axes to assign. That works if you already know what you want. It works badly in the far more common situation, which is that somebody sent you a file, you have not looked at it yet, and the first thing you want is to see anything at all. So the widget above reads the file first and draws what the file appears to be about, then hands you the controls to argue with it.
The reading step is where most of the useful work happens. Each column is profiled once and assigned a role, which is a stronger claim than a data type. A column of ISO dates is time, so it becomes an axis with a sensible bucket size rather than a list of strings. A column of values with currency symbols is money, so it prints as $16.2k on the axis, in the labels, in the tooltip and in the exported header, all from one decision. A column of short repeating words is a category. A numeric-looking column of identifiers is an identifier, so it never gets offered as something to sum. Roles are read from the values before the header name, which matters: a column called amount full of the words pending and settled is a status.
From there the first chart is a short, boring cascade. Measure plus date gives that measure over time. Measure plus category gives a breakdown. A measure with nothing to group by gives a distribution. Categories with no measure give counts. The aggregate starts at Sum whenever there is a real measure to sum, because opening on a count of rows produces a chart that is technically valid and answers nobody's question.
Which chart answers which question
Charts are answers, so pick the question first. The eight general shapes live in the Chart dropdown above; the rest have their own pages because each needs controls the general widget does not show.
- Which category is biggest? A bar chart, with the labels down the left where long names stay readable. Column when the labels are short or the sequence is time.
- Is it going up? A line. The eye reads slope as rate, which is a claim about even spacing on the horizontal axis, so the grain is bucketed onto a regular grid and stated in the caption.
- How much accumulated? An area. The fill encodes volume, which is also why an area wants a zero baseline in a way a plain line does not.
- Does this move with that? A scatter. Two measures, one point per row, with the Pearson coefficient reported in the caption and the caution about causation printed underneath.
- What is the split? A donut for a handful of slices with the share in the legend, a treemap once the parts nest inside larger parts or the count gets past about eight.
- Is my average typical? A histogram for the shape of one measure, a boxplot when you want the spread compared across groups with the outliers drawn as dots.
- Which combination is unusual? A heatmap when you want to see it, a pivot when you want to quote it. Same cross-tab, different medium.
- Where does it go, and where does it leak? A sankey for flow between two sets of nodes, a funnel for drop-off through ordered stages, a waterfall for the contributions that bridge an opening total to a closing one.
- When did things happen, and where? A timeline for events along a date axis, a map when the file carries places or coordinates.
One rule cuts across all of them: if two shapes both fit, choose the one whose picture a reader can misread in fewer ways. A stacked area is prettier than three small lines and much harder to read a single series from.
Every visual tool, one sentence each
No marketing adjectives in this list. Each line says what the tool does and, where it matters, what it refuses to do.
- csv-to-chart · the general chart maker with the bar shapes listed first, covering bar, column, line, area, donut, scatter, histogram and boxplot from one parse.
- csv-to-graph · the same engine with Line, Area and Scatter at the top of the dropdown, for trends, rates of change and relationships between two measures.
- csv-to-heatmap · two columns cross-tabulated into a shaded grid, ordered by total, with combinations that never occurred left blank rather than painted as zero.
- csv-to-pivot · the same cross-tab as a table, with every total recomputed from the source records so an average total is not an average of averages.
- csv-to-treemap · nested rectangles sized by value, for composition with more categories than a donut can survive.
- csv-to-sankey · flow between a from column and a to column, with ribbon width as volume and only positive flows drawn.
- csv-to-timeline · dated events laid out along a time axis in lanes, for release histories, incidents and project milestones.
- csv-to-map · rows plotted geographically when the file carries a latitude and a longitude, or place names it can resolve.
- csv-to-waterfall · the bridge from an opening total to a closing one, with rises and falls colored by direction and nothing else.
- csv-to-funnel · ordered stages with the drop-off between them, kept in file order because the sequence is the meaning.
- excel-to-chart · the same chart maker with an XLSX front door, reading the workbook in the browser and flattening a sheet to the same rectangle.
- json-to-chart · nested JSON flattened into rows and then charted exactly as a CSV would be.
- csv-to-embed · a chart published as an iframe whose data and configuration ride compressed inside the URL, so there is no server and nothing stored.
- embed-gallery · live embeds you can look at before building one, useful for seeing how a shape behaves inside somebody else's page.
- csv-story · one file narrated as a sequence of scenes, each with a chart and a written takeaway, for when the point is an argument rather than a picture.
- templates · ready-made CSV layouts you can fill in, which is the fastest route when you have the numbers but not the file.
- examples · finished charts built from real sample files, so you can see the output before committing your own data.
- dashboards · a KPI strip, several panels and generated insights from a single file, for when one chart is not the whole answer.
Worked example: a year of orders
Seven columns, 180 rows, spanning 2024. The head of the file:
date,region,product,channel,units,unit_price,revenue
2024-01-02,West,Doohickey,Direct,58,211.64,12275.12
2024-01-04,West,Sprocket,Partner,13,40.73,529.49
2024-01-06,North,Sprocket,Retail,31,147.97,4587.07
2024-01-08,East,Gizmo,Direct,7,172.02,1204.15
Dropped into the widget at the top with nothing clicked, the panel shows a line chart titled revenue over time, a kicker reading TREND in the corner, and a caption reading Sum of revenue · monthly totals · 12 points. The vertical axis is marked $0, $40k, $80k rather than in raw digits, because revenue was profiled as money. Two decisions are visible in that one line: revenue beat units as the measure, since money outranks a count when both are present, and monthly beat daily because 180 daily ticks on this panel is a smear rather than a trend.
Set Dimension to product and the title becomes revenue by product, the kicker becomes BREAKDOWN, and five horizontal bars appear with the value printed in mono to the right of each: $182.4k, $166.9k, and so on. There is no value axis, because with the numbers written on the bars an axis is furniture. Switch Aggregate to Median and the same five bars redraw as the median order value per product, which usually tells a different and more useful story than the sum.
From here the file wants different tools depending on the question. Region against channel belongs on the heatmap if you want to spot the hot pairing, and on the pivot if you need to quote the numbers with correct margins. Units against revenue belongs on the graph page as a scatter, where the caption reports r = 0.62 · moderate positive and coloring by product splits one moderate cloud into several steep, tight relationships.
Your file does not leave the tab
This is a structural fact about how the site is built rather than a policy someone wrote down. Reading the CSV, inferring the column roles, grouping the rows, computing the aggregates and painting the picture all run inside your browser tab, in code that finished downloading when the page loaded. There is no upload endpoint behind any of these tools, so there is no request that carries your rows, no queue they sit in and no bucket they land in.
Two consequences follow that are easy to check yourself. First, open the network panel in your browser's developer tools and drop a file: no request appears, because there is nothing to request. Second, disconnect from the network entirely once this page has loaded, then keep working. Charts still draw, aggregates still compute, exports still download. A tool that quietly needed a server could not do that.
The one thing worth knowing before you publish is that an embed is different by design. When you build one, the data and the configuration are compressed into the iframe URL so the chart can render without a server behind it. That is what makes an embed permanent and dependency-free, and it also means the numbers travel inside the link. Embed the sales summary; think twice before embedding the payroll.
What this page will not do
- It is not a dashboard. The widget above draws one chart at a time. Panels, KPI tiles and generated insights live in the dashboards section.
- No multi-series and no dual axis. One measure per chart, with scatter as the deliberate exception. Two vertical scales let anyone manufacture a crossing point, so they are not offered.
- No filtering, joining or cleaning. Every row in the file is charted as it stands. Reshaping happens in the app.
- No saved state. Nothing here is stored, which also means nothing here is remembered. Reload and you start from the file again.
- No forecast or trend line. A dashed continuation drawn from a year of noisy data looks authoritative and has not earned it.
- A header row is required. If the first line is data, its values become the column names and everything downstream is confidently wrong.
- The specialist shapes are not in this dropdown. Heatmap, pivot, treemap, sankey, timeline, map, waterfall and funnel each need controls this widget does not show, so they live on the pages linked above.
Frequently Asked Questions
Do I need an account to visualize a CSV here?
No. There is no sign-up, no email wall and no trial period. Open the page, drop a file, look at the picture, take the export. Nothing about the tool changes based on who you are, because the tool has no idea who you are and no way to find out.
Where does my data actually go?
Nowhere. Parsing the file, aggregating the rows and drawing the picture all happen inside your browser tab, in JavaScript and WebAssembly that was already downloaded when the page loaded. There is no upload endpoint behind any of these tools and no request that carries your rows. The simplest way to check is to open your browser's network panel while you drop a file: you will see no request at all.
Which chart should I use for my file?
Start from the question rather than from the file. Ranking one measure across categories is a bar. Movement over time is a line, or an area when the accumulated volume matters. A relationship between two measures is a scatter. Composition is a donut for a handful of slices and a treemap once the categories nest. Two dimensions at once is a heatmap for the picture or a pivot for the numbers. Flow between stages is a sankey, drop-off through ordered stages is a funnel, and the contributions that bridge one total to another are a waterfall.
How large a file can these tools handle?
The in-page limit is 100 MB, and a few hundred thousand rows chart comfortably on an ordinary laptop. A chart is an aggregate, so the row count matters far less than the number of distinct categories: a million rows grouped into six regions is six bars and draws instantly. When you need to filter, join, clean or reshape before charting, the full editor streams files that size without holding them all in memory at once.
What file formats do these tools read?
CSV and its relatives are the main path, and comma, semicolon, tab and pipe delimiters are all detected without configuration, so pasting cells out of a spreadsheet works. Excel workbooks have their own entry point at excel-to-chart, and nested JSON has one at json-to-chart. Both flatten into the same rectangle and then behave exactly like the CSV pages. Every file needs a header row.
Can I put one of these charts on my own website?
Yes, through the embed builder. The data and the chart configuration are compressed into the URL of an iframe, so the chart renders from the link alone with no server behind it and nothing stored anywhere. That also means the embed keeps working regardless of what happens to any account, and that the data travels with the link, which is worth thinking about before embedding something confidential on a public page.
Can I build a whole dashboard rather than a single chart?
Yes. Each tool page here draws one chart, deliberately, because a single question deserves a single answer. When you want a KPI strip, several panels and written insights generated from one file, use the dashboards section. When you want the file narrated as a sequence of scenes with a takeaway attached to each, use CSV Story.
Why does a chart appear before I set anything up?
Because the file already says what it is about. Every column is profiled once and given a role rather than just a type: ISO dates become a time axis, values with currency symbols become money and are formatted as money everywhere, short repeating words become categories, and identifier-looking numbers are kept out of the list of things to sum. From those roles the first chart follows in a few predictable steps, and the controls exist so you can disagree with the result.
Related
See what is in your file
Drop the CSV, read the first picture, then go to whichever tool answers the question it raised.
Back to the visualizer