What is a scatter plot?
A scatter plot (also called a scatter graph or scatter chart) displays two numeric variables as paired coordinates. Each observation becomes a point: its horizontal position represents the X value, and its vertical position represents the Y value. Unlike a bar chart, a scatter plot preserves the individual data pairs, making it useful for exploring how two measurements vary together.
Researchers, students, analysts, engineers, and business teams use scatter plots to spot positive or negative relationships, nonlinear patterns, clusters, gaps, and unusual observations. A scatter plot can suggest an association, but it cannot establish that one variable causes another.
How to make a scatter plot online
- Choose an input method. Paste cells copied from Excel or Google Sheets, import a CSV/TSV/TXT file, paste JSON, enter X/Y pairs, or edit the built-in table.
- Profile the data (optional). Click Profile columns to see per-column summaries, missingness, and sparkline distributions.
- Map the columns. Choose the numeric X column and one or more Y columns. Optionally select a category column to group observations, a numeric size column for bubbles, and a label column for point tooltips.
- Transform if needed. Apply log, square-root, z-score, min–max scaling, winsorization, or centering to X or Y without changing the source data.
- Customize the chart. Add a title and axis labels, choose the point palette and symbol style, set axis scales, and adjust the grid and point opacity.
- Fit a trendline. Compare linear, quadratic, cubic, exponential, logarithmic, power-law, Theil–Sen, and LOESS models. Each series receives its own fit and statistics.
- Review diagnostics. Examine Pearson correlation, Spearman rank correlation, R-squared, slope, intercept, residuals, and the Q–Q plot.
- Run tests. Test whether the correlation, slope, residual normality, homoscedasticity, or group differences are statistically significant.
- Export your work. Download PNG (1×–4×), SVG, CSV, JSON, a text report, a Markdown report, a LaTeX report, or reproducible Python/R/JS/SQL code; copy the share link for smaller datasets.
Ways to enter scatter plot data
Paste spreadsheet data
Copy a rectangular range from a spreadsheet and paste it directly into the paste tab. Tab-separated spreadsheet clipboard data is detected, and CSV parsing supports quoted text fields, escaped quotes, and line breaks inside quoted fields. If automatic delimiter detection is not right for your file, choose the delimiter manually. You can also decide whether the first row contains column headings.
Enter or edit a data table
The editable table is convenient for a short dataset or a quick correction. You can rename headings, edit individual cells, add rows, and create additional columns before applying the table to the chart. On small screens, the table scrolls inside its own container rather than widening the entire page.
Enter X/Y pairs
For simple two-variable data, type one pair per line. Separate X and Y with a comma, tab, semicolon, pipe, or whitespace. An optional third field can be used as a point label. This input method is useful when your observations are already written as coordinate pairs.
Import CSV, TSV, TXT, JSON, or SQL result
Open a local data file without sending it to a remote conversion service. CSV files follow the familiar quoted-field conventions described in RFC 4180; tab-separated and other common delimiter files can also be imported. JSON arrays of objects are converted into columns using their object keys. Paste a SQL query result directly into the SQL tab.
How to read a scatter plot
Direction
A positive association generally rises from left to right: larger X values tend to accompany larger Y values. A negative association falls from left to right. A cloud without a consistent straight-line direction may have little linear association, although it could still contain a curved or otherwise structured relationship.
Strength and shape
Points tightly clustered around a trend usually indicate a stronger relationship than a widely scattered cloud. Shape matters just as much: a U-shaped curve, plateau, or exponential pattern can be poorly summarized by a straight line. Always inspect the points before interpreting a coefficient.
Clusters and outliers
Separate clusters may represent different populations, products, locations, or experimental conditions. A point far from the rest may be an outlier; a point far along the X axis can have high leverage and may strongly influence the fitted line. Investigate unusual observations rather than deleting them automatically. Enable Highlight outliers to emphasize points with a standardized residual above 2.
Pearson correlation, Spearman correlation, and R²
Pearson's r measures the direction and strength of a linear relationship between the raw X and Y values. It ranges from −1 to +1. Values near +1 indicate a strong positive linear association; values near −1 indicate a strong negative linear association; values near zero indicate little linear association. It is undefined when either variable has zero variance.
Spearman's rho (ρ) is the Pearson correlation calculated on the ranks of the values. It measures a monotonic relationship and is useful when a relationship is consistently increasing or decreasing but is not necessarily linear. Tied observations receive average ranks. Pearson and Spearman answer different questions, so disagreement between them can be informative. The NIH Assay Guidance Manual describes Pearson and rank-based correlation and cautions that a coefficient alone does not communicate the full pattern. NIST's statistical handbook also emphasizes model diagnostics when assessing regression.
R-squared (R²) describes the fraction of variation in Y accounted for by the fitted model, on the original Y scale. An R² of 0.80 means the model accounts for 80% of the observed variation in Y in this dataset. It does not prove causation, guarantee accurate predictions, or show whether the model form is appropriate. A curved pattern can still have a misleadingly weak linear R².
Choosing a scatter plot trendline
| Trendline | Model form | When it may be useful | Data requirement |
|---|---|---|---|
| Linear | y = a + bx | Approximately straight relationship; estimates slope and intercept | At least 2 distinct X values |
| Quadratic | y = a + bx + cx² | One broad bend, such as a U-shape or a peak | At least 3 distinct X values |
| Cubic | y = a + bx + cx² + dx³ | More complex curvature; use cautiously to avoid overfitting | At least 4 distinct X values |
| Quartic | degree-4 polynomial | Very flexible curvature, rarely justified without theory | At least 5 distinct X values |
| Exponential | y = a · e^(bx) | Positive-valued growth or decay patterns | All Y values must be positive |
| Logarithmic | y = a + b · ln(x) | Rapid initial change that gradually levels off | All X values must be positive |
| Power law | y = a · x^b | Scaling relationships in physics and biology | All X and Y positive |
| Theil–Sen | Median of pairwise slopes | Robust to outliers; alternative to OLS linear | At least 2 distinct X values |
| LOESS | Local weighted regression | Flexible smooth curve without a fixed functional form | Enough points across X range |
Linear regression uses ordinary least squares: it estimates the parameters by minimizing the sum of squared residuals. Polynomial, exponential, and logarithmic models use transformed or polynomial least-squares fits; the displayed R² is calculated against observed Y values on the original scale so the model fit is not reported only in transformed units. NIST explains the least-squares estimation principle.
What is a residual plot?
A residual is the observed Y value minus the value predicted by the fitted model. A residual plot places these differences against X. A reasonable linear model often leaves residuals scattered around zero without a clear pattern. A curve can indicate that the model misses a nonlinear relationship; a widening funnel can indicate changing residual spread; and isolated large residuals deserve investigation.
The residual plot is a diagnostic aid, not an automatic pass/fail test. The shape, number of points, data collection process, and purpose of the analysis all matter. Residuals can also be correlated, non-normal, or heteroscedastic even when the plotted cloud looks subtle. See the NIST discussion of residual analysis.
Interpreting the normal Q–Q plot
A normal quantile–quantile plot compares the sorted residuals against the quantiles of a standard normal distribution. If the residuals are approximately normal, the points fall near the 45° reference line. A curved pattern suggests skewness; heavier-than-normal tails produce points that bend away from the line near the extremes. Small samples rarely look perfectly normal even when the assumption holds, so combine the visual inspection with the Jarque–Bera test if you need a formal check.
How a bubble chart adds a third variable
A bubble chart is a scatter plot where marker area represents a third numeric variable. The X and Y positions still encode the two main measurements; a larger bubble represents a larger size value. The tool scales marker area rather than radius so that the area is proportional to the mapped size value. Use bubbles when the third variable adds context, and keep in mind that people compare areas less precisely than positions.
Linear and logarithmic axes
A linear axis spaces equal numerical differences equally. A logarithmic axis spaces equal ratios equally, which can help when values span several orders of magnitude or when proportional changes are more meaningful than absolute changes. A logarithmic axis can show only positive values. Zero and negative observations are excluded from that axis and reported in the status message; use a linear axis when you need to retain them.
Data transformations before plotting
Transformations can make patterns easier to see, stabilize variance, or satisfy the assumptions of a linear model. The transformer in this tool applies to the plotted series without altering the underlying dataset, so you can compare raw and transformed views side by side and still export the original values.
- log10 / ln: useful when a variable spans several orders of magnitude and all values are positive.
- sqrt: variance-stabilizing for Poisson-like counts.
- square: the inverse of the square-root transform when a curved pattern suggests a quadratic relationship.
- z-score: centers to mean 0 with standard deviation 1, useful when the units of X and Y should not dominate the fit.
- min–max: rescales to [0,1] for relative comparison across series.
- winsorize (5–95%): clamps the extreme 10% of values to reduce the influence of outliers without discarding them.
- center: subtracts the mean, useful when plotting standardized residuals.
- 1 / x: hyperbola relationship used in reciprocal models.
What does the 95% confidence band show?
For a linear least-squares model, the confidence band displayed here is an approximate 95% confidence interval for the mean response at each X value. It describes uncertainty in the estimated regression line, not the range where 95% of individual observations are expected to fall. A prediction interval for individual observations would be wider. The band relies on the usual linear-model assumptions and should be interpreted alongside residual diagnostics.
Hypothesis tests in this tool
The tests below are calculated for the currently selected analysis series unless otherwise noted. They report p-values that quantify evidence against a null hypothesis under model assumptions; they do not measure practical effect size.
| Test | Null hypothesis | Statistic |
|---|---|---|
| Pearson correlation significance | r = 0 | t = r · √((n−2) / (1−r²)) |
| Spearman rank correlation significance | ρ = 0 | t = ρ · √((n−2) / (1−ρ²)) |
| Regression slope ≠ 0 | Slope = 0 | t = b / SE(b) |
| Residual normality (Jarque–Bera) | Residuals are normal | JB = n/6 · (S² + (K−3)²/4) |
| Homoscedasticity (Breusch–Pagan) | Residual variance is constant | LM = n · R² from residuals² |
| Group difference | All group means are equal | ANOVA F or Kruskal–Wallis H |
Export a scatter plot as PNG, SVG, CSV, JSON, Markdown, LaTeX, or code
- PNG: a raster image rendered at your selected 1×, 2×, 3×, or 4× scale. Use it for slides, documents, and web pages.
- SVG: a scalable vector image that stays crisp when resized and is suitable for many publishing and print workflows.
- CSV: the valid plotted observations for the selected series, including X, Y, label, group, and bubble size where available.
- JSON: the full parsed dataset, preserving column names and rows.
- Analysis report (text / Markdown / LaTeX): a written summary with per-series model statistics, equations, and diagnostics that can be pasted into a paper or a slide deck.
- Reproducible code (Python / R / JavaScript / SQL): ready-to-run code that recreates the current chart using matplotlib, ggplot2, Observable Plot, or an aggregate SQL query.
- Self-contained HTML: a single HTML page with the chart embedded as inline SVG and the chart metadata annotated, suitable for emailing or archival.
Practical uses for scatter charts
- Education: study time versus exam scores, practice hours versus performance, or experimental measurements.
- Marketing: advertising spend versus leads, page speed versus conversion rate, or price versus demand.
- Business analysis: revenue versus order volume, customer tenure versus lifetime value, or product size versus weight.
- Research and quality control: calibration measurements, lab results, manufacturing tolerances, and environmental observations.
- Data exploration: identify clusters, unusual points, and possible relationships before choosing a more formal statistical model.
Limitations and data handling
The chart is intended for exploratory analysis and common reporting workflows, not as a replacement for specialist statistical software. Polynomial fits can become unstable or overfit, especially with few observations or poorly scaled X values. Exponential, logarithmic, and power-law fits require their respective positive domains. Very large datasets can make an SVG chart slower to interact with, especially on lower-powered phones.
Dataset limits: each dataset can contain up to 20,000 data rows and 40 columns; local file imports are limited to 10 MB. The editable table displays up to 500 rows and lets you edit up to 20 columns at a time. If a loaded dataset has more than 500 rows, the remaining rows are retained when you apply edits to the visible portion. For display performance, the SVG preview draws up to 4,500 points per series; descriptive statistics, model fitting, and data exports use the full valid series rather than only the points drawn in the preview.
Keyboard use: move focus to the scatter chart and use the arrow keys to inspect adjacent points; Home and End move to the first and last point. This provides point-level inspection without creating a separate Tab stop for every observation.
Data parsing, chart rendering, calculations, and file reading are performed locally in this browser page. The tool code does not send your dataset to a charting or calculation API. If you explicitly save a dataset to Recent History, it is stored in this browser's local storage until you remove it or clear site data. Your hosting provider may still process normal website requests and analytics independently of this tool.
Frequently asked questions
How do I make a scatter plot online for free?
Choose Paste Data, Edit Table, X/Y Pairs, Open File, JSON, or SQL. Load at least two numeric columns, map one to X and one or more to Y, then customize the axes, points, and trendline. You can inspect chart points with the keyboard: focus the chart and use the arrow keys to move between observations. Use Paste from clipboard for copied spreadsheet cells, Check data quality to flag common data issues, and Download full dataset CSV to export every imported row. You can download the result as PNG, SVG, Markdown, LaTeX, or reproducible Python/R/JS/SQL code without signing up.
Can I make a scatter plot from Excel or Google Sheets?
Yes. Select the cells in your spreadsheet, copy them, then paste into the Paste Data box. Tab-separated clipboard data is supported, and you can map the appropriate X and Y columns after parsing.
Can I paste data directly from my clipboard?
Yes. Copy cells from Excel, Google Sheets, or another spreadsheet and choose Paste from clipboard. Your browser may ask for clipboard permission. You can also click inside the data box and use Ctrl+V or Command+V. The tool parses tab-separated clipboard data locally.
What does the data-quality check detect?
The optional quality report counts empty cells, invalid values in detected numeric columns, duplicate rows, and potential outliers using the 1.5 × IQR rule. It also identifies constant numeric columns and text columns. These are diagnostic flags only: the tool never removes or edits your observations automatically.
Can I upload a CSV or TSV file?
Yes. Open File accepts CSV, TSV, and text files up to 10 MB. Quoted CSV fields, escaped double quotes, and embedded line breaks in quoted values are handled by the parser. JSON files can be imported through the JSON input or file selector.
Can I plot multiple Y columns or categories?
Yes. Choose more than one Y column to create separate series, or select a group/category column to split observations into groups. The tool calculates correlation and regression separately for each resulting series and provides a comparison table with Pearson, Spearman, R², slope, intercept, and RMSE.
What is the difference between Pearson r and Spearman rho?
Pearson r measures linear association in the raw values. Spearman rho measures the association between the ranks and can capture monotonic relationships that are not straight lines. Tied values are assigned average ranks.
What does R-squared mean?
R² is the proportion of variation in Y accounted for by the fitted model on the original Y scale. It does not prove causation or guarantee that the model is suitable. Inspect the scatter plot and residuals too.
What is the 95% confidence band?
For a linear model, it displays the approximate confidence interval for the mean fitted response at each X value. It is not a prediction interval for individual observations, which would be wider.
What happens when I use a logarithmic axis?
Log axes require positive values. Observations with zero or negative values on a logarithmic axis are omitted from the plotted fit, and the tool reports how many points were excluded. Switch to a linear axis to include all finite values.
What is a bubble chart?
A bubble chart maps a third numeric variable to marker area. Each point still uses its X and Y coordinates, while the bubble size adds another dimension. The chart scales area rather than radius to avoid exaggerating differences.
How much data can the scatter plot maker process?
A dataset can contain up to 20,000 rows and 40 columns, and local file imports can be up to 10 MB. The editable table displays 500 rows at a time and supports editing up to 20 columns. For chart responsiveness, the visual preview draws up to 4,500 points per series, while statistics, trendline fitting, and exports use the full valid series.
What is the difference between Theil–Sen and OLS linear regression?
Theil–Sen estimates the slope as the median of all pairwise slopes. It is much less sensitive to outliers and to leverage than ordinary least squares, but it only gives a slope and intercept, and the R² it reports is calculated against the fitted values like any other model.
What does the Jarque–Bera test tell me?
Jarque–Bera is a normality test based on the third and fourth moments of the residuals. A large statistic with a small p-value suggests the residuals are unlikely to be normally distributed. Small samples have low power; large samples may detect trivial deviations, so interpret the p-value alongside the Q–Q plot.
How does multiple regression work here?
Choose a Y column and the tool fits an OLS model on all numeric X columns that have no missing values for that row. Coefficients, standard errors, and t-tests are shown in the table. Multiple regression is fitted only when enough complete rows exist.
Can I export the chart for a report or presentation?
Yes. Download PNG at 1×–4× resolution, export vector SVG, download the plotted observations as CSV, or save the full dataset as JSON. You can also copy the analysis summary or download a report in text, Markdown, or LaTeX.
Does the tool save or upload my data?
The chart calculations and imports run in your browser. The tool does not send data to a calculation API. If you click Save Dataset, the current dataset is saved to local storage in this browser; you can clear saved history at any time.
Does correlation prove that one variable causes another?
No. Correlation describes association, not causation. A third variable, selection effects, or coincidence can create an association. A scatter plot is a useful exploratory step, but causal claims require an appropriate study design and analysis.
Related AIToolsPros tools
Statistical and technical references
- NIST — Linear Least Squares Regression: least-squares parameter estimation.
- NIH / NCBI — Basic Guidelines for Reporting Non-Clinical Data: correlation, rank correlation, and clear statistical reporting.
- IETF RFC 4180: common CSV field quoting and record conventions.
- NIST — Residual Analysis: residual plots and model adequacy.
- Okabe & Ito — Color Universal Design: accessible scientific colour choices.
- NIST — Jarque–Bera Test: normality test based on skewness and kurtosis.
- NIST — Anderson–Darling and Other Tests: distribution-fit tests.
- Google Search Central — Structured Data Policies: accurate, visible, non-misleading markup.