我绘制了一个具有非默认值annosym值的森林地块:
res <- rma(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, measure = 'OR', method='DL',
slab=paste(author, year))
forest(res,
annosym=c(' (','; ',')'),
ylim=c(-2,16)
)并尝试使用相同的annosym规范添加一些子分析结果:
dat.bcg.rand <- dat.bcg[dat.bcg$alloc=='random',]
res.rand <- rma.uni(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg.rand, measure = 'OR', method='DL',
slab=paste(author, year))
addpoly(res.rand, mlab='Random alloc.',atransf=exp, annosym=c(' (','; ',')'))看到警告:
Warning messages:
1: In text.default(...) : "annosym" is not a graphical parameter
2: In segments(...) : "annosym" is not a graphical parameter
3: In segments(...) : "annosym" is not a graphical parameter
4: In segments(...) : "annosym" is not a graphical parameter
5: In polygon(...) : "annosym" is not a graphical parameter
6: In text.default(...) : "annosym" is not a graphical parameter和一个混合了两个annosym规范的图:

你有什么解决办法吗?我真的真的需要在addpoly()中更改默认的addpoly()。
发布于 2021-12-03 17:41:56
不知道为什么我忘记在addpoly.default()和addpoly.rma()中实现addpoly.default()和addpoly.rma(),但是现在已经添加了这一点。因此,如果您获取metafor的“开发”版本,如下所述:
https://github.com/wviechtb/metafor#installation
那就应该管用了。
如果添加这样的多边形,另一个问题是:对齐是关闭的,因为与最后一个多边形对应的注释所需的空间较少。您可以使用:
addpoly(res.rand, mlab='Random alloc.', atransf=exp, annosym=c(' (','; ',')'), width=c(5,5,5))(或者仅仅是width=5)来修复这个问题(请注意,-0.75由5个字符组成)。由于默认情况下文本使用了非固定宽度的字体,所以对齐方式仍然会稍微关闭。如果您将它与fonts="mono"在forest()和addpoly()中结合起来,那么对齐将是正确的。您还可以使用默认的固定宽度字体以外的其他字体来使这个字体看起来更好看和/或只对注释使用固定宽度的字体(fonts可以使用两个值)。
https://stackoverflow.com/questions/70213648
复制相似问题