我试图使用gridExtra
在表格的主体周围放置一条相对较重的线(比如lwd = 2大小)。这里的MWE略微修改了本文档page。 gtable
正在开展工作,但gtable
的文档很薄;看代码并没什么帮助。
g <- tableGrob(iris[1:4, 1:3], rows = NULL)
separators <- replicate(1,
segmentsGrob(x1 = unit(0,"npc")),
simplify=FALSE)
g <- gtable::gtable_add_grob(g, grobs = separators,
t = 1, b = nrow(g), l = 1)
g <- gtable::gtable_add_grob(g, grobs = separators,
t = 1, b = nrow(g), r = 3) # error: no default for l
grid.draw(g)
我试图获得这样的效果(不同的数据):
对gtable::gtable_add_grob
的第二次调用给出了错误,所以很明显我的简单概念r = 3
将该行放在第3列的右侧是天真的。关于如何在桌子周围加一条较重线的任何建议?如果我可以理解左边和右边的想法,我假设可以类似地绘制顶部和底部线。
附注:gridExtra
最近修订为使用gtable
。以前我用类似下面的命令制作了上面的图形;如果可能的话,我希望能够非常接近相同的设置(新方法的行以灰色级别交替,更好;我真的在旧的show.box
功能之后)
myt <- gridExtra::tableGrob(aov1, show.box = TRUE,
show.rownames = TRUE, show.colnames = TRUE,
show.csep = TRUE, show.rsep = TRUE,
separator = "black", gp = grid::gpar(cex = table[3]))
答案 0 :(得分:2)
你可以添加一个rectGrob,覆盖你想要关在笼子里的所有细胞,
library(gridExtra)
library(gtable)
library(grid)
g <- tableGrob(iris[1:4, 1:3])
g <- gtable::gtable_add_grob(g,
grobs = rectGrob(gp=gpar(fill=NA,
lwd=2)),
t = 2, b = nrow(g), l = 2, r = ncol(g))
grid.newpage()
grid.draw(g)