← Back to Blog
· 9 min read

How to Make a Volcano Plot in 3 Minutes (No R, No Python)

Make a publication-ready volcano plot from a CSV in 3 minutes — no R, no ggplot2, no Python. Step-by-step tutorial with AI prompts and 300 DPI export.

How to Make a Volcano Plot in 3 Minutes (No R, No Python)

A volcano plot is fold change on one axis, significance on the other. It should take five minutes. Instead you're installing R, loading Bioconductor, wrestling EnhancedVolcano into shape, spending half an hour on ggrepel because three gene labels overlap in the upper left corner, tweaking theme() to get the colors right, wondering if red-green is still acceptable for publication, and trying to figure out how to make the whole thing look polished enough for Nature or Science.

This tutorial covers how to make a volcano plot without writing code: upload a CSV, describe the figure, export . The whole thing takes about three minutes once you have your differential expression table.

Volcano plot example 1
Volcano plot example 2
Volcano plot example 3
Volcano plot example 4

Volcano plots made in FigCanvas from differential expression data — no code written.

Pick a variant first — it saves you a rebuild

Before opening any tool, decide which volcano plot variant you actually need. This matters more than people think — most of the time spent "fixing" a volcano plot is really about realizing you wanted a different layout from the start.

VariantWhen to useKey visual
Top-N labeledPaper figures highlighting top hitsOnly top 10–20 genes labeled, rest gray
Threshold-lineFormal figures with stated cutoffsDashed lines at p and FC cutoffs
Pathway-highlightedStory-driven ("exhaustion markers are up")Specific gene set colored, rest gray

The examples above are mostly top-N labeled. Here's a threshold-line variant with explicit cutoffs:

A volcano plot with dashed red threshold lines at log2 hazard ratio 0 and -log10 p-value 1.0, showing TAOK3, INSR, FOXO3, MTOR, AKT1 on the significant left side and MTSS1, PRKDC, CHEK2, BCL10 on the right Threshold-line variant — you see these a lot in survival and hazard-ratio analyses.

When in doubt, go with top-N labeled. Reviewers can read it at a glance, and it reproduces well at column width.

How to make a volcano plot in FigCanvas

You need a CSV, TSV, TXT, or Excel file with at least three columns: gene/feature ID, log2 fold change, and a p-value. If you're coming from DESeq2, edgeR, or limma, the output tables work directly — you might just need to rename a column or two.

Step 1 — Drop in your data

Open FigCanvas, create a new project, and click Data Plot. Drag your file into the upload area.

The FigCanvas editor with the Insert panel open showing Data Plot, Image, Diagram, Frame, Upload, and Text options, and a volcano plot rendered on the canvas

Step 2 — Pick the chart type and generate

Once your file is uploaded, FigCanvas analyzes the columns and recommends chart types automatically. For a typical DE table, it'll suggest Scatter Plot (volcano plot) with log2_fold_change on X and neg_log10_p on Y already mapped. You can also add additional instructions if you want something specific — like labeling the top 10 genes or using a particular color scheme.

FigCanvas analysis panel recommending Scatter Plot (volcano plot) with log2_fold_change and neg_log10_p axes auto-detected from the uploaded CSV FigCanvas detects your columns and suggests the right chart type automatically.

Select the volcano plot option, hit Generate, and you'll get a first draft in 10–20 seconds.

Step 3 — Fix what's wrong, then export

Click the plot to open the side panel. The Prompt box lets you tweak the existing figure without starting over — FigCanvas calls this Instant Iterations.

The Data Plot side panel showing the uploaded CSV filename, a Prompt textbox for Instant Iterations, palette dropdown, and quality toggle, with a right-click context menu showing Copy, Crop, Vectorize, Download Code, and Export options Left: the iteration prompt. Right: export and code download.

Some prompts I've found useful:

  • "Add dashed threshold lines at padj = 0.05 and log2FC = ±1"
  • "Use the Nature palette"
  • "Only label the top 15 genes by padj, drop everything else"
  • "Switch to Okabe-Ito for colorblind safety"

Once it looks right: right-click → Export as... → **PNG ** for submission, SVG for editable vector, or PDF. You can also hit Download Code to get the Python script behind the figure — useful for the methods section or if a reviewer asks for the code.

