Every chart on this site is drawn by code running in your own browser. This page says exactly what that code does, because a chart tool that makes decisions about your numbers without telling you will eventually be wrong about them without telling you either.
Reading what you paste
The delimiter is found by looking at your text. If any line contains a tab, tabs win: copying a range out of Excel, Google Sheets or Numbers puts tab-separated text on the clipboard, which is how most data arrives here. Otherwise the tool tries commas, semicolons and pipes and keeps whichever splits your lines into the most consistent number of columns. A single column of numbers needs no delimiter at all. Quoted fields follow the usual CSV convention, so North, "Smith, John", 12 is three fields and a doubled quote inside quotes is one quote.
A first row is treated as headings only when the rows below it are numbers or dates and the first row is not. A sheet of plain text therefore keeps its first row, because there is no evidence that it was a heading.
What "1,234" means
One thousand two hundred and thirty-four in a US spreadsheet; one and a bit in a German one. No single cell can tell you which, so the decision is made once per column, from all of its values:
- If a value contains both a point and a comma, the later one is the decimal separator:
1.234,56is 1234.56 and1,234.56is the same number written the other way. - If only commas appear and every comma has exactly three digits after it, they are thousands separators.
- If any comma has one or two digits after it, the column is using commas as decimal points.
Currency symbols, trailing units and spaces are ignored. A value in parentheses is negative, as accountants write it. A per cent sign is dropped rather than divided, so 45% charts as 45. Empty cells, and the things spreadsheets leave behind in place of a number (n/a, NA, null, a lone dash, #DIV/0!) are counted as empty, never as zero. One of them cannot turn a column of numbers into a column of text. Whatever the tool decided, it tells you underneath the chart.
Dates
Recognised formats are 2026-03-04, 2026-03, 2026, 2026 Q3, Mar 2026, March 4 2026, and slash or dot forms such as 03/04/2026. Whether a slash form is day-first or month-first is genuinely ambiguous, so it is decided from the whole column: any value whose first number is above 12 settles it. When a column gives no such clue the month-first reading is used, the page says so, and there is a control to switch it. The precision you wrote is kept, so a column of years is labelled by year and not by the first of January.
Axes
Tick values are always 1, 2, 2.5 or 5 times a power of ten, and the axis always contains your data. That is the only reason gridlines are useful: you can do arithmetic between them in your head.
The vertical axis starts at zero for bar charts and histograms. The length of a bar is what encodes its value, so cutting the axis short exaggerates the difference between bars. Tufte's term for the ratio between the size of an effect in a graphic and the size of the effect in the data is the lie factor (Tufte 1983). For line charts and scatter plots the axis fits the data instead, because the change rather than the absolute level is usually the point. You can override either default. A logarithmic vertical axis is available for line and scatter charts, and is applied only when every value is above zero.
Histogram bins
The default bin width is the Freedman-Diaconis rule: twice the interquartile range, divided by the cube root of the number of observations (Freedman & Diaconis 1981). It uses the interquartile range rather than the full range, so one extreme value does not flatten every bin, which is the weakness of Sturges' older rule of 1 + log2(n) (Sturges 1926). When the interquartile range is zero, because most of your values are identical, there is no width to compute and Sturges' rule is used instead.
The width is then snapped to 1, 2, 2.5 or 5 times a power of ten and the bins are laid out from a round number, so edges read "0 to 5, 5 to 10" rather than "0 to 3.333". A bin count you choose is therefore a target, and the count actually used is reported. Bins are right-open, so a value on a boundary falls in the upper bin and nothing is counted twice. The one exception is the top bin, which closes at its upper edge so your largest value is not left outside every bin.
Bin width changes the apparent shape of a distribution. Try two or three bin counts before you trust a shape you see.
The summary figures
The standard deviation shown under a histogram is the sample one, dividing by n − 1, because a column you pasted is a sample rather than a whole population. Quartiles use linear interpolation between order statistics, which is R's default (type 7) and the definition Excel's PERCENTILE uses (Hyndman & Fan 1996), so checking our interquartile range against your spreadsheet gives our answer.
The trend line
Ordinary least squares: the straight line with the smallest total of squared vertical distances to your points. R² is reported as the share of the variation in y that this straight line accounts for, from 0 to 1.
R² does not show that x causes y, and it does not show that a straight line was the right shape. Anscombe's four datasets have the same means, the same variances, the same correlation of 0.816 and the same fitted line, y = 3 + 0.5x, and yet one is a clean straight relationship, one is a curve, one is a straight line with a single outlier, and one is a vertical stack of points with a single point far off to the side (Anscombe 1973). Look at the points. A vertical set of points has no least-squares fit at all, and the page says so rather than drawing a line through them.
Why the pie chart page argues with you
In Cleveland and McGill's ranking of how accurately people read the parts of a chart, judging position along a common scale came out most accurate and judging angle or area markedly less so (Cleveland & McGill 1984); Heer and Bostock replicated the ranking with a much larger crowdsourced sample (Heer & Bostock 2010). Slices of similar size are therefore hard to compare, and a bar chart is the better choice for more than about six categories or for values that are not parts of one whole. The pie page says this, and still draws you a pie.
What you get out
PNG is drawn at twice the chart's size so it stays sharp in a document or on a slide. SVG stays sharp at any size and opens in Illustrator, Inkscape, Figma and Word, where you can recolour or retype anything. There is no watermark, no account and no limit on how many charts you make.
Every chart carries a title and a description inside the file so a screen reader can announce it, and the figures behind the chart are shown as a table on the page as well. A chart is an image, and an image needs a text equivalent (WCAG 2.2, success criterion 1.1.1).
What happens to your data
Nothing leaves your browser. Pasted text and uploaded files are read locally, which is also why there is no file size limit here beyond what your own machine can hold. "Copy link to this chart" puts the data in the fragment of the URL, the part after the # that browsers do not send to servers, so a chart link passes your data from you to the person you send it to without it reaching us. A link holds about 7,800 characters; past that the page tells you the dataset is too large to share that way instead of quietly truncating it. Charts are not stored here and there is no gallery of other people's charts.
Check the code
The two files that do the work are published as they run: parse.js reads your text, and chart.js does the maths and draws the SVG. Both are plain JavaScript with no dependencies, and both are covered by automated tests that check the tick values, the bin edges, the quartiles and the fitted line against known answers.
References
- Anscombe, F. J. (1973). Graphs in statistical analysis. The American Statistician, 27(1), 17-21.
- Cleveland, W. S., & McGill, R. (1984). Graphical perception: theory, experimentation, and application to the development of graphical methods. Journal of the American Statistical Association, 79(387), 531-554.
- Freedman, D., & Diaconis, P. (1981). On the histogram as a density estimator: L2 theory. Zeitschrift für Wahrscheinlichkeitstheorie und verwandte Gebiete, 57(4), 453-476.
- Heer, J., & Bostock, M. (2010). Crowdsourcing graphical perception: using Mechanical Turk to assess visualization design. Proceedings of CHI 2010, 203-212.
- Hyndman, R. J., & Fan, Y. (1996). Sample quantiles in statistical packages. The American Statistician, 50(4), 361-365.
- Sturges, H. A. (1926). The choice of a class interval. Journal of the American Statistical Association, 21(153), 65-66.
- Tufte, E. R. (1983). The Visual Display of Quantitative Information. Graphics Press.
- W3C (2023). Web Content Accessibility Guidelines (WCAG) 2.2, success criterion 1.1.1 Non-text Content.
- Shafranovich, Y. (2005). Common Format and MIME Type for Comma-Separated Values (CSV) Files. RFC 4180.