Draw a funnel plot or radial plot (also called Galbraith plot) to assess funnel plot asymmetry in the active graphics window.
A contourenhanced funnel plot can be produced for assessing causes of funnel plot asymmetry.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54  funnel(x, ...)
radial(x, ...)
## Default S3 method:
funnel(x, y,
xlim=NULL, ylim=NULL, xlab=NULL, ylab=NULL,
comb.fixed=FALSE, comb.random=FALSE,
axes=TRUE,
pch=21, text=NULL, cex=1,
lty.fixed=2, lty.random=9,
lwd=1, lwd.fixed=lwd, lwd.random=lwd,
col="black", bg="darkgray",
col.fixed="black", col.random="black",
log="", yaxis="se", sm="",
contour.levels=NULL, col.contour,
ref=ifelse(backtransf & is.relative.effect(sm), 1, 0),
level=NULL,
studlab=FALSE, cex.studlab=0.8, pos.studlab = 2,
backtransf=TRUE, ...)
## S3 method for class 'meta'
funnel(x,
xlim=NULL, ylim=NULL, xlab=NULL, ylab=NULL,
comb.fixed=x$comb.fixed, comb.random=x$comb.random,
axes=TRUE,
pch=if (!inherits(x, "trimfill")) 21 else ifelse(x$trimfill, 1, 21),
text=NULL, cex=1,
lty.fixed=2, lty.random=9,
lwd=1, lwd.fixed=lwd, lwd.random=lwd,
col="black", bg="darkgray",
col.fixed="black", col.random="black",
log="", yaxis="se",
contour.levels=NULL, col.contour,
ref=ifelse(backtransf & is.relative.effect(x$sm), 1, 0),
level=x$level,
studlab=FALSE, cex.studlab=0.8, pos.studlab = 2,
backtransf=x$backtransf, ...)
## Default S3 method:
radial(x, y, xlim=NULL, ylim=NULL,
xlab="Inverse of standard error",
ylab="Standardised treatment effect (zscore)",
comb.fixed=TRUE, axes=TRUE,
pch=1, text=NULL, cex=1, col=NULL,
level=NULL, ...)
## S3 method for class 'meta'
radial(x, xlim=NULL, ylim=NULL,
xlab="Inverse of standard error",
ylab="Standardised treatment effect (zscore)",
comb.fixed=TRUE, axes=TRUE,
pch=1, text=NULL, cex=1, col=NULL,
level=NULL, ...)

x 
An object of class 
y 
Standard error of estimated treatment effect. 
xlim 
The x limits (min,max) of the plot. 
ylim 
The y limits (min,max) of the plot. 
xlab 
A label for the xaxis. 
ylab 
A label for the yaxis. 
comb.fixed 
A logical indicating whether the pooled fixed effect estimate should be plotted. 
comb.random 
A logical indicating whether the pooled random effects estimate should be plotted. 
axes 
A logical indicating whether axes should be drawn on the plot. 
pch 
The plotting symbol used for individual studies. 
text 
A character vector specifying the text to be used instead of plotting symbol. 
cex 
The magnification to be used for plotting symbol. 
lty.fixed 
Line type (pooled fixed effect estimate). 
lty.random 
Line type (pooled random effects estimate). 
col 
A vector with colour of plotting symbols. 
bg 
A vector with background colour of plotting symbols (only
used if 
col.fixed 
Color of line representign fixed effect estimate. 
col.random 
Color of line representign random effects estimate. 
lwd 
The line width for confidence intervals (if 
lwd.fixed 
The line width for fixed effect estimate (if

lwd.random 
The line width for random effects estimate (if

log 
A character string which contains 
yaxis 
A character string indicating which type of weights are
to be used. Either 
sm 
A character string indicating underlying summary measure,
e.g., 
contour.levels 
A numeric vector specifying contour levels to produce contourenhanced funnel plot. 
col.contour 
Colour of contours. 
ref 
Reference value (null effect) used to produce contourenhanced funnel plot. 
level 
The confidence level utilised in the plot. For the funnel
plot, confidence limits are not drawn if 
studlab 
A logical indicating whether study labels should be
printed in the graph. A vector with study labels can also be
provided (must be of same length as 
cex.studlab 
Size of study labels, see argument 
pos.studlab 
Position of study labels, see argument 
backtransf 
A logical indicating whether results for relative
summary measures (argument 
... 
Graphical arguments as in 
A funnel plot or radial plot, also called Galbraith plot, is drawn in
the active graphics window. If comb.fixed
is TRUE, the pooled
estimate of the fixed effect model is plotted. If level
is not
NULL, the corresponding confidence limits are drawn.
In the funnel plot, if yaxis
is "se"
, the standard error
of the treatment estimates is plotted on the yaxis which is likely to
be the best choice (Sterne & Egger, 2001). Other possible choices for
yaxis
are "invvar"
(inverse of the variance),
"invse"
(inverse of the standard error), and "size"
(study size).
For yaxis!="size"
, contourenhanced funnel plots can be
produced (Peters et al., 2008) by specifying the contour levels
(argument contour.levels
). By default (argument
col.contour
missing), suitable gray levels will be used to
distinguish the contours. Different colours can be chosen by argument
col.contour
.
Guido Schwarzer sc@imbi.unifreiburg.de, Petra Graham pgraham@efs.mq.edu.au
Galbraith RF (1988a), Graphical display of estimates having differing standard errors. Technometrics, 30, 271–281.
Galbraith RF (1988b), A note on graphical presentation of estimated odds ratios from several clinical trials. Statistics in Medicine, 7, 889–894.
Light RJ & Pillemer DB (1984), Summing Up. The Science of Reviewing Research. Cambridge: Harvard University Press.
Peters JL, Sutton AJ, Jones DR, Abrams KR, Rushton L (2008), Contourenhanced metaanalysis funnel plots help distinguish publication bias from other causes of asymmetry. Journal of Clinical Epidemiology, 61, 991–996.
Sterne JAC & Egger M (2001), Funnel plots for detecting bias in metaanalysis: Guidelines on choice of axis. Journal of Clinical Epidemiology, 54, 1046–1055.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44  data(Olkin95)
meta1 < metabin(event.e, n.e, event.c, n.c,
data=Olkin95, subset=c(41,47,51,59),
studlab=paste(author, year),
sm="RR", method="I")
#
# Radial plot
#
radial(meta1, level=0.95)
oldpar < par(mfrow=c(2, 2))
#
# Funnel plots
#
funnel(meta1)
#
# Same result as code above:
#
funnel(meta1$TE, meta1$seTE, sm="RR",
comb.fixed=TRUE, level=0.95)
#
# Funnel plot with confidence intervals,
# fixed effect estimate and contours
#
cc < funnel(meta1, comb.fixed=TRUE,
level=0.95, contour=c(0.9, 0.95, 0.99))$col.contour
legend(0.05, 0.05,
c("0.1 > p > 0.05", "0.05 > p > 0.01", "< 0.01"), fill=cc)
#
# Contourenhanced funnel plot with userchosen colours
#
funnel(meta1, comb.fixed=TRUE,
level=0.95, contour=c(0.9, 0.95, 0.99),
col.contour=c("darkgreen", "green", "lightgreen"),
lwd=2, cex=2, pch=16, studlab=TRUE, cex.studlab=1.25)
legend(0.05, 0.05,
c("0.1 > p > 0.05", "0.05 > p > 0.01", "< 0.01"),
fill=c("darkgreen", "green", "lightgreen"))
par(oldpar)

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.