Blog
Charts from data

CSV to sparklines online

When you have eight metrics and one screen, sparklines are the answer. Each column gets its own narrow lane and its own vertical scale, so what you compare is the shape — rising, flat, spiky, turning — rather than the level. This is the chart for a dashboard row or the left margin of a report.

Your data never leaves this device

Your data

Paste a table straight from Excel or Google Sheets, or drop a CSV file. Nothing is uploaded anywhere — the whole calculation runs inside this browser tab.

CSV, TSV or plain text. Files saved in windows-1251 are detected and re-read automatically, so Cyrillic headers do not turn into garbage.

Parsing options

Result

The drawing library is downloaded only when you press the button, and only on this page.

This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.

Facts and limits of this method

Best for Comparing the shape of many metrics measured on different scales
Lane limit 10 columns; beyond that each lane becomes too thin to read
Scaling Each lane is normalised to its OWN minimum and maximum
Lane height 76% of the lane, leaving a gap so neighbouring lines never touch
Axes No vertical axis by design — levels are deliberately not comparable
Output PNG at 2× scale, plus CSV, JSON and Markdown of the original values

When it misleads you

How it is calculated

Every numeric column becomes one lane, drawn from top to bottom in the order the columns appear. Within its lane, each series is rescaled so its own minimum sits at the bottom and its own maximum at the top, which is exactly what makes shapes comparable when levels are not.

Lanes are drawn on a single canvas rather than as separate small images. That keeps the export to one PNG, keeps the lane labels aligned with the lines, and means the whole set can be copied into a document in one paste.

Each line fills only 76% of its lane height, leaving a margin above and below. Without that margin the peak of one metric would touch the trough of the one above it, and the eye would read two separate series as one continuous shape.

The vertical axis carries lane names instead of numbers. Printing a shared numeric scale would be actively misleading here, because no such shared scale exists — every lane is measured against itself.

Questions and answers

Why does a barely-changing metric look so dramatic?

Because its lane is stretched to its own range. A column moving between 2.0 and 2.1 fills the whole lane just as a column moving between 100 and 3000 does. Sparklines compare shape, never magnitude — put the actual numbers next to them.

Can I give all lanes the same scale?

Not on this page, because it would defeat the purpose: metrics on different scales would collapse into flat lines at the bottom. If your columns share a scale, use the multi-series line chart instead.

How many metrics fit?

Ten lanes is the ceiling here. Beyond that each lane is a couple of pixels tall and the shapes stop being distinguishable.

Why are there no numbers on the chart?

By design. A sparkline is a supplement to a number, not a substitute for one — the classic use is a small line next to the current value in a table.

Is my data uploaded?

No. Normalisation and drawing happen entirely in your browser.

Related tools

All tools