首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元use : addpoly()中使用annosym参数

元use : addpoly()中使用annosym参数
EN

Stack Overflow用户
提问于 2021-12-03 11:31:23
回答 1查看 110关注 0票数 1

我绘制了一个具有非默认值annosym值的森林地块:

代码语言:javascript
复制
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规范添加一些子分析结果:

代码语言:javascript
复制
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(' (','; ',')'))

看到警告:

代码语言:javascript
复制
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()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-03 17:41:56

不知道为什么我忘记在addpoly.default()addpoly.rma()中实现addpoly.default()addpoly.rma(),但是现在已经添加了这一点。因此,如果您获取metafor的“开发”版本,如下所述:

https://github.com/wviechtb/metafor#installation

那就应该管用了。

如果添加这样的多边形,另一个问题是:对齐是关闭的,因为与最后一个多边形对应的注释所需的空间较少。您可以使用:

代码语言:javascript
复制
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可以使用两个值)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70213648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档