Every scatter plot maker mistake starts with the input: a row with an extra space, a unit string, or an absolute magnitude larger than 1e12 will silently disappear if the parser cannot count it. The Scatter Plot Maker refuses to hide skipped data — it reports valid points, invalid rows, and over-limit rows as three separate numbers in the summary so a missing point is never a mystery. Because every parsing decision, coordinate calculation, and SVG render runs locally in the current browser tab, you can edit the title and rerun in seconds to see exactly which rows changed status and why. That visibility is what separates a safe scatter workflow from one where a single typo can move a cluster or erase an experimental reading. The same strictness covers axes: independent linear scales do not assume an axis includes zero, and a constant column of identical values is expanded symmetrically so a single point still renders instead of producing a divide-by-zero error. The rest of this article walks through the exact input rules, axis labels, row-count meanings, and export boundaries so you can avoid every avoidable mistake before the chart is downloaded.

Why Scatter Plot Mistakes Slip Past Most Tools
Most online scatter tools fail in three predictable ways: rows with extra commas, scientific notation the parser rejects, or unit text the reader assumes is a number. Each becomes a row that never reaches the preview. Because the preview is regenerated from a single SVG string on every generation, a quiet truncation at row 50 looks identical to a deliberate cap at row 200. The Scatter Plot Maker prevents that confusion by counting everything explicitly. Invalid rows that fail the strict numeric check are listed in their own bucket, and over-limit rows that fall beyond the 200-row boundary are listed in a different bucket. Nothing is mixed into a generic "skipped" total, and invalid rows are not silently rewritten to a zero point at the axis origin where they would hide among the valid points.
That counting happens entirely on your machine. Parsing, coordinate calculation, axis expansion, and SVG creation all run in the current browser tab, so changing one row and regenerating the chart is the only feedback loop you need. Local processing also keeps your dataset private: no values, headers, or titles are sent to a server while you iterate.
Input Format Rules That Prevent Silent Failures
The parser accepts one strict format: a non-empty line containing exactly two comma-separated finite numbers. Signed values, decimals, zero, and scientific notation are accepted. Everything else is rejected and counted as invalid. The rejected categories include empty components, extra commas, unit text such as "5 kg" or "10 cm", hexadecimal literals, NaN, Infinity, and magnitudes above 1e12 (absolute value greater than one trillion). Blank rows are ignored rather than counted as invalid. Negative zero is normalized to zero so it does not appear as a distinct row in the summary.
If a row fails any of these checks, it does not become a zero point at the axis origin and it does not silently disappear. It is counted in the invalid total of the summary block. This is the single most important mistake to avoid: pasting rows from a spreadsheet that contains headers, merged cells, or unit suffixes and then trusting the result without reading the count.
| Input mistake | Example row | Reported as |
|---|---|---|
| Unit suffix | 5 kg, 3 | Invalid row |
| Extra comma | 1, 2, 3 | Invalid row |
| Empty component | 5, | Invalid row |
| Magnitude above 1e12 | 5e13, 2 | Invalid row |
| Row past the 200-row boundary | Row 201 of a 250-row paste | Over-limit row |
| Blank line | (empty) | Ignored |
Avoid Mistakes Step by Step with the Scatter Plot Maker
Follow the same six actions every time you paste a dataset so the summary block, the preview, and the downloaded SVG all reflect the same set of points.
- Add an optional title. The title box accepts plain text; XML-forbidden symbols such as ampersands, angle brackets, quotes, and apostrophes are escaped to entities, so keep the title short and meaningful so axis readers immediately understand the experiment.
- Prepare the rows. Strip headers, unit suffixes, and thousand separators before pasting, and replace tabs with commas so each non-empty row holds exactly two numeric tokens.
- Generate the chart and read the summary. The summary always reports three separate counts: valid points, invalid rows, and over-limit rows, including zero when one bucket is empty. Trust the summary, not the apparent density of the preview.
- Inspect the five reference labels on each axis. The smallest x maps to the left boundary, the largest x to the right, and the values in between are placed in direct proportion to their numeric distance. Repeat the same vertical reading for y.
- Check for constant axes. If every x or every y is identical, the tool expands that axis symmetrically (ten percent of the absolute constant, or one unit, whichever is larger) so the points are centered rather than collapsed into a divide-by-zero line.
- Download the SVG. The download uses the same percent-encoded SVG data URI as the on-page preview, so the exported file is exactly what you saw. Editing the input clears that URI and disables the old download.
Reading the Three Row Counts Without Confusion
The summary block never merges invalid and over-limit rows, and it never throws the third count away when one bucket is empty. For example, if you paste 250 non-empty rows, the parser checks the first 200 and reports the remaining 50 as over-limit, not invalid. The arithmetic is straightforward: 250 − 200 = 50. Rows above the limit were deliberately not parsed, so they remain in their own bucket and never contaminate the invalid total. If instead 30 of those first 200 rows contained a stray unit string and only 170 were clean numeric pairs, the summary would show 170 valid, 30 invalid, and 50 over-limit — a total of 250 with no hidden drops. Anything reported as invalid in the summary is a row you should fix in your source data and re-paste.
The 50,000 UTF-16 code unit input limit applies before row parsing, so a single very long row can reduce how many rows fit. If your paste trips that limit, shorten the title or split the rows into a second run. The check is independent of the 200-row boundary, and both limits surface as their own numbers in the summary so no drop is silently absorbed.
Axis Range Traps and the Constant-Value Edge Case
Most axis mistakes come from assuming that a scatter plot includes the origin. Both axes use independent linear scales that begin at the smallest value in your data and end at the largest. Zero only appears if it is in the dataset. This is by design so small-magnitude patterns remain visible, but it also means that two points with similar y values but very different x values can appear almost flat even when their numeric gap is real. Read the five reference labels on each axis before interpreting apparent spread; the wider the displayed range, the smaller the cluster looks for the same numeric gap. For a closer look at horizontal spacing, see the guide on x positions in a Scatter Plot Maker.
The constant-value edge case is the second axis trap. If every x is 3.5, the x domain would be 3.5 to 3.5 and division by zero would produce invalid coordinates. Instead, the tool expands the x range symmetrically to roughly 2.5 to 4.5 and centers every point on that axis. The same rule applies to a constant y. A single valid point therefore renders in the center of both axes instead of failing the entire run. The expansion is deterministic — ten percent of the absolute constant or one unit, whichever is larger — so repeated runs of the same data produce the same plot.
Where the Tool Stops: Statistical Claims and Dense Data
The chart is a vector visualization, not a statistical output. The Scatter Plot Maker does not calculate correlation, regression, a trend line, confidence intervals, error bars, density, clusters, or significance. Coordinates are rounded to three decimal places in the SVG, and axis labels use practical significant digits or scientific notation for very large and small values. For a fuller clarification on what the tool does and does not compute, see whether the Scatter Plot Maker calculates correlation or regression.
| Computed automatically | Not computed (use a dedicated package) |
|---|---|
| Independent linear axis ranges from data min and max | Correlation, regression, or trend line |
| Symmetric expansion of a constant axis | Confidence intervals or error bars |
| Strict row validation with three separate counts | Logarithmic or categorical scales |
| Standalone 800 by 500 SVG with text-on-circle labels | Density, clustering, or significance tests |
Overlapping points can hide one another, especially when identical pairs repeat, so dense datasets are not a strong fit for this preview. The exported SVG follows the W3C SVG 2 specification, which means lines, text, and circles stay sharp when the file is resized. Each circle also carries a text title with its exact formatted x and y values for SVG-aware viewers, so you can zoom or open the file in any vector editor and read the underlying numbers — a useful last check for transcription mistakes after the fact. For more on the SVG building blocks, the MDN SVG tutorial covers the same primitives used here. For publishable styling, accessible labeling, log scales, categorical color, or formal statistical analysis, retain the original dataset and use a full plotting library.