inst/doc/grobblR.R

## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 4,
  fig.height = 4
)

## ----two_by_two_system--------------------------------------------------------
library(grobblR)
 
grob_layout(
  grob_row(grob_col(1), grob_col(2)),
  grob_row(grob_col(3), grob_col(4)),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----two_by_three_system------------------------------------------------------
grob_layout(
  grob_row(grob_col(1), grob_col(2)),
  grob_row(grob_col(3)),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----two_by_two_system_w_borders----------------------------------------------
grob_layout(
  grob_row(
    border = TRUE,
    grob_col(border = TRUE, 1),
    grob_col(border = TRUE, 2)
    ),
  grob_row(
    border = TRUE,
    grob_col(border = TRUE, 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()

## ----two_by_one_system_all_p--------------------------------------------------
grob_layout(
  grob_row(p = 1, border = TRUE, grob_col('1')),
  grob_row(p = 2, border = TRUE, grob_col('2')),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----three_by_one_specific_heights--------------------------------------------
grob_layout(
  grob_row(height = 25, border = TRUE, grob_col('1')),
  grob_row(height = 50, border = TRUE, grob_col('2')),
  grob_row(height = 25, border = TRUE, grob_col('3')),
  height = 100,
  width = 100,
  padding = 0
  ) %>%
  view_grob()

## ----three_by_one_system_combo------------------------------------------------
grob_layout(
  grob_row(p = 3, border = TRUE, grob_col('1')),
  grob_row(height = 50, border = TRUE, grob_col('2')),
  grob_row(p = 1, border = TRUE, grob_col('3')),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----first_matrix-------------------------------------------------------------
mat = matrix(1:4, nrow = 2, byrow = TRUE)

grob_layout(
  grob_row(
    grob_col(
      mat,
      aes_list = ga_list(background_color = "gray90")
      )
    ),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----alter_at-----------------------------------------------------------------
mat %>%
  grob_matrix() %>%
  alter_at(
    ~ "red",
    columns = 1,
    aesthetic = "text_color"
    ) %>% 
  alter_at(
    ~ "blue",
    columns = 2,
    rows = 2,
    aesthetic = "background_color"
    ) %>%
  alter_at(
    ~ "white",
    columns = 2,
    rows = 2,
    aesthetic = "text_color"
    ) %>%
  view_grob()

## ----ggplot_grobs-------------------------------------------------------------
data(iris)
library(ggplot2)

gg1 = ggplot(
  data = iris, 
  mapping = aes(
    x = Sepal.Length,
    y = Sepal.Width,
    color = Species
    )
  ) +
  geom_point() +
  guides(color = FALSE)

gg2 = ggplot(
  data = iris,
  mapping = aes(
    x = Sepal.Length,
    y = Petal.Length,
    color = Species
    )
  ) +
  geom_point() +
  guides(color = FALSE)

grob_layout(
  grob_row(grob_col(gg1), grob_col(gg2)),
  grob_row(grob_col(gg1))
  ) %>%
  view_grob(height = 100, width = 100)

## ----png_grobs----------------------------------------------------------------
grob_layout(
  grob_row(
    border = TRUE,
    grob_col(
      border = TRUE,
      'kings_logo.png'
      ),
    grob_col(
      border = TRUE,
      aes_list = ga_list(
        maintain_aspect_ratio = FALSE
        ),
      'https://raw.githubusercontent.com/calvinmfloyd/grobblR/master/vignettes/kings_logo.png'
      )
    ),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----grob_image, eval=FALSE---------------------------------------------------
#  grob_layout(
#    grob_row(
#      border = TRUE,
#      grob_col(
#        border = TRUE,
#        'kings_logo.png'
#        ),
#      grob_col(
#        border = TRUE,
#        'https://raw.githubusercontent.com/calvinmfloyd/grobblR/master/vignettes/kings_logo.png' %>%
#          grob_image() %>%
#          add_structure("maintain_aspect_ratio", FALSE)
#        )
#      ),
#    height = 100,
#    width = 100
#    ) %>%
#    view_grob()

## ----simple_text_grob---------------------------------------------------------
text = "The quick brown fox jumps over the lazy dog."

grob_layout(
  grob_row(
    border = TRUE,
    grob_col(
      border = TRUE,
      text
      )
    ),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----grob_text----------------------------------------------------------------
grob_layout(
  grob_row(
    border = TRUE,
    grob_col(
      border = TRUE,
      text %>%
        grob_text() %>%
        add_aesthetic("text_color", "blue") %>%
        add_aesthetic("font_face", 3)
      )
    ),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----empty_space_grob---------------------------------------------------------
df = data.frame(letter = letters[1:5], col1 = 1:5, col2 = 5:1)

grob_layout(
  grob_row(
    border = TRUE,
    grob_col(df),
    grob_col(
      grob_row(grob_col(df)),
      grob_row(grob_col(p = 1/3, NA))
      ),
    grob_col(
      grob_row(grob_col(p = 1/3, NA)),
      grob_row(grob_col(df))
      )
    ),
  height = 100,
  width = 100
  ) %>%
  view_grob()

## ----grob_to_pdf, eval=FALSE--------------------------------------------------
#  first_page_grob_layout = grob_layout(
#    grob_row(
#      border = TRUE,
#      grob_col(df),
#      grob_col(
#        grob_row(grob_col(df)),
#        grob_row(grob_col(p = 1/3, NA))
#        ),
#      grob_col(
#        grob_row(grob_col(p = 1/3, NA)),
#        grob_row(grob_col(df))
#        )
#      ),
#    height = 100,
#    width = 100
#    )
#  
#  second_page_grob_layout = grob_layout(
#    grob_row(
#      border = TRUE,
#      grob_col(
#        border = TRUE,
#        text
#        )
#      ),
#    height = 100,
#    width = 100
#    )
#  
#  # grob_to_pdf(
#  #   first_page_grob_layout,
#  #   second_page_grob_layout,
#  #   file_name = file.path(tempdir(), "test.pdf"),
#  #   meta_data_title = 'Test PDF'
#  #   )
#  
#  # OR
#  
#  grob_to_pdf(
#    list(first_page_grob_layout, second_page_grob_layout),
#    file_name = file.path(tempdir(), "test.pdf"),
#    meta_data_title = "Test PDF"
#    )

Try the grobblR package in your browser

Any scripts or data that you put into this service are public.

grobblR documentation built on Sept. 15, 2021, 1:07 a.m.