在{em> metafor 页面上查看funnel plot examples - 似乎有一种方法可以在漏斗图中添加标签。 funnel plot page提供了更多详细信息,但未列出添加标签的示例。
提供的示例:
library(metafor)
png(filename="contour_enhanced_funnel_plot.png",
res=92, width=680, height=600, type="cairo")
par(mar=c(5,4,1,2))
data(dat.bcg)
res <- rma(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, measure="RR",
slab=paste(author, year, sep=", "), method="REML")
funnel(res, level=c(90, 95, 99), shade=c("white", "gray", "darkgray"), refline=0)
dev.off()
包含标签字段,但示例中未生成任何标签字段。 如何在漏斗图中添加标签?
看here,似乎使用pch可能是另一种选择。有点像:
pch=paste(StudyName, StudyMeasure, sep=", ")
但这只产生一个字母点。 。
答案 0 :(得分:4)
在浏览rma()
和funnel.rma()
的来源(来自metafor的1.9-2版本)时,我找不到任何具体的条款来将标签放入漏斗图中。但是,要绘制自己的标签,这些位置原则上可以从rma
- 对象中重现,因此可以在不必重新计算所有内容的情况下构建这些数字。这种方法当然至少取决于yaxis
- 参数的选定值,但默认情况下sqrt(vi) ~ yi
似乎有效:
# ...
funnel(res, level=c(90, 95, 99), shade=c("white", "gray", "darkgray"), refline=0)
text(res$yi,sqrt(res$vi)+.016,res$slab,cex=.8)
有时,当重叠标签变得不可读时,图形外观当然会很糟糕。
或者你可能会尝试自己分配有意义的pch
- 值(通常应该是整数),并尝试用图例解释这些:
alloc.factor <- factor(dat.bcg$alloc)
stopifnot(res$k==length(alloc.factor))
funnel(res, level=c(90, 95, 99), shade=c("white", "gray", "darkgray"), refline=0,
pch=as.numeric(alloc.factor),lwd=2,cex=1.6)
legend("topright",levels(alloc.factor),pch=1:3,pt.lwd=2,cex=1.6)