From 884e7662004f467b1bd65b083c6070ecf52293e3 Mon Sep 17 00:00:00 2001 From: "Trevor L. Davis" Date: Tue, 23 Jun 2026 21:29:01 -0700 Subject: [PATCH] chore: Update logo Removes the `vignettes/create-logo.Rmd` vignette and adds `data-raw/logo.R` which generates a proper hex logo by masking a `ggplotGrob()` to a hex shape. closes #127 Co-Authored-By: Claude Sonnet 4.6 --- DESCRIPTION | 2 +- README.Rmd | 1 - README.md | 1 - data-raw/logo.R | 66 +++++++++++++++++++++++++++++++++++++ man/figures/logo.png | Bin 31746 -> 21644 bytes vignettes/create-logo.Rmd | 67 -------------------------------------- 6 files changed, 67 insertions(+), 70 deletions(-) create mode 100644 data-raw/logo.R delete mode 100644 vignettes/create-logo.Rmd diff --git a/DESCRIPTION b/DESCRIPTION index 7d064e3..b17564f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: ggpattern Type: Package Title: 'ggplot2' Pattern Geoms -Version: 1.3.2-3 +Version: 1.3.2-4 Authors@R: c(person("Mike", "FC", role = "aut"), person("Trevor L.", "Davis", role = c("aut", "cre"), email = "trevor.l.davis@gmail.com", diff --git a/README.Rmd b/README.Rmd index e09241e..a3c4fee 100644 --- a/README.Rmd +++ b/README.Rmd @@ -250,7 +250,6 @@ See the vignette on developing patterns: [`vignette("developing-patterns", packa #### Other examples * [Animating Patterns with `{gganimate}`](https://trevorldavis.com/R/ggpattern/dev/articles/gganimate.html): `vignette("gganimate", package = "ggpattern")` -* [Creating the Logo in R](https://trevorldavis.com/R/ggpattern/dev/articles/create-logo.html): `vignette("create-logo", package = "ggpattern")` # Limitations diff --git a/README.md b/README.md index b6151c0..20f46c1 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,6 @@ See the vignette on developing patterns: [`vignette("developing-patterns", packa #### Other examples * [Animating Patterns with `{gganimate}`](https://trevorldavis.com/R/ggpattern/dev/articles/gganimate.html): `vignette("gganimate", package = "ggpattern")` -* [Creating the Logo in R](https://trevorldavis.com/R/ggpattern/dev/articles/create-logo.html): `vignette("create-logo", package = "ggpattern")` # Limitations diff --git a/data-raw/logo.R b/data-raw/logo.R new file mode 100644 index 0000000..02e95a8 --- /dev/null +++ b/data-raw/logo.R @@ -0,0 +1,66 @@ +library("grid") +library("ggplot2") +library("ggpattern") +library("piecepackr") + +draw_logo <- function(bleed = FALSE, cut = FALSE) { + angle <- seq(0, 2 * pi, length.out = 7) + pi / 6 + polygon_df <- data.frame( + angle = angle, + x = cos(angle), + y = sin(angle) + ) + p <- ggplot(polygon_df) + + geom_polygon_pattern( + aes(x = x, y = y), + fill = "white", + colour = "black", + pattern_spacing = 0.15, + pattern_density = 0.4, + pattern_fill = "lightblue", + pattern_colour = "#002366", + pattern_angle = 45 + ) + + labs(title = "ggpattern") + + coord_equal() + + theme_bw(25) + + theme(axis.title = element_blank()) + + plot_grob <- ggplotGrob(p) + + w <- 4.5 + grid.newpage() + pushViewport(viewport(width = unit(w, "inches"), height = unit(w, "inches"))) + hex <- pp_shape("convex6") + + # Draw hex background + grid.draw(hex$shape(gp = gpar(fill = "white", col = "black", lwd = 4))) + + # Draw ggplot grob clipped to the hex shape via a mask + hex_mask <- as.mask(hex$shape(gp = gpar(fill = "white", col = NA))) + pushViewport(viewport(mask = hex_mask)) + pushViewport(viewport(x = 0.45, height = unit(0.8 * w, "inches"))) + grid.draw(plot_grob) + popViewport() + popViewport() + + # Redraw hex border on top to clean up edges + grid.draw(hex$shape(gp = gpar(fill = NA, col = "black", lwd = 4))) + + if (isTRUE(bleed) && isTRUE(cut)) { + pushViewport(viewport(width = unit(5 / 6, "npc"), height = unit(5 / 6, "npc"))) + grid.draw(hex$shape(gp = gpar(fill = "transparent", col = "orange"))) + popViewport() + } + + popViewport() +} + +w <- 4.5 +svg("man/figures/logo.svg", width = w, height = w, bg = "transparent") +draw_logo() +dev.off() + +png("man/figures/logo.png", width = w, height = w, units = "in", res = 72, bg = "transparent") +draw_logo() +dev.off() diff --git a/man/figures/logo.png b/man/figures/logo.png index dd213c277c9dba3388bf8b3bd66d14226816a8fc..b6c2157c80266c47c87d8e9f5d15434f4b7cf54d 100644 GIT binary patch literal 21644 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 M-H+~<(9g2}2RuK3F#rGn literal 31746 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 - %\VignetteIndexEntry{Creating the Logo in R} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>", - fig.width = 6, - fig.height = 6 -) -``` - -```{r setup} -suppressPackageStartupMessages({ - library(ggplot2) - library(ggpattern) -}) -``` - -Creating the hex logo for `ggpattern` ------------------------------------------------------------------------------- - -```{r logo, fig.alt="The ggpattern logo: a ggplot2 plot of a striped hexagon."} -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# Data frame for a polygon -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -angle <- seq(0, 2*pi, length.out = 7) + pi/6 -polygon_df <- data.frame( - angle = angle, - x = cos(angle), - y = sin(angle) -) - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# Create a plot of a patterned polygon -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -p <- ggplot(polygon_df) + - geom_polygon_pattern( - aes(x = x, y = y), - fill = 'white', - colour = 'black', - pattern_spacing = 0.15, - pattern_density = 0.4, - pattern_fill = 'lightblue', - pattern_colour = '#002366', - pattern_angle = 45 - ) + - labs(title = "ggpattern") + - coord_equal() + - theme_bw(25) + - theme(axis.title = element_blank()) - -p -``` - -```{r echo = FALSE, eval = FALSE} -filename <- here::here("man", "figures", "logo.png") -png(filename) -print(p) -invisible(dev.off()) -```