Mistakes that get flagged in review

Using raw p-values instead of adjusted. You're testing 20,000 genes. Raw p < 0.05 gives you roughly 1,000 false positives. Plot FDR-adjusted values (padj or q-value) on the Y-axis, and say which correction method you used in the figure legend.

Red-green color scheme. About 8% of male reviewers are red-green colorblind. Some journals now reject red-green figures outright. Blue/red works, or use Okabe-Ito if you want to be safe.

Labeling every gene. A volcano plot with 200 labels is unreadable at column width. Pick the 10–15 genes you actually discuss in the text. Everything else stays gray.

Making a volcano plot online for RNA-seq and proteomics

Doing this online — in the browser, with nothing installed — is the fastest path when you have a single differential expression table and a deadline. The workflow above is effectively an online volcano plot maker: your DESeq2, edgeR, or limma output goes straight in, and you get an editable figure back without touching Bioconductor.

The same online approach works across omics data types:

  • RNA-seq — a standard DESeq2 or edgeR results table (log2FoldChange, padj) maps directly to the X and Y axes.
  • Proteomics — fold change and adjusted p-value from a mass-spec DE analysis behave the same way; label only the proteins you discuss in the text.
  • Microarray / limma — logFC and adjusted p-values from a topTable() export drop in without reshaping.

Because it runs online, there is no environment to maintain and no package versions to pin — useful when you only need one figure for one paper. When you need scripted reruns across dozens of contrasts, the R comparison below still applies.

When to use R and when not to

ToolTime to first plotPublication quality?Code output
R + EnhancedVolcano1–3 hrs (first time)Yes, after themingYes
Custom ggplot22–4 hrsYes, full controlYes
Excel~1 hrNot reallyNo
FigCanvas3–5 minYesYes (Pro)

R makes sense when you're generating 40 figures from the same pipeline and need scripted consistency. FigCanvas makes sense when you need one figure for one paper and you'd rather spend the afternoon on biology.

Try the Volcano Plot Generator — Free · Upload your DESeq2 or edgeR output, describe the plot, export .

FAQ

What is a volcano plot?

A volcano plot is a scatter plot that shows statistical significance (−log10 p-value) on the Y-axis and biological effect size (log2 fold change) on the X-axis. It's the standard way to visualize differential expression results from RNA-seq, proteomics, or other omics experiments. The name comes from the shape — significant genes with large fold changes form two "eruptions" on either side.

Can I make a volcano plot without R or Python?

Yes. FigCanvas lets you upload a CSV and generate a volcano plot from a text description — no coding required. You can also download the Python code behind the figure afterward if you need it for reproducibility.

How do I make a volcano plot from DESeq2 output?

Export your DESeq2 results table as a CSV (it should have columns like log2FoldChange and padj). Upload that file to FigCanvas, select the volcano plot option, and hit Generate. FigCanvas auto-detects the relevant columns.

What file formats does FigCanvas accept for volcano plots?

CSV, TSV, TXT, and Excel (.xlsx) files. As long as your file has columns for gene ID, fold change, and p-value, it will work.

Can I customize the colors and labels on my volcano plot?

Yes. After generating the initial plot, use the Prompt box to make changes — for example, "label only the top 10 genes" or "use blue and red instead of the default colors." You can also switch to colorblind-safe palettes like Okabe-Ito.

What export formats are available?

You can export as PNG, SVG, or PDF. You can also download the Python code that generated the plot.

Is there a free online volcano plot maker?

Yes. FigCanvas is an online volcano plot maker that runs entirely in the browser — upload a CSV or Excel table, generate the figure, and export it, with no R, Python, or install required. The free tier covers generating and exporting the plot; downloading the underlying Python code is a Pro feature.

How do I make an RNA-seq volcano plot from DESeq2 or edgeR?

Export your results table with a fold-change column (log2FoldChange) and an adjusted p-value column (padj or FDR), then upload it. FigCanvas auto-detects those columns, maps them to the axes, and generates an RNA-seq volcano plot you can label and recolor. edgeR and limma outputs work the same way once those two columns are present.


Ready to create your first figure?

Describe what you need. Get a publication-ready figure in minutes.

Start creating for free