connectGrob | R Documentation |
The function creates a grob that links two boxes together. It looks for which side it should attach the arrow, e.g. if the start is on top of the bottom it should attach to the bottom edge of ther start box and then to the top at the end.
connectGrob(
start,
end,
type = c("vertical", "horizontal", "L", "-", "Z", "N"),
subelmnt = c("right", "left"),
lty_gp = getOption("connectGrob", default = gpar(fill = "black")),
arrow_obj = getOption("connectGrobArrow", default = arrow(ends = "last", type =
"closed"))
)
## S3 method for class 'connect_boxes'
print(x, ...)
## S3 method for class 'connect_boxes'
plot(x, ...)
start |
The start box |
end |
The end box |
type |
How the boxes are stacked. The |
subelmnt |
If we have a split box we can specify the right/left x as the connector point. |
lty_gp |
The |
arrow_obj |
The arrow spec according to |
x |
The grob to print/plot |
... |
Passed to |
The exact positions of the line is stored at the attr(..., "line")
.
If you want to draw your own custom line all you need to do is check which
attr(my_line, "line")$x
and attr(my_line, "line")$y
you want
to attach to and then create your own custom linesGrob
.
grob with an arrow
Other flowchart components:
align
,
boxGrob()
,
boxPropGrob()
,
coords()
,
distance()
,
moveBox()
,
spread
library(grid)
grid.newpage()
# Initiate the boxes that we want to connect
start <- boxGrob("Top", x = .5, y = .8)
end <- boxGrob("Bottom", x = .5, y = .2)
side <- boxPropGrob("Side", "Left", "Right", prop = .3, x = .2, y = .8)
sub_side_left <- boxGrob("Left", x = attr(side, "coords")$left_x, y = .5)
sub_side_right <- boxGrob("Right", x = attr(side, "coords")$right_x, y = .5)
exclude <- boxGrob("Exclude:\n - Too sick\n - Prev. surgery", x = .8, y = .5, just = "left")
# Connect the boxes and print/plot them
connectGrob(start, end, "vertical")
connectGrob(start, side, "horizontal")
connectGrob(side, sub_side_left, "v", "l")
connectGrob(side, sub_side_right, "v", "r")
connectGrob(start, exclude, "L")
# Print the grobs
start
end
side
exclude
sub_side_left
sub_side_right
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.