Learn R Programming

flextable (version 0.9.5)

gg_chunk: 'ggplots' chunk wrapper

Description

This function is used to insert mini gg plots into flextable with functions:

  • compose() and as_paragraph(),

  • append_chunks(),

  • prepend_chunks().

Usage

gg_chunk(value, width = 1, height = 0.2, unit = "in", res = 300)

Arguments

value

gg objects, stored in a list column; or a list of 'ggplot' objects.

width, height

size of the resulting png file.

unit

unit for width and height, one of "in", "cm", "mm".

res

resolution of the png image in ppi

See Also

Other chunk elements for paragraph: as_b(), as_bracket(), as_chunk(), as_equation(), as_highlight(), as_i(), as_image(), as_sub(), as_sup(), as_word_field(), colorize(), grid_chunk(), hyperlink_text(), linerange(), lollipop(), minibar(), plot_chunk()

Examples

Run this code
library(data.table)
library(flextable)
if (require("ggplot2")) {
  my_cor_plot <- function(x) {
    cols <- colnames(x)[sapply(x, is.numeric)]
    x <- x[, .SD, .SDcols = cols]
    cormat <- as.data.table(cor(x))
    cormat$var1 <- colnames(cormat)
    cormat <- melt(cormat,
      id.vars = "var1", measure.vars = cormat$var1,
      variable.name = "var2", value.name = "correlation"
    )
    ggplot(data = cormat, aes(x = var1, y = var2, fill = correlation)) +
      geom_tile() +
      coord_equal() +
      scale_fill_gradient2(
        low = "blue",
        mid = "white", high = "red", limits = c(-1, 1),
        guide = "none"
      ) +
      theme_void()
  }
  z <- as.data.table(iris)
  z <- z[, list(gg = list(my_cor_plot(.SD))), by = "Species"]
  ft <- flextable(z)
  ft <- mk_par(ft,
    j = "gg",
    value = as_paragraph(
      gg_chunk(value = gg, width = 1, height = 1)
    )
  )
  ft
}

Run the code above in your browser using DataLab