pkg <- read.dcf(here::here("DESCRIPTION"), fields = "Package")[1]
description <- read.dcf(here::here("DESCRIPTION"), fields = "Description")[1]

# If you're using R<4.1.1, need this version of rvcheck
# devtools::install_version('rvcheck',version='0.1.8') 
library(hexSticker)
library(dplyr)
library(ggplot2)
library(ggimage)
# library(ggpattern)# remotes::install_github("coolbutuseless/ggpattern")

You can make awesome hex stickers for your R packages using:

r pkg

File path

Create file path to save hex sticker to.

filename <- here::here("inst/hex/hex.png")
dir.create(dirname(filename), showWarnings = FALSE, recursive = TRUE)

Subplot

ggimage

#### Create function to adjust image opacity ####
alph <- function(img,a=.8) {
  magick::image_fx(img, 
                   expression = paste0(a,"*a"),
                   channel = "alpha")
}
#### Create data to define images/position ####
dat <- data.frame(x=rep(1,2), 
                  y=rep(1,2), 
                  image = c(here::here("inst/hex/brain2.png"),
                            here::here("inst/hex/gene1.png")),
                  size = c(1, .5),
                  alpha = c(.5, 1))
## Make sure the gene is placed behind the brain
dat$image <- factor(x = dat$image, 
                    labels = rev(unique(dat$image)), 
                    ordered = TRUE)
#### Create plot ####
gp <-  ggplot(data=dat, 
              aes(x=x, y=y)) +  
  ggimage::geom_image(aes(image=image,
                          size=I(size), alpha=I(alpha))) + 
  theme_void() 
print(gp)

hexSticker

s_size = 1.5
stick <- hexSticker::sticker( 
  subplot = gp,
  #### Package name ####
  package = pkg, p_size=20, p_y = 1.5,
  #### Subplot #####
  s_x=1, s_y=1,  s_height = s_size, s_width = s_size,
  #### Fill & border ####
  h_fill = "#0e326d", h_color = "#44c7fd",
  #### Spotlight ####
  spotlight = TRUE, l_alpha = .3, l_width = 10,
  #### File output ####
  filename = filename, dpi = 300)
print(stick)

Session Info

utils::sessionInfo()



neurogenomics/EpiPrepare documentation built on March 19, 2022, 7:13 a.m.