car_shiny: The ca(R) Shiny promotional meme

Description Usage Arguments Details Value Examples

View source: R/car_shiny.R

Description

Recreate the ca(R) Shiny promotional meme using different plots, frame rate or output size.

Usage

1
car_shiny(file, p1 = NULL, p2 = NULL, fps = 10, test_frame = FALSE, mult = 1)

Arguments

file

character, output filename.

p1

ggplot object for top half of (ca)R Shiny meme.

p2

ggplot object for bottom half of (ca)R Shiny meme.

fps

integer, frames per second.

test_frame

logical, keep only the first frame. Ideal for saving time during testing.

mult

numeric, factor by which to multiply the output meme dimensions. Use conservatively.

Details

This function offers limited control over customization; it is intended as a canned example. For additional customization, use this function's source code in an R script where you can easily alter other values.

After writing the first layer of output to file, file is recursively read and written again two more times in order to add all layers to the animated gif, since the underlying meme function does not accept vectorized inset plots.

The Shiny logo is by RStudio.

Value

nothing is returned, but a file is saved to disk.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
library(ggplot2)
file <- "memery-car-shiny.gif" # outfile
set.seed(1)
p1 <- ggplot(data.frame(x = rbeta(100000, 10, 3)), aes(x)) +
  geom_histogram(colour = "white", fill = "#88888880", size = 1, bins = 30)

means <- (8:1)^3
sds <- 10*(8:1)
d <- data.frame(
  x = rep(factor(1:8), each = 100),
  y = unlist(purrr::map2(means, sds, ~rnorm(100, .x, .y) / 200))
)

p2 <- ggplot(d, aes(x, y)) +
  geom_boxplot(colour = "white", fill = "#5495CF80", outlier.colour = NA) +
  geom_point(shape = 21, colour = "white", fill = "#5495CF80", size = 1,
             position = position_jitter(0.15)) +
  scale_x_discrete(expand = c(0, 0.02)) + scale_y_continuous(expand = c(0.02, 0)) +
  theme_void() +
  theme(plot.margin = unit(rep(5, 4), "mm"),
        panel.grid.major = element_line(colour = "#FFFFFF50", linetype = 2),
        panel.grid.minor = element_line(colour = "#FFFFFF50", linetype = 2))

## Not run: car_shiny(file, p1, p2, test_frame = TRUE)

memery documentation built on Feb. 15, 2021, 1:06 a.m.

Related to car_shiny in memery...