Making a forest plot for a meta-analysis comes down to four steps: assemble a clean row of numbers for every included study, decide on an effect measure and a statistical model, run the pooling that produces a summary estimate, and render the studies and that pooled result as a single figure. The picture itself is easy; the part that decides whether your paper survives peer review is the maths behind it. Below is the data you need, the choices you have to make first, and a practical comparison of every realistic way to actually produce the plot, from a free forest plot generator that takes seconds to a few lines of R for analysts who want full control.
The data you need before you start
Nothing about the software matters until you have extracted the right numbers, so settle the data first. For every study you plan to include you need either a ready-made effect estimate with its uncertainty, or the raw figures that let the analysis compute one. There is no way to draw an honest plot from incomplete extraction, and a missing variance is the single most common reason a study has to be dropped at the last minute.
If a study already reports an effect and its interval
The simplest case is when each paper reports an effect size together with its confidence interval, for example an adjusted odds ratio of 1.42 with a 95 percent interval from 1.10 to 1.83. You can feed the estimate and the interval bounds straight into the analysis, because the interval encodes the standard error that the pooling needs. Keep the estimates on a consistent scale across studies before you combine them.
If you have raw cell counts for a binary outcome
For a binary outcome such as died or survived, responded or did not, the cleanest input is the raw two-by-two table for each study: the number of events and the total sample size in both the intervention group and the control group. From those four numbers the analysis computes an odds ratio or a risk ratio and its variance directly, which is more accurate than reverse-engineering an interval. If you are unsure which ratio to pool, our note on choosing between an odds ratio and a risk ratio explains when each measure is the honest one to report.
If you have continuous data
For a continuous outcome such as a pain score or blood pressure, each study needs to supply the mean, the standard deviation, and the sample size for both groups. Those feed a mean difference when every study used the same scale, or a standardized mean difference when outcomes were measured on different scales and have to be put on a common footing. Watch for studies that report a standard error or an interquartile range instead of a standard deviation, because those have to be converted before they can be combined.
Choose an effect measure and a model first
Two decisions shape everything the figure will say, and both belong before you open any tool. The first is the effect measure, which must match your outcome type and your review's clinical question: a ratio for binary outcomes, a difference for continuous ones. The second is the pooling model. A fixed-effect model assumes every study estimates one shared true effect, while a random-effects model allows the true effect to vary across studies and is the more defensible default when settings, populations, or protocols differ. The choice moves the position and width of the pooled diamond, so make it deliberately. Our explainer on a fixed-effect versus random-effects analysis walks through when each is appropriate, and you can see how the two models reweight your studies inside the weighted average calculator before you commit.
Ways to actually make the plot
With the data extracted and the model chosen, you have several routes to the finished figure. They differ mainly in speed, reproducibility, and how much statistical control you want. Here is how the realistic options compare.
A free online forest plot generator (fastest, no coding)
For most researchers the quickest path to a publication-ready figure is a dedicated online tool. You paste in your extracted numbers, pick the effect measure and model, and the tool does the pooling and the drawing in one pass, with no installation and no code. It is the right choice when you want a correct figure in seconds rather than an afternoon of debugging. The step-by-step below is for this route, and you can open the forest plot maker and follow along with your own studies.
- Enter one row per study, with a label such as the first author and year, and either the effect estimate and interval or the raw counts or the mean, standard deviation, and sample size for each group.
- Select the effect measure that matches your outcome, for example odds ratio, risk ratio, mean difference, or standardized mean difference.
- Choose the model, fixed-effect or random-effects, based on the decision you already made about between-study variation.
- Generate the plot and read the output: the study squares sized by study weight, the confidence interval lines, the pooled diamond, and the printed heterogeneity statistics such as the I-squared value.
- Export the figure at the resolution your journal requires and save the underlying numbers so the result is reproducible.
Because the same dataset drives both the calculation and the drawing, the tool removes the most dangerous gap in the whole process: a figure that looks polished but was built on a miscomputed variance. The statistics and the picture come from one source.
R with the metafor or meta packages
When you want a fully scripted, reproducible analysis, R is the standard. The metafor and meta packages both compute the pooled effect and draw the figure with a forest() function. You fit the model first, then pass the fitted object to forest() to render it. A minimal outline for binary data with metafor looks like this.
library(metafor)
# ai, n1i = events and n in treatment; ci, n2i = control
dat <- escalc(measure = "OR",
ai = ev_t, n1i = n_t,
ci = ev_c, n2i = n_c,
data = studies)
res <- rma(yi, vi, data = dat, method = "REML") # random-effects
forest(res, slab = paste(dat$author, dat$year))The strength of R is total control over labels, ordering, subgroup panels, and the model, plus a script anyone can rerun. The cost is a real learning curve and time spent on syntax, which is why many researchers reach for it only when a journal asks for something the point-and-click route cannot produce.
Stata with the meta forest command
In Stata the modern workflow is the built-in meta suite. You declare your data as meta data once, telling Stata which columns hold the effect and its variance or the raw counts, and then the meta forest command produces the figure. It is a natural fit for teams already analysing their data in Stata, and the declaration step keeps the effect measure and model consistent across every meta command you run afterwards.
RevMan for Cochrane reviews
If you are producing a Cochrane review, RevMan is the expected environment. You enter outcome data into the structured review framework and it generates the forest plots in the house style reviewers and editors anticipate. Outside the Cochrane workflow it is heavier than most projects need, but inside it the integration with the review structure is the point.
Why a spreadsheet is the wrong tool
It is tempting to build a forest plot in spreadsheet software, but it is tedious and error-prone. A spreadsheet will happily draw squares and lines wherever you tell it to, with no idea whether the underlying pooling is correct, so a transposed cell or a wrong variance formula produces a confident-looking figure that is quietly wrong. You also end up hand-positioning markers and faking the diamond, which breaks the moment a study is added or removed. Reserve spreadsheets for holding your extracted data, then let a real analysis compute the result.
The statistics must be right, not just the picture
Whichever route you take, hold onto the principle that a forest plot is a visualisation of a calculation, not the calculation itself. A clean figure built on a mistaken model, a wrong effect measure, or an unconverted standard deviation is more dangerous than an ugly one, because it looks trustworthy. After the plot renders, read its summary diamond and its heterogeneity output the same way a reviewer will, and pair it with a funnel plot to check for small-study effects before you trust a pooled estimate drawn from many small trials. If you want a refresher on interpreting the finished figure, our guide on interpreting every element of the plot covers the squares, intervals, and diamond in order.
The practical takeaway is that the same correctly extracted dataset, the per-study effect and interval, or the raw counts, or the mean, standard deviation, and sample size, will give you a publication-ready figure in seconds with a good online tool and full reproducibility in R if you need it. The work that actually earns the result is upstream: faithful extraction and a deliberate model choice within a sound quantitative synthesis. Get those right and the plot is the easy part.