在绘图中删除文本

3

我正在使用来自plotrix库(版本:3.8-1)的绘图函数sizetree。此函数具有一个showcount参数,允许在图中显示一些带括号的计数(请参见下面的图片)。

但是,当我使用showcount=FALSE时,计数及其周围的括号为什么不消失呢?是否有办法使它们消失?

h = "
sssss ooooooo ggggg tttt
a     1       1     0
a     2       1     1
b     1       1     0
b     1       2     0
c     2       1     0
c     3       2     1
d     1       1     0
d     1       1     0
e     1       1     0"
h = read.table(text=h,h=T)

library(plotrix)
plotrix::sizetree(h,showcount = FALSE)

enter image description here


就此而言,看起来这个问题可能已经在plotrix的3.8.2版本中得到了修复? - Ben Bolker
1个回答

2

这个函数似乎存在一个bug。函数递归调用以添加每一列,但函数忽略了将showcount的值传递给后续的调用。这里有一种“修补”函数的方法。实质上,我们正在制作一份副本并更改一行代码。这种方法非常脆弱,可能会在包的其他版本中轻易地出现问题,但这已经在plotrix_3.7-8中进行了测试。

sizetree <- plotrix::sizetree
environment(sizetree) <- globalenv()
# This "path" navigates the AST for the function to find the offending line of code
path <- c(8, 3, 5, 4, 2, 3, 2, 3, 2, 3, 8, 3, 5)
orig <- body(sizetree)[[path]]
orig
## Problem line, no showcount= parameter
# sizetree(nextx, right, top, right + 1, lastcenter = top - xfreq[bar]/2, 
#     showval = showval, stacklabels = stacklabels, firstcall = FALSE, 
#     col = newcol, border = border, base.cex = base.cex)
## fix it up
scall <- orig
scall$showcount <- quote(showcount)
body(sizetree)[[path]] <- scall

然后我们可以运行

sizetree(h,showcount = FALSE)

获取不带计数的sizetree


我认为这个问题与您上面的回答完全一致。请问您是否可以考虑看一下? - Simon Harmel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接