From 779dda5deb7781fa41becb06b3de69a9ee03c123 Mon Sep 17 00:00:00 2001 From: Ryan Hafen Date: Fri, 23 Aug 2024 17:30:53 -0700 Subject: [PATCH] Allow right and top axes to shift to nearest facet - fixes #389 --- DESCRIPTION | 4 ++-- R/facet_geo.R | 22 ++++++++++++++++------ man/geofacet.Rd | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index cde01bd..cfae039 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: geofacet Title: 'ggplot2' Faceting Utilities for Geographical Data -Version: 0.2.1 +Version: 0.2.2 Authors@R: c( person("Ryan", "Hafen", email = "rhafen@gmail.com", role = c("aut", "cre")), person("Barret", "Schloerke", email = "schloerke@gmail.com", role = "ctb")) @@ -33,5 +33,5 @@ Suggests: rmarkdown URL: https://github.com/hafen/geofacet, https://hafen.github.io/geofacet/ BugReports: https://github.com/hafen/geofacet/issues -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.1 VignetteBuilder: knitr diff --git a/R/facet_geo.R b/R/facet_geo.R index aa91ffa..9476826 100644 --- a/R/facet_geo.R +++ b/R/facet_geo.R @@ -99,14 +99,19 @@ get_geofacet_grob <- function(x) { nr <- max(grd$row) for (ii in seq_len(nc)) { idx <- which(!is.na(grd$label[grd$col == ii])) - l1 <- paste0("axis-b-", ii, "-", nr) + b1 <- paste0("axis-b-", ii, "-", nr) + t1 <- paste0("axis-t-", ii, "-1") if (length(idx) > 0) { last <- max(idx) - l2 <- paste0("axis-b-", ii, "-", last) - g$layout[g$layout$name == l1, c("t", "b")] <- - g$layout[g$layout$name == l2, c("t", "b")] + b2 <- paste0("axis-b-", ii, "-", last) + g$layout[g$layout$name == b1, c("t", "b")] <- + g$layout[g$layout$name == b2, c("t", "b")] + first <- min(idx) + t2 <- paste0("axis-t-", ii, "-", first) + g$layout[g$layout$name == t1, c("t", "b")] <- + g$layout[g$layout$name == t2, c("t", "b")] } else { - extra_rgx <- c(extra_rgx, l1) + extra_rgx <- c(extra_rgx, b1) } } } @@ -115,13 +120,18 @@ get_geofacet_grob <- function(x) { for (ii in seq_len(max(grd$row))) { idx <- which(!is.na(grd$label[grd$row == ii])) l1 <- paste0("axis-l-", ii, "-1") + r1 <- paste0("axis-r-", ii, "-", max(grd$col)) if (length(idx) > 0) { first <- min(idx) l2 <- paste0("axis-l-", ii, "-", first) g$layout[g$layout$name == l1, c("l", "r")] <- g$layout[g$layout$name == l2, c("l", "r")] + last <- max(idx) + r2 <- paste0("axis-r-", ii, "-", last) + g$layout[g$layout$name == r1, c("l", "r")] <- + g$layout[g$layout$name == r2, c("l", "r")] } else { - extra_rgx <- c(extra_rgx, l1) + extra_rgx <- c(extra_rgx, r1, l1) } } } diff --git a/man/geofacet.Rd b/man/geofacet.Rd index 2bb852e..4730167 100644 --- a/man/geofacet.Rd +++ b/man/geofacet.Rd @@ -2,8 +2,26 @@ % Please edit documentation in R/package-geofacet.R \docType{package} \name{geofacet} +\alias{geofacet-package} \alias{geofacet} \title{geofacet} \description{ For examples, see \code{\link{facet_geo}}. } +\seealso{ +Useful links: +\itemize{ + \item \url{https://github.com/hafen/geofacet} + \item Report bugs at \url{https://github.com/hafen/geofacet/issues} +} + +} +\author{ +\strong{Maintainer}: Ryan Hafen \email{rhafen@gmail.com} + +Other contributors: +\itemize{ + \item Barret Schloerke \email{schloerke@gmail.com} [contributor] +} + +}