theme_brookings <- function(base_size = 14,
base_family = "Roboto",
base_line_size = base_size / 24,
base_rect_size = base_size / 24,
web = FALSE,
ticks = TRUE) {
# The half-line (base-fontsize / 2) sets up the basic vertical
# rhythm of the theme. Most margins will be set to this value.
# However, when we work with relative sizes, we may want to multiply
# `half_line` with the appropriate relative size. This applies in
# particular for axis tick sizes. And also, for axis ticks and
# axis titles, `half_size` is too large a distance, and we use `half_size/2`
# instead.
half_line <- base_size / 2
# Throughout the theme, we use three font sizes, `base_size` (`rel(1)`)
# for normal, `rel(0.8)` for small, and `rel(1.2)` for large.
t <- theme_light() %+replace% theme(
# Elements in this first block aren't used directly, but are inherited
# by others
line =
element_line(
colour = "black",
size = base_line_size,
linetype = 1,
lineend = "butt"
),
rect =
element_rect(
fill = NULL,
colour = "black",
size = base_rect_size,
linetype = 1
),
text =
element_text(
family = base_family,
face = "plain",
colour = "black",
size = base_size,
lineheight = 1,
hjust = 0.5,
vjust = 0.5,
angle = 0,
margin = margin(),
debug = FALSE
),
axis.line = ggplot2::element_line(),
axis.line.x = ggplot2::element_line(colour = "#000000",
size = NULL,
linetype = NULL,
lineend = NULL),
axis.line.y = ggplot2::element_blank(),
# axis.text = element_text(size = rel(0.8), colour = "#000000"),
# axis.text.x = element_text(margin = margin(t = 0.8 * half_line / 2), vjust = 1),
# axis.text.x.top = element_text(margin = margin(b = 0.8 * half_line / 2), vjust = 0),
# axis.text.y = element_text(margin = margin(r = 0.8 * half_line / 2), hjust = 1),
# axis.text.y.right = element_text(margin = margin(l = 0.8 * half_line / 2), hjust = 0),
#
# axis.title.x = element_text(margin = margin(t = 1.25 * half_line),
# size = rel(0.7),
# vjust = 1, face = 'bold'),
# axis.title.x.top = element_text(margin = margin(b = half_line / 2),
# vjust = 0),
# axis.title.y = element_text(
# angle = 90,
# margin = margin(r = half_line * 1.25),
# vjust = 1,
# face = 'bold',
# size = rel(0.7)
# ),
# axis.title.y.right = element_text(
# angle = -90,
# margin = margin(l = half_line / 2),
# vjust = 0
# ),
legend.background = element_rect(colour = NA),
# legend.spacing = unit( half_line, "pt"),
# legend.spacing.x = NULL,
# legend.spacing.y = NULL,
# legend.margin = margin(0,0,0,0),
#legend.key = element_blank(),
#legend.key.size = unit(rel(0.8), "lines"),
#legend.key.height = NULL,
#legend.key.width = NULL,
#legend.text = element_text(size = rel(1)),
#legend.text.align = 0,
#legend.title = element_blank(),
#legend.title.align = NULL,
#legend.position = "top",
#legend.direction = NULL,
#legend.justification = "center",
# legend.box = NULL,
# legend.box.margin = margin(0, 0, 0, 0, "cm"),
# legend.box.background = element_blank(),
# legend.box.spacing = unit(2 * half_line, "pt"),
panel.background = element_blank(),
panel.border = element_blank(),
panel.grid = element_line(colour = "#CCCCCC",
# size = 1,
linetype = "solid"), ### Horizontal Gridlines - Solid ###
panel.grid.major.x = element_blank(),
panel.grid.minor = element_blank(),
# panel.spacing = unit(half_line, "pt"),
# panel.spacing.x = unit(1.5, "lines"),
# panel.spacing.y = unit(2, "lines"),
panel.ontop = FALSE,
strip.background = element_rect(fill = "#007363", colour = NA), ### FIGURE NUMBER LABEL COLOR - THP ###
strip.text = element_text(
colour = "#FAFAFA",
size = rel(0.8),
#margin = margin(0.8 * half_line, 0.8 * half_line, 0.8 * half_line, 0.8 * half_line),
face = 'bold'
),
# strip.text.x = NULL,
# strip.text.y = element_text(angle = -90),
# strip.text.y.left = element_text(angle = 90),
# # strip.placement = "outside",
# strip.placement.x = NULL,
# strip.placement.y = NULL,
# strip.switch.pad.grid = unit(half_line / 2, "pt"),
# strip.switch.pad.wrap = unit(half_line / 2, "pt"),
plot.title = ggtext::element_textbox_simple(
# font size "large"
size = rel(1.2),
color = "#007363", ### TITLE COLOR - THP ###
face = "bold",
hjust = 0,
vjust = 1
#,
#margin = margin(b = 1.5*base_size, t = base_size/2) ### CHANGED 'B'-BOTTOM MARGIN TO BASE_SIZE/2 FROM HALF_LINE/2
),
plot.title.position = "plot",
plot.subtitle = ggtext::element_textbox_simple(
# font size "regular"
hjust = 0,
size = rel(1),
vjust = 1
#,
#margin = margin(b = base_size)
),
plot.caption = ggtext::element_textbox_simple(
# font size "small"
size = rel(0.8),
vjust = 1,
color = "#666666",
# margin = margin(t = half_line),
hjust = 0),
# ),
plot.caption.position = "plot",
plot.tag = element_text(
size = rel(0.8),
hjust = 0,
vjust = 1,
color = "#007363" ### FIGURE NUMBER LABEL COLOR - THP ###
# ),
# plot.tag.position = c(0, 1),
# plot.margin = unit(c(half_line, half_line, half_line * 2, half_line), "pt"),
# plot.margin = margin(half_line, half_line, half_line * 2, half_line),
# plot.margin = unit(c(0.5, 0.5, 2.5, 0.5), "lines"),
# complete = FALSE
))
# if (ticks == FALSE) {
# t <- t + theme(
# axis.ticks = element_blank(),
# axis.ticks.x = element_blank(),
# axis.ticks.y = element_blank()
# )
# } else {
# t <-
# t + theme(
# axis.ticks = element_line(colour = "#000000"),
# axis.ticks.length = unit(half_line / 2, "pt"),
# axis.ticks.length.x = NULL,
# axis.ticks.length.x.top = NULL,
# axis.ticks.length.x.bottom = NULL,
# axis.ticks.y = element_blank()
#
# )
# }
#
# if(web == FALSE){
# t <-
# t + theme(plot.background = element_blank())
# }
#
# else{
# t <-
# t + theme(plot.background = element_rect(fill = '#FAFAFA'))
# }
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.