Borders
- Within
grob_layout()
, the grob_row()
and
grob_col()
functions are able to put borders around their
contents.
grob_layout(
grob_row(
grob_col(1),
grob_col(border = TRUE, 2)
),
grob_row(
border = TRUE,
grob_col(3),
grob_col(
border = TRUE,
grob_row(border = TRUE, grob_col(border = TRUE, 4)),
grob_row(border = TRUE, grob_col(border = TRUE, 5))
)
),
height = 100,
width = 100
) %>%
view_grob()
- Those borders are customizable. With the
border_aes_list
argument and the ga_list()
function, the user can adjust
- Which border sides to display (
border_sides
)
- The border width (
border_width
)
- The border color (
border_color
)
- For more information on the aesthetics above, see
?ga_list
.
grob_layout(
grob_row(
grob_col(1),
grob_col(
border = TRUE,
border_aes_list = ga_list(
border_color = "red"
),
2
)
),
grob_row(
border = TRUE,
border_aes_list = ga_list(
border_sides = "top",
border_width = 5
),
grob_col(3),
grob_col(
border = TRUE,
border_aes_list = ga_list(
border_sides = "left, bottom",
border_color = "blue",
border_width = 4
),
4
)
),
height = 100,
width = 100
) %>%
view_grob()
Titles
- Titles can be added to either
grob_layout()
,
grob_row()
or grob_col()
.
grob_layout(
title = "grob-layout title",
grob_row(
grob_col(1),
grob_col(title = "grob-column title", 2)
),
grob_row(
title = "grob-row title",
grob_col(3),
grob_col(4)
)
) %>%
view_grob(height = 100, width = 100)
- The height of the title can be adjusted by either giving an explicit
height in millimeters to the
title_height
argument, or
changing the title height proportion with title_p
.
title_p
corresponds to the proportion of the height
allotted to the grob in question which will be given to the title.
title_height
will override title_p
in all
cases.
grob_layout(
title = "grob-layout title",
title_height = 20,
grob_row(
grob_col(1),
grob_col(
title = "grob-column title",
title_p = 0.5,
2
)
),
grob_row(
title = "grob-row title",
title_height = 10,
grob_col(3),
grob_col(4)
)
) %>%
view_grob(height = 100, width = 100)
- The aesthetics of the title can be altered as well with the
title_aes_list
argument and ga_list()
.
grob_layout(
title = "grob-layout title",
title_height = 20,
title_aes_list = ga_list(
text_color = "blue",
border_sides = "bottom"
),
grob_row(
grob_col(1),
grob_col(
title = "grob-column title",
title_p = 0.5,
title_aes_list = ga_list(
font_face = 3,
text_color = "white",
background_color = "gray40"
),
2
)
)
) %>%
view_grob(height = 100, width = 100)
Captions
- Everything that applies to titles also applies to captions, as
grob_layout()
, grob_col()
and
grob_row()
are all equipped with caption
,
caption_aes_list
, caption_p
and
caption_height
arguments.
- By default, captions are more subtle than titles, but their
appearances can be altered however the user wants.
grob_layout(
caption = "grob-layout caption",
grob_row(
grob_col(1),
grob_col(caption = "grob-column caption", 2)
),
grob_row(
caption = "grob-row caption",
grob_col(3),
grob_col(4)
)
) %>%
view_grob(height = 100, width = 100)
grob_layout(
caption = "grob-layout caption",
caption_height = 20,
grob_row(
grob_col(1),
grob_col(
caption = "grob-column caption",
caption_p = 0.5,
2
)
),
grob_row(
caption = "grob-row caption",
caption_height = 10,
grob_col(3),
grob_col(4)
)
) %>%
view_grob(height = 100, width = 100)
grob_layout(
caption = "grob-layout caption",
caption_height = 20,
caption_aes_list = ga_list(
text_color = "blue",
border_sides = "bottom"
),
grob_row(
grob_col(1),
grob_col(
caption = "grob-column caption",
caption_p = 0.5,
caption_aes_list = ga_list(
font_face = 3,
text_color = "white",
background_color = "gray40"
),
2
)
)
) %>%
view_grob(height = 100, width = 100)
Page Numbers
- The user can add a page number to the bottom right of the page if
he/she wishes, by utilizing the
page_number
argument within
grob_layout()
.
- The page number is inserted into the padding of the overall
grob-layout.
- As of now, the aesthetics of the page number is restricted to the
default behavior.
grob_layout(
grob_row(
grob_col(1),
grob_col(2)
),
grob_row(
grob_col(3),
grob_col(4)
),
page_number = 1
) %>%
view_grob(height = 100, width = 100)
- FYI - The page number allotted space is more meant for a fully-sized
grob-layout (using default grob-layout size) than it is for a 100mm x
100mm sized grob.