# LabCanvas Graphs & statistics: 70 scientific graph types with checked statistics

> A visual guide to LabCanvas Graphs & statistics: Prism-style data tables, 70 graph types from scatter dot plots to Kaplan–Meier, volcano and PAE plots, t tests, ANOVA, curve fits and survival tests checked against SciPy, and graphs that stay linked to their figure.

Published 2026-10-18 by LabCanvas team. https://www.labcanvas.com/blog/graphs-statistics-scientific-plots

![LabCanvas Graphs & statistics with a cell viability graph, a one-way ANOVA and significance brackets](https://www.labcanvas.com/shots/graphs.webp)

**LabCanvas Graphs & statistics** is a data analysis and graphing app in the style of GraphPad Prism. Data go into typed tables (column, XY, grouped, survival or contingency), analyses run on them and graphs draw from them, with significance brackets placed from the test results. There are 70 graph types, and every statistical method is checked against SciPy and statsmodels in automated tests. Graphs go into figures as editable vectors that stay linked to their data.

## Every graph type, by category

Each picture below was drawn by the app from its example data, exactly as it appears when you pick the graph type. Open the app and the same graphs are one click away.

### Column

:::grid
![Scatter dot plot made in LabCanvas Graphs: Every value, with the mean and SD](https://www.labcanvas.com/blog/graphs/scatter.webp "Scatter dot plot")
![Bars with points made in LabCanvas Graphs: Mean ± SEM bars with every value on top](https://www.labcanvas.com/blog/graphs/scatterBar.webp "Bars with points")
![Bar chart made in LabCanvas Graphs: Mean ± SEM](https://www.labcanvas.com/blog/graphs/bar.webp "Bar chart")
![Mean ± SD made in LabCanvas Graphs: A symbol at each mean with SD error bars](https://www.labcanvas.com/blog/graphs/meanError.webp "Mean ± SD")
![Box & whiskers made in LabCanvas Graphs: Median, quartiles and Tukey whiskers](https://www.labcanvas.com/blog/graphs/box.webp "Box & whiskers")
![Violin plot made in LabCanvas Graphs: The distribution with median and quartiles](https://www.labcanvas.com/blog/graphs/violin.webp "Violin plot")
![Floating bars made in LabCanvas Graphs: Minimum to maximum with the mean](https://www.labcanvas.com/blog/graphs/floatingBar.webp "Floating bars")
![Before–after made in LabCanvas Graphs: Paired values joined by lines](https://www.labcanvas.com/blog/graphs/beforeAfter.webp "Before–after")
![Estimation plot made in LabCanvas Graphs: Two groups and the difference with its 95% CI](https://www.labcanvas.com/blog/graphs/estimation.webp "Estimation plot")
![Find outliers made in LabCanvas Graphs: ROUT or Grubbs: flag, then exclude in one click](https://www.labcanvas.com/blog/graphs/outliers.webp "Find outliers")
:::

### XY

:::grid
![XY scatter made in LabCanvas Graphs: Points with X and Y values](https://www.labcanvas.com/blog/graphs/xyScatter.webp "XY scatter")
![Line graph made in LabCanvas Graphs: Mean ± SEM joined by lines](https://www.labcanvas.com/blog/graphs/xyLine.webp "Line graph")
![Smooth curve made in LabCanvas Graphs: A spline through the means](https://www.labcanvas.com/blog/graphs/xySpline.webp "Smooth curve")
![Area chart made in LabCanvas Graphs: Lines with the area below filled](https://www.labcanvas.com/blog/graphs/xyArea.webp "Area chart")
![Linear regression made in LabCanvas Graphs: Best-fit line with its 95% confidence band](https://www.labcanvas.com/blog/graphs/regression.webp "Linear regression")
![Dose–response curve made in LabCanvas Graphs: Sigmoidal fit with EC₅₀](https://www.labcanvas.com/blog/graphs/doseResponse.webp "Dose–response curve")
![Bubble plot made in LabCanvas Graphs: Bubble size from a second data set](https://www.labcanvas.com/blog/graphs/bubble.webp "Bubble plot")
:::

### Grouped

:::grid
![Grouped bars made in LabCanvas Graphs: Mean ± SEM side by side in each row](https://www.labcanvas.com/blog/graphs/groupedBar.webp "Grouped bars")
![Grouped scatter made in LabCanvas Graphs: Every replicate, side by side](https://www.labcanvas.com/blog/graphs/groupedScatter.webp "Grouped scatter")
![Grouped box plot made in LabCanvas Graphs: Box & whiskers side by side in each row](https://www.labcanvas.com/blog/graphs/groupedBox.webp "Grouped box plot")
![Time course made in LabCanvas Graphs: Means joined across rows](https://www.labcanvas.com/blog/graphs/groupedLine.webp "Time course")
![Stacked bars made in LabCanvas Graphs: Means stacked in each row](https://www.labcanvas.com/blog/graphs/stackedBar.webp "Stacked bars")
![100% stacked bars made in LabCanvas Graphs: Each row as percentages](https://www.labcanvas.com/blog/graphs/stacked100.webp "100% stacked bars")
![Heat map made in LabCanvas Graphs: Rows × data sets coloured by value](https://www.labcanvas.com/blog/graphs/heatmap.webp "Heat map")
![Volcano plot made in LabCanvas Graphs: A t test per row; discoveries by false discovery rate](https://www.labcanvas.com/blog/graphs/volcano.webp "Volcano plot")
![Clustered heat map made in LabCanvas Graphs: Rows and columns reordered by hierarchical clustering, with dendrograms gene expression](https://www.labcanvas.com/blog/graphs/clusterHeatmap.webp "Clustered heat map")
:::

### Distributions

:::grid
![Histogram made in LabCanvas Graphs: Frequency distribution](https://www.labcanvas.com/blog/graphs/histogram.webp "Histogram")
![Cumulative frequency made in LabCanvas Graphs: Cumulative distribution of each column](https://www.labcanvas.com/blog/graphs/cumulative.webp "Cumulative frequency")
![QQ plot made in LabCanvas Graphs: Is it normal? Actual vs. predicted values](https://www.labcanvas.com/blog/graphs/qq.webp "QQ plot")
:::

### Survival

:::grid
![Kaplan–Meier made in LabCanvas Graphs: Survival curves with censor ticks](https://www.labcanvas.com/blog/graphs/survival.webp "Kaplan–Meier")
![Cumulative incidence made in LabCanvas Graphs: Percent with the event over time](https://www.labcanvas.com/blog/graphs/survivalDeath.webp "Cumulative incidence")
![Kaplan–Meier with numbers at risk made in LabCanvas Graphs: Survival curves with the number at risk under the axis](https://www.labcanvas.com/blog/graphs/survivalRisk.webp "Kaplan–Meier with numbers at risk")
:::

### Contingency

:::grid
![Counts by group made in LabCanvas Graphs: Outcome counts or % side by side](https://www.labcanvas.com/blog/graphs/contingencyBar.webp "Counts by group")
![Stacked percentages made in LabCanvas Graphs: Outcomes as % of each group](https://www.labcanvas.com/blog/graphs/contingencyStacked.webp "Stacked percentages")
![Rater agreement kappa made in LabCanvas Graphs: Two raters classify the same subjects: Cohen's kappa](https://www.labcanvas.com/blog/graphs/agreement.webp "Rater agreement kappa")
:::

### Parts of whole

:::grid
![Pie chart made in LabCanvas Graphs: Fractions of a whole](https://www.labcanvas.com/blog/graphs/pie.webp "Pie chart")
![Donut chart made in LabCanvas Graphs: A pie with a hole](https://www.labcanvas.com/blog/graphs/donut.webp "Donut chart")
![100% bar made in LabCanvas Graphs: Parts stacked in one bar](https://www.labcanvas.com/blog/graphs/partsBar.webp "100% bar")
:::

### Methods & diagnostics

:::grid
![Bland–Altman made in LabCanvas Graphs: Agreement of two methods](https://www.labcanvas.com/blog/graphs/blandAltman.webp "Bland–Altman")
![ROC curve made in LabCanvas Graphs: Diagnostic accuracy with the area](https://www.labcanvas.com/blog/graphs/roc.webp "ROC curve")
![Correlation matrix made in LabCanvas Graphs: Pearson r of every pair of variables](https://www.labcanvas.com/blog/graphs/corrMatrix.webp "Correlation matrix")
![Method comparison Deming made in LabCanvas Graphs: A line when both X and Y have measurement error](https://www.labcanvas.com/blog/graphs/deming.webp "Method comparison Deming")
:::

### Curve fits & standard curves

:::grid
![Standard curve ELISA made in LabCanvas Graphs: 4PL fit of the standards; unknowns read off with 95% CIs](https://www.labcanvas.com/blog/graphs/standardCurve.webp "Standard curve ELISA")
![Enzyme inhibition made in LabCanvas Graphs: Competitive inhibition fitted globally; I from each data set title](https://www.labcanvas.com/blog/graphs/enzymeInhibition.webp "Enzyme inhibition")
![Bell-shaped dose–response made in LabCanvas Graphs: Stimulation then inhibition: two EC₅₀s and a peak](https://www.labcanvas.com/blog/graphs/bellShaped.webp "Bell-shaped dose–response")
![Residual plot made in LabCanvas Graphs: Residuals of a curve fit against X](https://www.labcanvas.com/blog/graphs/residualPlot.webp "Residual plot")
![Logistic curve made in LabCanvas Graphs: Probability of a 0/1 outcome against X, with the odds ratio](https://www.labcanvas.com/blog/graphs/logistic.webp "Logistic curve")
![LOWESS / spline made in LabCanvas Graphs: A smooth curve through noisy data, no equation needed](https://www.labcanvas.com/blog/graphs/smoothCurve.webp "LOWESS / spline")
:::

### Nested

:::grid
![Nested scatter made in LabCanvas Graphs: Animals or wells within each group; nested t test](https://www.labcanvas.com/blog/graphs/nestedScatter.webp "Nested scatter")
:::

### Multiple variables

:::grid
![Variable scatter made in LabCanvas Graphs: One variable against another, coloured by a third](https://www.labcanvas.com/blog/graphs/variables.webp "Variable scatter")
![Forest plot made in LabCanvas Graphs: Hazard ratios from a Cox regression, with 95% CIs](https://www.labcanvas.com/blog/graphs/forestRegression.webp "Forest plot")
![Predicted survival made in LabCanvas Graphs: Survival curves a Cox regression predicts for each group or values you enter](https://www.labcanvas.com/blog/graphs/coxPredicted.webp "Predicted survival")
![PCA biplot made in LabCanvas Graphs: Principal components: scores and loadings together](https://www.labcanvas.com/blog/graphs/pcaBiplot.webp "PCA biplot")
![Scree plot made in LabCanvas Graphs: Variance explained by each principal component](https://www.labcanvas.com/blog/graphs/pcaScree.webp "Scree plot")
![Counts Poisson made in LabCanvas Graphs: Rate ratios of counts, with a forest plot](https://www.labcanvas.com/blog/graphs/poisson.webp "Counts Poisson")
![Three-factor design made in LabCanvas Graphs: Three-way ANOVA with interactions](https://www.labcanvas.com/blog/graphs/threeWay.webp "Three-factor design")
![K-means clusters made in LabCanvas Graphs: Rows split into K clusters, on the first two principal components](https://www.labcanvas.com/blog/graphs/kmeans.webp "K-means clusters")
:::

### Proteins & drug discovery

:::grid
![Predicted aligned error PAE made in LabCanvas Graphs: AlphaFold-style matrix: low error within domains, high between them](https://www.labcanvas.com/blog/graphs/pae.webp "Predicted aligned error PAE")
![Per-residue confidence pLDDT made in LabCanvas Graphs: Confidence along the sequence in the AlphaFold colour bands](https://www.labcanvas.com/blog/graphs/plddt.webp "Per-residue confidence pLDDT")
![Contact map made in LabCanvas Graphs: Predicted residue–residue contact probabilities](https://www.labcanvas.com/blog/graphs/contacts.webp "Contact map")
![Ramachandran plot made in LabCanvas Graphs: ψ against φ with the favoured and allowed regions](https://www.labcanvas.com/blog/graphs/rama.webp "Ramachandran plot")
![Parity plot ML model made in LabCanvas Graphs: Predicted vs. measured potency with R², RMSE and MAE](https://www.labcanvas.com/blog/graphs/parity.webp "Parity plot ML model")
![Chemical space map made in LabCanvas Graphs: Compounds by weight and lipophilicity, coloured by potency](https://www.labcanvas.com/blog/graphs/chemSpace.webp "Chemical space map")
![Property radar drug-likeness made in LabCanvas Graphs: Each property as a fraction of its rule-of-five limit, one polygon per drug](https://www.labcanvas.com/blog/graphs/radar.webp "Property radar drug-likeness")
![Confusion matrix made in LabCanvas Graphs: Classifier counts: true class by row, predicted by column](https://www.labcanvas.com/blog/graphs/confusion.webp "Confusion matrix")
![Precision–recall curve made in LabCanvas Graphs: Virtual screen or classifier: precision against recall with average precision](https://www.labcanvas.com/blog/graphs/prCurve.webp "Precision–recall curve")
![Enrichment curve made in LabCanvas Graphs: Actives found against library screened, with EF 1% and EF 5%](https://www.labcanvas.com/blog/graphs/enrichment.webp "Enrichment curve")
![3D free energy landscape made in LabCanvas Graphs: Energy over two collective variables as a surface](https://www.labcanvas.com/blog/graphs/landscape.webp "3D free energy landscape")
![Drug combination surface made in LabCanvas Graphs: Response over two drug doses as a 3D surface](https://www.labcanvas.com/blog/graphs/combo.webp "Drug combination surface")
![3D scatter made in LabCanvas Graphs: Three properties per compound, coloured by a fourth](https://www.labcanvas.com/blog/graphs/scatter3d.webp "3D scatter")
:::

## Statistics you can check

| Analysis | Methods |
| --- | --- |
| Compare two groups | Unpaired and paired t tests, Welch’s t test, Mann–Whitney, Wilcoxon, Kolmogorov–Smirnov |
| Compare several groups | One- and two-way ANOVA, repeated measures, Kruskal–Wallis, Friedman; post-hoc tests such as Tukey, Dunnett and Šidák |
| Relationships | Linear regression, correlation, nonlinear curve fits including dose–response (EC50/IC50) |
| Survival | Kaplan–Meier curves, log-rank test, median survival |
| Contingency | Chi-square and Fisher’s exact test, odds and risk ratios |
| Diagnostics | ROC curves with AUC, Bland–Altman agreement, QQ plots |
| Cluster analysis | Hierarchical clustering drawn as a clustered heat map with dendrograms, k-means with elbow and silhouette plots |
| Simulation | Simulated XY and column data, families of theoretical curves, Monte Carlo power and parameter-spread analysis |

Results are validated against SciPy, statsmodels, lifelines and R in more than 42,000 automated checks, and the drawn graphs in 3,473 more ([how the statistics are validated](https://www.labcanvas.com/statistics-validation)).

## How to run a one-way ANOVA with post-hoc tests

1. Open [Graphs & statistics](https://www.labcanvas.com/plot.html) and pick **Bars with points** (Column).
2. Type or paste your values into the column table, one column per group.
3. In the **Stats** tab choose one-way ANOVA and Tukey or Dunnett comparisons.
4. Significance brackets appear on the graph; adjust their style in the panel.
5. Click **Add to figure** to place the graph, still linked to its data.

## Choosing a graph

- **Show every point** when groups are small (n < 20): scatter dot plots or bars with points.
- **Box and violin plots** show the spread of larger samples.
- **XY graphs** for time courses and dose–response curves; fit the curve rather than joining the dots.
- **Survival data** belong in Kaplan–Meier curves with the number at risk.
- **Matrices** (heat maps, correlation, PAE and contact maps) need a colour scale with a labelled range; cluster the rows and columns to show the groups in them.
- **Black-and-white print**: give bars hatched or dotted fills so they stay apart without colour.

## Several graphs on one page

A **layout** puts graphs from the project side by side in a grid on one page, with panel letters (A, B, C…), and exports the page as one PDF, TIFF or PNG. Each panel stays linked to its graph, so a corrected value updates the page.

## Frequently asked questions

### Is LabCanvas Graphs an alternative to GraphPad Prism?

It works in the same way: data tables (column, XY, grouped, survival, contingency), analyses and graphs in a project navigator, with significance brackets drawn from the tests. It runs in the browser and its graphs go straight into LabCanvas figures.

### Which statistical tests are there?

t tests (paired and unpaired), one- and two-way ANOVA with Tukey, Dunnett, Šidák and other post-hoc tests, nonparametric tests (Mann–Whitney, Wilcoxon, Kolmogorov–Smirnov, Kruskal–Wallis), linear and nonlinear regression including dose–response curves, log-rank survival tests, contingency tests (chi-square, Fisher), hierarchical clustering and k-means, and Monte Carlo simulations.

### How do I know the statistics are right?

Every analysis is checked against SciPy, statsmodels, lifelines and R in more than 42,000 automated tests, and every graph type is drawn from reference data and read back point by point (3,473 checks).

### Can I paste data from Excel?

Yes. Copy cells in Excel or Google Sheets and paste them into a data table; the table grows to fit.

### Do graphs update in my figure when the data change?

Yes. **Add to figure** places the graph as editable vectors that stay linked to the data, so a corrected value updates the figure it sits in.

## Related links

- [A free GraphPad Prism alternative](https://www.labcanvas.com/blog/graphpad-prism-alternative): What LabCanvas Graphs covers, and when Prism fits better
- [LabCanvas as a BioRender alternative](https://www.labcanvas.com/blog/biorender-alternative): A feature-by-feature comparison
- [Open Graphs & statistics](https://www.labcanvas.com/plot.html)
- [Run a one-way ANOVA: tutorial](https://www.labcanvas.com/tutorials)
- [Free statistics tools](https://www.labcanvas.com/tools): Calculators that answer one question each
- [The Figure editor guide](https://www.labcanvas.com/blog/figure-editor-scientific-illustration)
- [Research Poster guide](https://www.labcanvas.com/blog/research-poster-maker)
