r_logo <- file.path(R.home("doc"), "html", "logo.jpg")
dat <- subset(ggplot2::diamonds, cut %in% c("Premium", "Ideal"))
title_chunks <- flextable::as_paragraph(
flextable::as_image(src = r_logo, width = 0.25, height = 0.2),
flextable::as_chunk(" "),
flextable::as_b("Diamond"),
flextable::as_chunk(" pricing \u2014 "),
flextable::as_i("Premium"),
flextable::as_chunk(" vs "),
flextable::as_i("Ideal")
)
subtitle_chunks <- flextable::as_paragraph(
flextable::colorize("Premium", color = "#E31A1C"),
flextable::as_chunk(" (n = "),
flextable::as_highlight(
as.character(sum(dat$cut == "Premium")),
color = "#FDDBC7"
),
flextable::as_chunk(") and "),
flextable::colorize("Ideal", color = "#1F78B4"),
flextable::as_chunk(" (n = "),
flextable::as_highlight(
as.character(sum(dat$cut == "Ideal")),
color = "#D1E5F0"
),
flextable::as_chunk(")")
)
caption_chunks <- flextable::as_paragraph(
flextable::as_chunk("R"),
flextable::as_sup("2"),
flextable::as_chunk(" = 0.85 \u00b7 "),
flextable::as_strike("no effect"),
flextable::as_chunk(" \u00b7 H"),
flextable::as_sub("0"),
flextable::as_chunk(" rejected")
)
ylab_chunks <- flextable::as_paragraph(
flextable::as_chunk(
"Price",
props = officer::fp_text_lite(bold = TRUE, color = "#2C3E50")
),
flextable::as_chunk(" (USD)")
)
xlab_chunks <- flextable::as_paragraph(
flextable::as_chunk(
"Carat",
props = officer::fp_text_lite(bold = TRUE, color = "#2C3E50")
),
flextable::as_chunk(" weight")
)
list(
plot = ggplot2::ggplot(dat, ggplot2::aes(carat, price, color = cut)) +
ggplot2::geom_point(alpha = 0.05, size = 0.5) +
ggplot2::geom_smooth(method = "lm", formula = y ~ x, se = FALSE, linewidth = 1.2) +
ggplot2::scale_color_manual(
values = c(Premium = "#E31A1C", Ideal = "#1F78B4")
) +
base_theme() +
ggplot2::theme(
plot.title = element_chunks(title_chunks),
plot.subtitle = element_chunks(subtitle_chunks),
plot.caption = element_chunks(caption_chunks),
axis.title.x = element_chunks(xlab_chunks),
axis.title.y = element_chunks(ylab_chunks)
),
width = 6,
height = 5
)