Skip to content
plot.tools

Scatter plot maker

See whether two measures move together. Paste two columns of numbers and add a trend line with one click.

What this page does

  • First value column is X, the others are Y groups
  • Least-squares trend line
  • Equation and R² shown
  • Point labels from the first column
  • Both axes with round tick marks
Scatter plot: Study time and test score. 12 points, Score against Hours studied.Study time and test scoreSample data: one point per student0204060801000246810Hours studiedScore
PNG scale

SVG 1600 × 900 px · PNG 3200 × 1800 px · 16:9

No account and no watermark. The file has the Inter font embedded, named layers and the chart’s alt text, so it looks the same in a slide, a document or a browser. Not every app reads alt text stored in a file, so also paste it into the image’s alt text field.

Trend (Score): y = 5.27x + 45.7 · R² = 0.976

Alt text: Scatter plot: Study time and test score. 12 points, Score against Hours studied.

Your data

First column: labels. Other columns: one series each. The file is read in your browser and is not uploaded.

Table

12 × 2

Scatter: the first value column is X, each other column is a group of Y values.

Label
Remove row

Design

Chart type

Text

Numbers

Colours

Output

Proportion

320 to 4000 px. PNG multiplies it by the scale.

Background
  1. Step 1: Pick a chart typeBar, line, pie, scatter, area or radar. You can switch at any time.
  2. Step 2: Put in your numbersPaste cells from Excel or Google Sheets, load a file, or type in the table.
  3. Step 3: Download the pictureA PNG for slides and documents, or an SVG you can edit.

Start from an example

Click one to load it in the editor, then replace the sample numbers with yours.

Paste an X column and a Y column. The trend line is fitted by least squares and its equation and R² are shown under the chart. No account, and the data stays in your browser.

How to make a scatter plot

  1. Put one observation in each row: a person, a day, a product.
  2. Put the X values in the first number column and the Y values in the next. A text column in front, with a name for each row, is optional.
  3. Paste the cells in the Data panel. Each row becomes a point.
  4. Name both axes, with units. A scatter plot without axis titles cannot be read.
  5. Turn on the trend line if you want the fitted straight line and its R².

Reading the trend line

The line is fitted by least squares, and its equation is shown under the chart as y = slope × x + intercept. The slope says how much Y changes, on average, when X grows by one unit. R² runs from 0 to 1 and measures how closely the points follow the line.

Three cautions apply to any fitted line:

  • It describes, it does not explain. Points that rise together may both depend on something that is not in the table.
  • It is straight. A clear curve can have a low R². Look at the points before trusting the number.
  • It holds inside the data. Extending the line beyond the smallest or largest X is a guess.

Which variable goes on X

By convention X is the measure you set or that comes first (dose, time spent, price), and Y is the one that responds (effect, score, sales). If neither depends on the other, either order is fine; the trend line will differ, because it measures vertical distances.

Axes

Both axes get round tick marks from the data. With “Start the axis at zero” on, both include zero, which keeps proportions honest; turn it off when the points sit in a narrow band far from zero and would otherwise be squeezed into a corner.

If your X values are evenly spaced dates, a line graph is simpler to read. To compare a handful of named items on one measure, use a bar chart.

Why use Plot Tools

What you can check for yourself, without taking our word for it.

No account, no watermark
The download buttons work straight away. The exported file holds your chart, your text and the font, and nothing else.
Your data stays in the browser
Pasted cells and loaded files are parsed and drawn on this page. There is no upload step, and the site’s security policy only allows connections to itself.
The PNG matches the screen
The Inter font is embedded in the SVG before it is rasterised, so the labels in the PNG sit exactly where you saw them.
Decimal comma understood
1.234,56 and 3,5 are read correctly: the separator and the decimal mark are detected from the data, and you can override both.
Defaults a data editor would accept
Round axis marks, solid fills, one colour per series, bars that start at zero, and a square background that can be transparent.
Colour-blind-safe by default
The default palette is Okabe-Ito. A test in the code simulates red-green colour blindness and checks that its colours stay apart.
A link that carries the chart
“Copy link” packs the data and settings into the part of the address after #, which browsers do not send to servers.
Alt text written for you
A description is generated from the data and stored in the SVG and the PNG. Line and area charts also say how each of the first four series ends compared with its start. It is shown under the chart with a button to copy it.

Questions and answers

How should I arrange the columns?

Put X in the first value column and Y in the second. A label column before them is optional and names the points. Further columns are more groups of Y values that share the same X.

How is the trend line calculated?

By ordinary least squares: the straight line that makes the sum of the squared vertical distances to the points as small as possible. The slope, the intercept and R² appear under the chart.

What does R² tell me?

The share of the variation in Y that the straight line accounts for, from 0 to 1. A high value means the points lie close to the line. It does not show that X causes Y, and it says nothing about a curved relationship.

I pasted two numeric columns and no labels. Does that work?

Yes. On this page an all-numeric first column is read as X values, not as labels.

Can I label the points?

Yes. Turn on “Value labels” and each point shows the text from the label column. With more than 40 points the labels are left out, because they would overlap.