X positions in a scatter plot maker are not equally spaced — each x value is placed in proportion to its numeric distance from the smallest and largest x in your dataset, using a linear scale. On a scatter plot with x values of 1, 2, and 10, the gap between 1 and 2 occupies roughly one-ninth of the horizontal plot width, while the gap between 2 and 10 occupies the remaining eight-ninths. The same rule applies independently to the y axis. This is how a true scatter plot represents two continuous numeric variables: the visual distance between two points reflects the difference in their underlying numbers, not a slot index in a categorical list. If you need equally spaced x positions because your x labels are categories rather than numbers, you actually want a different chart type — a bar chart with one bar per label — not a scatter plot. For paired numeric observations, the linear spacing is precisely the feature that lets you see clusters, gaps, and outliers at a glance without any extra calculation.

Why X Positions Aren't Equally Spaced in a Scatter Plot
The distinction between a numeric axis and a categorical axis is the single most important thing to understand before you interpret any scatter plot. A numeric axis treats the x values as continuous measurements on a real number line; a categorical axis treats them as labels in named slots, like "January," "February," and "March," where each label gets exactly the same horizontal width because there is no numeric distance between them.
Scatter plots always use a numeric axis. When you supply x values of 2.1, 5.4, and 9.0, the chart calculates a horizontal placement proportional to where each number sits between the smallest and largest x. Two x values that differ by 0.5 will appear roughly one-twentieth as far apart as two x values that differ by 10. If you came from a table where the rows happened to be evenly numbered, you might assume the points are equally spaced on the chart — but the chart is showing you the numbers, not the row index.
For data that came from pixel coordinates, sensor timestamps, or any source where the x values are integer counts, the visual positions can look evenly stepped at first glance. They are not. They are scaled by the underlying numeric value, which is what makes the tool useful for spotting clustering and drift at a glance. If you need to interpret pixel-style data where integer positions could mislead you about spacing, the guide on converting image data to a scatter plot shows the same rule in action with concrete examples.
How the Linear Scaling Formula Places Each Point
The placement rule has two independent parts: one for x and one for y. For the horizontal axis, the smallest x value in your input maps to the left edge of the plot area, and the largest x value maps to the right edge. Every other x is placed at the fraction (x − min) ÷ (max − min) of the way across. The vertical axis uses the same formula, but inverted so that larger y values sit higher on the chart.
Consider a small dataset where the smallest x is 2.0 and the largest x is 5.0. A point with x = 3.5 sits at (3.5 − 2.0) ÷ (5.0 − 2.0) = 1.5 ÷ 3.0 = 0.5 of the way across — the exact horizontal middle of the plot. A point with x = 4.0 sits at (4.0 − 2.0) ÷ (5.0 − 2.0) = 2.0 ÷ 3.0 ≈ 0.67, roughly two-thirds of the way across. A point with x = 2.0 itself sits exactly on the left boundary, and a point with x = 5.0 sits exactly on the right boundary.
Coordinates are rounded to three decimal places when the SVG is generated, so very small differences between x values can collapse to the same horizontal pixel in the preview. That is a rendering artifact of the file, not a change in the underlying data. Always retain your original rows for any analysis that needs the full numeric precision.
How to Verify Spacing in the Scatter Plot Maker
Here is the shortest path from pasted numbers to a chart whose x spacing you can verify visually.
- Open the Scatter Plot Maker in your browser and enter a descriptive title for the plot.
- Paste one strict x,y numeric pair per non-empty line. Each line must contain exactly two comma-separated numbers — signed values, decimals, zero, and scientific notation are all accepted.
- Click Generate and read the three counts in the summary panel: valid points, invalid rows, and over-limit rows. They are always reported separately, including when one of them is zero.
- Inspect the on-page preview. Read the five reference labels along the bottom of the chart (these are the displayed x range) and the five along the left edge (the displayed y range).
- Compare the horizontal gap between two points against the numeric difference in their x values. If the visual gap matches the proportion of their numeric gap, the linear scale is doing what you expect.
- Download the standalone SVG if you want a vector file you can open later or share. The download uses the same percent-encoded SVG string as the preview, so the file matches what you see on screen.
Reading Axis Labels and Reference Lines
The chart draws five vertical grid lines and five horizontal grid lines, with one numeric label at each one. These are not arbitrary tick marks — they are the displayed range of each axis, evenly spaced across the plotted values. Because both axes are independent, you can have an x range that runs from 0 to 50 next to a y range that runs from −200 to 800, and the grid will reflect each range on its own scale.
One detail that catches new users: the axes do not automatically include zero. If your x values are 45 and 47, the x axis will run from 45 to 47 even though zero is a valid number. The reference lines will sit at 45.0, 45.5, 46.0, 46.5, and 47.0. Any point at the very left of the chart is therefore at x = 45, not at zero, and a point near the middle is around 46, not around 23. Always read the labels before interpreting the apparent position or spread of a cluster.
| Axis element | What it shows |
|---|---|
| Min label (edge) | Smallest value displayed on that axis |
| Max label (edge) | Largest value displayed on that axis |
| Three middle labels | Evenly spaced reference values between min and max |
| Grid lines | Five vertical and five horizontal, one per label |
| Zero crossing | Only when 0 falls between the displayed min and max |
When a Constant Axis Breaks the Rule
There is one case where the linear formula cannot be applied directly: when every value on an axis is the same. The min and max would be equal, the denominator would be zero, and every point would collapse to the same coordinate.
The Scatter Plot Maker handles this by expanding the affected axis symmetrically around the constant. If every x value is 5, the x domain becomes 4 to 6 (or a wider range if the constant is large). The expansion is ten percent of the absolute constant or one unit, whichever is larger, so a constant of 100 would expand to 90 to 110, while a constant of 0.1 would expand to −0.9 to 1.1. The same rule applies independently to a constant y axis.
The practical effect is that a single valid point appears in the exact center of both axes instead of failing the chart. A vertical stack of points where only y varies will line up along a single x coordinate, but they will still be visible and labeled. Before assuming the displayed axis range is your real data range, check whether any row was rejected as invalid or counted as over-limit — those rows do not contribute to min and max because they were never parsed in the first place.
What the Tool Does Not Calculate for You
A scatter plot is a visualization, not a statistical engine. The Scatter Plot Maker does not compute a correlation coefficient, fit a regression line, draw error bars, estimate density, identify clusters, or report a p-value. The chart only positions each supplied pair on two linear axes and renders the result as a standalone SVG.
For dense data, categorical color, accessible per-point labeling, logarithmic scales, publication styling, or formal statistical analysis, use a dedicated plotting package such as matplotlib, ggplot, or a similar library. Bring your original dataset with you — the chart rounds coordinates to three decimals for display, and the SVG is meant for visual inspection rather than as a precision-preserving format. The on-page preview and downloaded file use the same percent-encoded data URI derived from one generated string, per the SVG 2 specification from the W3C, so the visual output matches the file exactly.
Overlapping points can also hide one another, especially when identical (x, y) pairs repeat in your input. The tool does not jitter, dodge, or stack duplicates. If two of your points share the same coordinates, the second one will sit directly under the first and you will only see one circle in the preview. Keep the original rows so you can spot repeats yourself, and verify the three row counts before treating the chart as a complete picture of your input.
If you're weighing options, Bar Chart Maker Example: Sample Data to SVG Walkthrough covers this in detail.