Free · Scatter chart generator Regression · Statistics · Diagnostics Excel · CSV · JSON · Local only

Scatter Plot Maker: Create Scatter Charts with Trendlines, Tests & Statistics

Build a scatter plot online from pasted spreadsheet cells, clipboard data, CSV or TSV files, JSON, an editable data table, or quick X/Y pairs. Run data-quality checks, profile every column, apply transformations (log, z-score, winsorize, differencing), fit linear, polynomial, exponential, logarithmic, robust (Theil–Sen), and LOESS curves, compare multiple series, colour points by category, create bubble charts, run hypothesis tests (t, ANOVA, Mann–Whitney, Kruskal–Wallis), inspect correlation matrices, and export publication-ready charts plus reproducible code for Python, R, and JavaScript.

What is a scatter plot? A scatter plot displays paired observations as points on an X–Y coordinate plane. It helps you see direction, strength, shape, clusters, and unusual observations. This free scatter plot maker adds multiple trendline models, Pearson and Spearman correlation, R², residual and Q-Q diagnostics, marginal distributions, hypothesis tests, and PNG/SVG/CSV/JSON exports.

Online Scatter Plot Generator

Import data, map columns, and customize the chart, statistics, and exports.

Your scatter plot will appear here Load the example dataset or add at least two paired numeric columns to draw your first chart.
Select a point in the chart to inspect its values. Hover or focus a point for its tooltip.
1. Enter or import your data No dataset loaded

Quoted CSV values, escaped quotes, commas inside quoted fields, tabs, semicolons, and pipe-delimited tables are supported. A header row is optional. Clipboard access is requested only when you click Paste from clipboard.

Edit the loaded dataset directly, rename columns, and add or remove rows or columns. Up to 500 rows are shown at a time.

Edit the sample grid or load a dataset to edit its first rows.

Use comma, tab, semicolon, pipe, or whitespace between the two numbers. Optional third field = label. Example: 3.5, 72, Product A.

Drop a data file here

or choose a local file from your device

Supported: .csv, .tsv, .txt, .json · Maximum file size: 10 MB

Files are read in this browser. No upload service is used by the chart tool.

Object keys become column names. Array rows use the first row as the header when the “first row contains headers” option is selected.

The tool does not connect to a database. Paste the visible result of your query. Tab-separated, comma-separated, and pipe-separated formats are auto-detected.

Ready. Choose an input method or load the example dataset.
2. Map your data columns
Load data to choose Y columns.
Each selected Y variable can have its own correlation and regression summary. Grouping creates a separate fitted model for every group.
Parsed data preview
No rows
Data transformation Applied to numeric columns in the chart. Original data preserved.

Transforms are applied only to the plotted series and to statistics that operate on the current series. The underlying dataset is untouched and remains available for full CSV/JSON export.

Chart templates (presets)
3. Chart settings & appearance
Chart title and axis labels
Point style, series colours and labels
Axes, scales and limits

Manual limits are validated. Logarithmic axes require strictly positive values and cannot include zero.

Trendline, fit and prediction
Choose a fitted model and enter an X value to predict Y.
Annotations & reference lines
No annotations yet.
Saved datasets / recent history
Saved explicitly in this browser only.
No saved datasets yet.
Statistics are computed separately for each plotted series.
Load data to calculate correlation, regression, and summary statistics.
A plain-language interpretation will appear when a valid series is selected.
SeriesnPearson rSpearman ρR²SlopeInterceptRMSE
Load data to compare series.

Each series is fitted independently. R² is calculated on the original Y scale; it is not pooled across unrelated groups.

Residuals versus X
Normal Q–Q plot
Residual points appear after a regression model has been fitted.
Select tests

All tests use the current analysis series. p-values are two-sided when applicable. These tests report evidence against a null hypothesis; they do not measure effect size on their own.

TestStatisticdfp-valueDecision (α = 0.05)Note
Run tests to see results.
Choose a Y column and fit to see coefficients and fit statistics.
TermEstimateStd. errortp-value
No model fitted.

Pearson correlation across all numeric columns. Colour intensity shows strength.

Load data to compute the correlation matrix.
Choose grouping columns and build the table.
Load a dataset to inspect plotted points.

The table contains the valid plotted observations for the selected series.

Choose a language and click Generate to see runnable code that recreates the current chart.

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

  1. 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.
  2. Profile the data (optional). Click Profile columns to see per-column summaries, missingness, and sparkline distributions.
  3. 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.
  4. Transform if needed. Apply log, square-root, z-score, min–max scaling, winsorization, or centering to X or Y without changing the source data.
  5. 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.
  6. Fit a trendline. Compare linear, quadratic, cubic, exponential, logarithmic, power-law, Theil–Sen, and LOESS models. Each series receives its own fit and statistics.
  7. Review diagnostics. Examine Pearson correlation, Spearman rank correlation, R-squared, slope, intercept, residuals, and the Q–Q plot.
  8. Run tests. Test whether the correlation, slope, residual normality, homoscedasticity, or group differences are statistically significant.
  9. 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.
Quick start: Load the example dataset to see a working chart, trendline, statistics, and residual plot. Then replace it with your own paired observations.

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

TrendlineModel formWhen it may be usefulData requirement
Lineary = a + bxApproximately straight relationship; estimates slope and interceptAt least 2 distinct X values
Quadraticy = a + bx + cx²One broad bend, such as a U-shape or a peakAt least 3 distinct X values
Cubicy = a + bx + cx² + dx³More complex curvature; use cautiously to avoid overfittingAt least 4 distinct X values
Quarticdegree-4 polynomialVery flexible curvature, rarely justified without theoryAt least 5 distinct X values
Exponentialy = a · e^(bx)Positive-valued growth or decay patternsAll Y values must be positive
Logarithmicy = a + b · ln(x)Rapid initial change that gradually levels offAll X values must be positive
Power lawy = a · x^bScaling relationships in physics and biologyAll X and Y positive
Theil–SenMedian of pairwise slopesRobust to outliers; alternative to OLS linearAt least 2 distinct X values
LOESSLocal weighted regressionFlexible smooth curve without a fixed functional formEnough 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.

TestNull hypothesisStatistic
Pearson correlation significancer = 0t = r · √((n−2) / (1−r²))
Spearman rank correlation significanceρ = 0t = ρ · √((n−2) / (1−ρ²))
Regression slope ≠ 0Slope = 0t = b / SE(b)
Residual normality (Jarque–Bera)Residuals are normalJB = n/6 · (S² + (K−3)²/4)
Homoscedasticity (Breusch–Pagan)Residual variance is constantLM = n · R² from residuals²
Group differenceAll group means are equalANOVA 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.

Statistical and technical references

On this page · Jump to a section
  1. Scatter plot tool
  2. What is a scatter plot?
  3. How to make one
  4. Input methods
  5. How to read it
  6. Correlation and R²
  7. Trendline models
  8. Residual plot
  9. Q–Q plot
  10. Bubble charts
  11. Linear and log axes
  12. Transforms
  13. Confidence band
  14. Hypothesis tests
  15. Export formats
  16. Practical uses
  17. Limitations
  18. FAQs
  19. Related tools
Scroll to Top