3

我在这里运行示例,并注意到将 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, "-")
4

1 回答 1

1

暂时可以用绝对单位来解决这个问题。

示例代码:

(inel <- boxGrob("Ineligible\n N = NNN", 
                 x=rightx, y=.825, box_gp = gp, width = unit(2, "inch"), height = .05))
于 2019-09-25T01:26:50.563 回答