我在这里运行示例,并注意到将 Total 连接到 Ineligible 的水平箭头boxGrobs
并不总是触及 Ineligible 的左边缘boxGrob
。
它似乎取决于 RStudio 中查看窗口的宽度。垂直箭头似乎并非如此,它似乎总是完美地连接到正确的顶部boxGrob
。
有没有办法强制箭头接触盒子的侧面而不是进一步?我正在尝试将输出保存为 pdf,默认情况下它似乎使用更宽的绘图窗口,因此我所有的水平箭头都没有与正确的框对齐。
狭窄的绘图窗口:
宽绘图窗口:
我已经尝试手动创建一个viewport
更大的区域,但这并没有改变 pdf 中的任何内容:
代码:
library(grid)
library(Gmisc)
vp <- grid::viewport(x = 10, y = 10, clip = 'on', xscale = c(0, 10),
yscale = c(0, 10), default.units = 'inch')
grid::pushViewport(vp)
leftx <- .25
midx <- .5
rightx <- .75
width <- .4
gp <- gpar(fill = "lightgrey")
# add box/connectors to the plot
(total <- boxGrob("Total\n N = NNN",
x=midx, y=.9, box_gp = gp, width = width))
(rando <- boxGrob("Randomized\n N = NNN",
x=midx, y=.75, box_gp = gp, width = width))
connectGrob(total, rando, "v")
(inel <- boxGrob("Ineligible\n N = NNN",
x=rightx, y=.825, box_gp = gp, width = .25, height = .05))
connectGrob(total, inel, "-")