From 42549ea326ca296fd311d74e56e8d6596b936912 Mon Sep 17 00:00:00 2001 From: boB Rudis Date: Fri, 12 Jul 2019 05:01:58 -0400 Subject: [PATCH] better waffle geom --- .gitignore | 1 + DESCRIPTION | 12 +- NAMESPACE | 5 - R/a-geom-rect.R | 66 +++++ R/aaa.r | 10 +- R/geom-pictogram.R | 467 +++++++++++++++--------------- R/geom-rtile.R | 46 +++ R/geom-waffle.R | 302 +++++++++---------- R/stat-pictogram.R | 285 +++++++++--------- R/stat-waffle.R | 195 ++++++------- R/sw2.R | 355 +++++++++++++++++++++++ R/utils.r | 12 +- README.Rmd | 2 +- README.md | 12 +- README_files/figure-gfm/geoms-1.png | Bin 61033 -> 60964 bytes README_files/figure-gfm/waffle-bars-1.png | Bin 110272 -> 108997 bytes man/geom_pictogram.Rd | 90 ------ man/geom_waffle.Rd | 31 +- vignettes/.gitignore | 2 + vignettes/building-waffle-charts.Rmd | 332 +++++++++++++++++++++ 20 files changed, 1482 insertions(+), 743 deletions(-) create mode 100644 R/a-geom-rect.R create mode 100644 R/geom-rtile.R create mode 100644 R/sw2.R delete mode 100644 man/geom_pictogram.Rd create mode 100644 vignettes/.gitignore create mode 100644 vignettes/building-waffle-charts.Rmd diff --git a/.gitignore b/.gitignore index 60332de..bf67b6f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ src/*.o src/*.so src/*.dll +inst/doc diff --git a/DESCRIPTION b/DESCRIPTION index 12c0c94..59a47ed 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -26,10 +26,15 @@ Encoding: UTF-8 URL: https://gitlab.com/hrbrmstr/waffle BugReports: https://gitlab.com/hrbrmstr/waffle/issues Suggests: - testthat + testthat, + knitr, + rmarkdown, + dplyr, + hrbrthemes, + ggthemes Depends: - R (>= 3.2.0), - ggplot2 (>= 2.0.0) + R (>= 3.5.0), + ggplot2 (>= 3.1.0) License: GPL (>= 2) Imports: RColorBrewer, @@ -43,3 +48,4 @@ Imports: htmlwidgets, DT RoxygenNote: 6.1.1 +VignetteBuilder: knitr diff --git a/NAMESPACE b/NAMESPACE index bfb95d7..565b76b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,17 +1,12 @@ # Generated by roxygen2: do not edit by hand -export(GeomPictogram) export(GeomWaffle) -export(StatPictogram) export(StatWaffle) -export(draw_key_pictogram) export(fa_grep) export(fa_list) -export(geom_pictogram) export(geom_waffle) export(install_fa_fonts) export(iron) -export(stat_pictogram) export(stat_waffle) export(theme_enhance_waffle) export(waffle) diff --git a/R/a-geom-rect.R b/R/a-geom-rect.R new file mode 100644 index 0000000..6783472 --- /dev/null +++ b/R/a-geom-rect.R @@ -0,0 +1,66 @@ +geom_rrect <- function(mapping = NULL, data = NULL, # nocov start + stat = "identity", position = "identity", + radius = grid::unit(6, "pt"), + ..., + na.rm = FALSE, + show.legend = NA, + inherit.aes = TRUE) { + layer( + data = data, + mapping = mapping, + stat = stat, + geom = GeomRrect, + position = position, + show.legend = show.legend, + inherit.aes = inherit.aes, + params = list( + radius = radius, + na.rm = na.rm, + ... + ) + ) +} + +GeomRrect <- ggplot2::ggproto( + "GeomRrect", ggplot2::Geom, + + default_aes = ggplot2::aes( + fill = "grey35", size = 0.5, linetype = 1, alpha = NA#, colour = NA + ), + + required_aes = c("xmin", "xmax", "ymin", "ymax"), + + draw_panel = function(self, data, panel_params, coord, + radius = grid::unit(6, "pt")) { + + coords <- coord$transform(data, panel_params) + + lapply(1:length(coords$xmin), function(i) { + + grid::roundrectGrob( + coords$xmin[i], coords$ymax[i], + width = (coords$xmax[i] - coords$xmin[i]), + height = (coords$ymax[i] - coords$ymin)[i], + r = radius, + default.units = "native", + just = c("left", "top"), + gp = grid::gpar( + col = coords$colour[i], + fill = alpha(coords$fill[i], coords$alpha[i]), + lwd = coords$size[i] * .pt, + lty = coords$linetype[i], + lineend = "butt" + ) + ) + + }) -> gl + + grobs <- do.call(grid::gList, gl) + + ggname("geom_rrect", grid::grobTree(children = grobs)) + + }, + + draw_key = ggplot2::draw_key_polygon + +) # nocov end \ No newline at end of file diff --git a/R/aaa.r b/R/aaa.r index 3b656ae..06f15ed 100644 --- a/R/aaa.r +++ b/R/aaa.r @@ -1 +1,9 @@ -utils::globalVariables(c("x", "y", "value")) \ No newline at end of file +utils::globalVariables(c("x", "y", "value")) + +.dbg <- TRUE + +msg <- function(...) { + + if (.dbg) message(...) + +} \ No newline at end of file diff --git a/R/geom-pictogram.R b/R/geom-pictogram.R index c5fe9e2..b824853 100644 --- a/R/geom-pictogram.R +++ b/R/geom-pictogram.R @@ -1,233 +1,234 @@ -#' @export -draw_key_pictogram <- function(data, params, size) { - - # message("Called draw_key_pictogram()") - - # print(str(data, 1)) - # print(str(params, 1)) - # print(str(size, 1)) - - # return(draw_key_text(data, params, size)) - - data[["label"]] <- .fa_unicode[.fa_unicode[["name"]] %in% data[["fa_glyph"]], "unicode"] - fat <- .fa_unicode[.fa_unicode[["name"]] %in% data[["fa_glyph"]], "type"] - ftrans <- c(solid = "FontAwesome5Free-Solid", brands = "FontAwesome5Brands-Regular") - data[["family"]] <- ftrans[fat] - data[["size"]] <- data[["size"]] * 2 - - grid::textGrob( - data$label, 0.5, 0.25, - rot = data$angle %||% 0, - gp = grid::gpar( - col = alpha(data$colour %||% data$fill %||% "black", data$alpha), - fontfamily = data$family %||% "", - fontface = data$fontface %||% 1, - fontsize = (data$size %||% 3.88) * .pt - ) - ) -} -#' Isotype pictogram "waffle" charts -#' -#' There are two special/critical `aes()` mappings: -#' - `colour` (so the geom knows which column to map the country names/abbrevs to) -#' - `values` (which column you're mapping the filling for the squares with) -#' -#' @md -#' @param mapping Set of aesthetic mappings created by `aes()` or -#' `aes_()`. If specified and `inherit.aes = TRUE` (the -#' default), it is combined with the default mapping at the top level of the -#' plot. You must supply `mapping` if there is no plot mapping. -#' @param n_rows how many rows should there be in the waffle chart? default is 10 -#' @param flip If `TRUE`, flip x and y coords. n_rows then becomes n_cols. -#' Useful to achieve waffle column chart effect. Defaults is `FALSE`. -#' @param make_proportional compute proportions from the raw values? (i.e. each -#' value `n` will be replaced with `n`/`sum(n)`); default is `FALSE`. -#' @param data The data to be displayed in this layer. There are three -#' options: -#' -#' If `NULL`, the default, the data is inherited from the plot -#' data as specified in the call to `ggplot()`. -#' -#' A `data.frame`, or other object, will override the plot -#' data. All objects will be fortified to produce a data frame. See -#' `fortify()` for which variables will be created. -#' -#' A `function` will be called with a single argument, -#' the plot data. The return value must be a `data.frame.`, and -#' will be used as the layer data. -#' @param na.rm If `FALSE`, the default, missing values are removed with -#' a warning. If `TRUE`, missing values are silently removed. -#' @param show.legend logical. Should this layer be included in the legends? -#' `NA`, the default, includes if any aesthetics are mapped. -#' `FALSE` never includes, and `TRUE` always includes. -#' It can also be a named logical vector to finely select the aesthetics to -#' display. -#' @param inherit.aes If `FALSE`, overrides the default aesthetics, -#' rather than combining with them. This is most useful for helper functions -#' that define both data and aesthetics and shouldn't inherit behaviour from -#' the default plot specification, e.g. `borders()`. -#' @param ... other arguments passed on to `layer()`. These are -#' often aesthetics, used to set an aesthetic to a fixed value, like -#' `color = "red"` or `size = 3`. They may also be parameters -#' to the paired geom/stat. -#' @export -#' @examples -#' data.frame( -#' parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), -#' values = c(10, 20, 30, 6, 14, 40, 30, 20, 10), -#' fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) -#' ) -> xdf -#' -#' ggplot(xdf, aes(fill = parts, values = values)) + -#' geom_pictogram() + -#' facet_wrap(~fct) + -#' coord_equal() -geom_pictogram <- function( - mapping = NULL, data = NULL, - n_rows = 10, flip = FALSE, make_proportional = FALSE, - na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ...) { - - # message("Called geom_pictogram()") - - ggplot2::layer( - data = data, - mapping = mapping, - stat = "pictogram", - geom = GeomPictogram, - position = "identity", - show.legend = show.legend, - inherit.aes = inherit.aes, - check.aes = FALSE, - params = list( - na.rm = na.rm, - n_rows = n_rows, - flip = flip, - make_proportional = make_proportional, - use = "colour", - ... - ) - ) - -} - -#' @rdname geom_pictogram -#' @export -GeomPictogram <- ggplot2::ggproto( - `_class` = "GeomPictogram", - `_inherit` = ggplot2::Geom, - - default_aes = ggplot2::aes( - fa_glyph = "circle", fa_type = "solid", - fill = NA, colour = "#b2b2b2", alpha = NA, - size = 2, linetype = 1, width = NA, height = NA - ), - - required_aes = c("x", "y", "values", "fa_glyph", "fa_type"), - - extra_params = c("na.rm", "width", "height", "flip", "use"), - - setup_data = function(data, params) { - - # message("Called GeomPictogram::setup_data()") - # print(str(data, 1)) - - waf.dat <- data - - # swap x and y values if flip is TRUE - if (params$flip) { - waf.dat$x_temp <- waf.dat$x - waf.dat$x <- waf.dat$y - waf.dat$y <- waf.dat$x_temp - waf.dat$x_temp <- NULL - } - - # reduce all values by 0.5 - # this allows for axis ticks to align _between_ square rows/cols - # rather than in the middle of a row/col - waf.dat$x <- waf.dat$x - 0.5 - waf.dat$y <- waf.dat$y - 0.5 - - waf.dat$width <- waf.dat$width %||% params$width %||% ggplot2::resolution(waf.dat$x, FALSE) - waf.dat$height <- waf.dat$height %||% params$height %||% ggplot2::resolution(waf.dat$y, FALSE) - - transform( - waf.dat, - xmin = x - width / 2, - xmax = x + width / 2, - width = NULL, - ymin = y - height / 2, - ymax = y + height / 2, - height = NULL - ) -> xdat - - # print(str(xdat, 1)) - - xdat - - }, - - draw_group = function(self, data, panel_params, coord, - n_rows = 10, make_proportional = FALSE) { - - # message("Called GeomPictogram::draw_group()") - - # message("Called GEOM draw_group()") - - tile_data <- data - # tile_data$size <- border_size - # tile_data$colour <- border_col - - coord <- ggplot2::coord_equal() - - # gg <- gg + geom_tile( - # color = "#00000000", fill = "#00000000", size = size, - # alpha = 0, show.legend = FALSE - # ) - - gtdat <- tile_data - gtdat[["colour"]] <- "#00000000" - gtdat[["color"]] <- "#00000000" - gtdat[["fill"]] <- "#00000000" - - g_pgdat <<- tile_data - - self$default_aes[["fa_glyph"]] <- tile_data[["fa_glyph"]][[1]] - - pgdat <- tile_data - pgdat[["label"]] <- .fa_unicode[.fa_unicode[["name"]] %in% pgdat[["fa_glyph"]], "unicode"] - fat <- .fa_unicode[.fa_unicode[["name"]] %in% pgdat[["fa_glyph"]], "type"] - ftrans <- c(solid = "FontAwesome5Free-Solid", brands = "FontAwesome5Brands-Regular") - pgdat[["family"]] <- ftrans[fat] - pgdat[["size"]] <- pgdat[["size"]] * 2 - pgdat[["angle"]] = 0 - pgdat[["hjust"]] <- 0.5 - pgdat[["vjust"]] <- 0.5 - pgdat[["fontface"]] <- 1 - pgdat[["lineheight"]] <- 1 - - # print(str(pgdat, 1)) - - # gg <- gg + geom_text( - # aes(color = value, label = fontlab), - # family = glyph_font_family, - # size = glyph_size, - # show.legend = FALSE - # ) - - grid::gList( - # GeomTile$draw_panel(gtdat, panel_params, coord), - GeomText$draw_panel(pgdat, panel_params, coord) - ) -> grobs - - ggname("geom_pictogram", grid::grobTree(children = grobs)) - - }, - - aesthetics = function(self) { - # message("Called GeomPictogram::aesthetics()") - c(union(self$required_aes, names(self$default_aes)), self$optional_aes, "group") - }, - - draw_key = draw_key_pictogram - -) \ No newline at end of file +# #' @export +# draw_key_pictogram <- function(data, params, size) { +# +# # message("Called draw_key_pictogram()") +# +# # print(str(data, 1)) +# # print(str(params, 1)) +# # print(str(size, 1)) +# +# # return(draw_key_text(data, params, size)) +# +# data[["label"]] <- .fa_unicode[.fa_unicode[["name"]] %in% data[["fa_glyph"]], "unicode"] +# fat <- .fa_unicode[.fa_unicode[["name"]] %in% data[["fa_glyph"]], "type"] +# ftrans <- c(solid = "FontAwesome5Free-Solid", brands = "FontAwesome5Brands-Regular") +# data[["family"]] <- ftrans[fat] +# data[["size"]] <- data[["size"]] * 2 +# +# grid::textGrob( +# data$label, 0.5, 0.25, +# rot = data$angle %||% 0, +# gp = grid::gpar( +# col = alpha(data$colour %||% data$fill %||% "black", data$alpha), +# fontfamily = data$family %||% "", +# fontface = data$fontface %||% 1, +# fontsize = (data$size %||% 3.88) * .pt +# ) +# ) +# } +# #' Isotype pictogram "waffle" charts +# #' +# #' There are two special/critical `aes()` mappings: +# #' - `colour` (so the geom knows which column to map the country names/abbrevs to) +# #' - `values` (which column you're mapping the filling for the squares with) +# #' +# #' @md +# #' @param mapping Set of aesthetic mappings created by `aes()` or +# #' `aes_()`. If specified and `inherit.aes = TRUE` (the +# #' default), it is combined with the default mapping at the top level of the +# #' plot. You must supply `mapping` if there is no plot mapping. +# #' @param n_rows how many rows should there be in the waffle chart? default is 10 +# #' @param flip If `TRUE`, flip x and y coords. n_rows then becomes n_cols. +# #' Useful to achieve waffle column chart effect. Defaults is `FALSE`. +# #' @param make_proportional compute proportions from the raw values? (i.e. each +# #' value `n` will be replaced with `n`/`sum(n)`); default is `FALSE`. +# #' @param data The data to be displayed in this layer. There are three +# #' options: +# #' +# #' If `NULL`, the default, the data is inherited from the plot +# #' data as specified in the call to `ggplot()`. +# #' +# #' A `data.frame`, or other object, will override the plot +# #' data. All objects will be fortified to produce a data frame. See +# #' `fortify()` for which variables will be created. +# #' +# #' A `function` will be called with a single argument, +# #' the plot data. The return value must be a `data.frame.`, and +# #' will be used as the layer data. +# #' @param na.rm If `FALSE`, the default, missing values are removed with +# #' a warning. If `TRUE`, missing values are silently removed. +# #' @param show.legend logical. Should this layer be included in the legends? +# #' `NA`, the default, includes if any aesthetics are mapped. +# #' `FALSE` never includes, and `TRUE` always includes. +# #' It can also be a named logical vector to finely select the aesthetics to +# #' display. +# #' @param inherit.aes If `FALSE`, overrides the default aesthetics, +# #' rather than combining with them. This is most useful for helper functions +# #' that define both data and aesthetics and shouldn't inherit behaviour from +# #' the default plot specification, e.g. `borders()`. +# #' @param ... other arguments passed on to `layer()`. These are +# #' often aesthetics, used to set an aesthetic to a fixed value, like +# #' `color = "red"` or `size = 3`. They may also be parameters +# #' to the paired geom/stat. +# #' @export +# #' @examples +# #' data.frame( +# #' parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), +# #' values = c(10, 20, 30, 6, 14, 40, 30, 20, 10), +# #' fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) +# #' ) -> xdf +# #' +# #' ggplot(xdf, aes(fill = parts, values = values)) + +# #' geom_pictogram() + +# #' facet_wrap(~fct) + +# #' coord_equal() +# geom_pictogram <- function( +# mapping = NULL, data = NULL, +# n_rows = 10, flip = FALSE, make_proportional = FALSE, +# na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ...) { +# +# # message("Called geom_pictogram()") +# +# ggplot2::layer( +# data = data, +# mapping = mapping, +# stat = "pictogram", +# geom = GeomPictogram, +# position = "identity", +# show.legend = show.legend, +# inherit.aes = inherit.aes, +# check.aes = FALSE, +# params = list( +# na.rm = na.rm, +# n_rows = n_rows, +# flip = flip, +# make_proportional = make_proportional, +# use = "colour", +# ... +# ) +# ) +# +# } +# +# #' @rdname geom_pictogram +# #' @export +# GeomPictogram <- ggplot2::ggproto( +# `_class` = "GeomPictogram", +# `_inherit` = ggplot2::Geom, +# +# default_aes = ggplot2::aes( +# fa_glyph = "circle", fa_type = "solid", +# fill = NA, colour = "#b2b2b2", alpha = NA, +# size = 2, linetype = 1, width = NA, height = NA +# ), +# +# required_aes = c("x", "y", "values", "fa_glyph", "fa_type"), +# +# extra_params = c("na.rm", "width", "height", "flip", "use"), +# +# setup_data = function(data, params) { +# +# # message("Called GeomPictogram::setup_data()") +# # print(str(data, 1)) +# +# waf.dat <- data +# +# # swap x and y values if flip is TRUE +# if (params$flip) { +# waf.dat$x_temp <- waf.dat$x +# waf.dat$x <- waf.dat$y +# waf.dat$y <- waf.dat$x_temp +# waf.dat$x_temp <- NULL +# } +# +# # reduce all values by 0.5 +# # this allows for axis ticks to align _between_ square rows/cols +# # rather than in the middle of a row/col +# waf.dat$x <- waf.dat$x - 0.5 +# waf.dat$y <- waf.dat$y - 0.5 +# +# waf.dat$width <- waf.dat$width %||% params$width %||% ggplot2::resolution(waf.dat$x, FALSE) +# waf.dat$height <- waf.dat$height %||% params$height %||% ggplot2::resolution(waf.dat$y, FALSE) +# +# transform( +# waf.dat, +# xmin = x - width / 2, +# xmax = x + width / 2, +# width = NULL, +# ymin = y - height / 2, +# ymax = y + height / 2, +# height = NULL +# ) -> xdat +# +# # print(str(xdat, 1)) +# +# xdat +# +# }, +# +# draw_group = function(self, data, panel_params, coord, +# n_rows = 10, make_proportional = FALSE) { +# +# # message("Called GeomPictogram::draw_group()") +# +# # message("Called GEOM draw_group()") +# +# tile_data <- data +# # tile_data$size <- border_size +# # tile_data$colour <- border_col +# +# coord <- ggplot2::coord_equal() +# +# # gg <- gg + geom_tile( +# # color = "#00000000", fill = "#00000000", size = size, +# # alpha = 0, show.legend = FALSE +# # ) +# +# gtdat <- tile_data +# gtdat[["colour"]] <- "#00000000" +# gtdat[["color"]] <- "#00000000" +# gtdat[["fill"]] <- "#00000000" +# +# g_pgdat <<- tile_data +# +# self$default_aes[["fa_glyph"]] <- tile_data[["fa_glyph"]][[1]] +# +# pgdat <- tile_data +# pgdat[["label"]] <- .fa_unicode[.fa_unicode[["name"]] %in% pgdat[["fa_glyph"]], "unicode"] +# fat <- .fa_unicode[.fa_unicode[["name"]] %in% pgdat[["fa_glyph"]], "type"] +# ftrans <- c(solid = "FontAwesome5Free-Solid", brands = "FontAwesome5Brands-Regular") +# pgdat[["family"]] <- ftrans[fat] +# pgdat[["size"]] <- pgdat[["size"]] * 2 +# pgdat[["angle"]] = 0 +# pgdat[["hjust"]] <- 0.5 +# pgdat[["vjust"]] <- 0.5 +# pgdat[["fontface"]] <- 1 +# pgdat[["lineheight"]] <- 1 +# +# # print(str(pgdat, 1)) +# +# # gg <- gg + geom_text( +# # aes(color = value, label = fontlab), +# # family = glyph_font_family, +# # size = glyph_size, +# # show.legend = FALSE +# # ) +# +# grid::gList( +# # GeomTile$draw_panel(gtdat, panel_params, coord), +# GeomText$draw_panel(pgdat, panel_params, coord) +# ) -> grobs +# +# ggname("geom_pictogram", grid::grobTree(children = grobs)) +# +# }, +# +# aesthetics = function(self) { +# # message("Called GeomPictogram::aesthetics()") +# c(union(self$required_aes, names(self$default_aes)), self$optional_aes, "group") +# }, +# +# draw_key = draw_key_pictogram +# +# ) +# \ No newline at end of file diff --git a/R/geom-rtile.R b/R/geom-rtile.R new file mode 100644 index 0000000..b610cdb --- /dev/null +++ b/R/geom-rtile.R @@ -0,0 +1,46 @@ +geom_rtile <- function(mapping = NULL, data = NULL, + stat = "identity", position = "identity", + radius = grid::unit(6, "pt"), + ..., + na.rm = FALSE, + show.legend = NA, + inherit.aes = TRUE) { + ggplot2::layer( + data = data, + mapping = mapping, + stat = stat, + geom = GeomRtile, + position = position, + show.legend = show.legend, + inherit.aes = inherit.aes, + params = list( + radius = radius, + na.rm = na.rm, + ... + ) + ) +} + +GeomRtile <- ggplot2::ggproto("GeomRtile", GeomRrect, + + extra_params = c("na.rm", "width", "height"), + + setup_data = function(data, params) { + data$width <- data$width %||% params$width %||% ggplot2::resolution(data$x, FALSE) + data$height <- data$height %||% params$height %||% ggplot2::resolution(data$y, FALSE) + + transform(data, + xmin = x - width / 2, xmax = x + width / 2, width = NULL, + ymin = y - height / 2, ymax = y + height / 2, height = NULL + ) + }, + + default_aes = ggplot2::aes( + fill = "grey20", colour = NA, size = 0.1, linetype = 1, alpha = NA + ), + + required_aes = c("x", "y"), + + draw_key = ggplot2::draw_key_polygon + +) diff --git a/R/geom-waffle.R b/R/geom-waffle.R index b13830f..b201957 100644 --- a/R/geom-waffle.R +++ b/R/geom-waffle.R @@ -1,152 +1,154 @@ -#' Waffle (Square pie chart) Geom -#' -#' There are two special/critical `aes()` mappings: -#' - `fill` (so the geom knows which column to map the country names/abbrevs to) -#' - `values` (which column you're mapping the filling for the squares with) -#' -#' @md -#' @param mapping Set of aesthetic mappings created by `aes()` or -#' `aes_()`. If specified and `inherit.aes = TRUE` (the -#' default), it is combined with the default mapping at the top level of the -#' plot. You must supply `mapping` if there is no plot mapping. -#' @param n_rows how many rows should there be in the waffle chart? default is 10 -#' @param flip If `TRUE`, flip x and y coords. n_rows then becomes n_cols. -#' Useful to achieve waffle column chart effect. Defaults is `FALSE`. -#' @param make_proportional compute proportions from the raw values? (i.e. each -#' value `n` will be replaced with `n`/`sum(n)`); default is `FALSE`. -#' @param data The data to be displayed in this layer. There are three -#' options: -#' -#' If `NULL`, the default, the data is inherited from the plot -#' data as specified in the call to `ggplot()`. -#' -#' A `data.frame`, or other object, will override the plot -#' data. All objects will be fortified to produce a data frame. See -#' `fortify()` for which variables will be created. -#' -#' A `function` will be called with a single argument, -#' the plot data. The return value must be a `data.frame.`, and -#' will be used as the layer data. -#' @param na.rm If `FALSE`, the default, missing values are removed with -#' a warning. If `TRUE`, missing values are silently removed. -#' @param show.legend logical. Should this layer be included in the legends? -#' `NA`, the default, includes if any aesthetics are mapped. -#' `FALSE` never includes, and `TRUE` always includes. -#' It can also be a named logical vector to finely select the aesthetics to -#' display. -#' @param inherit.aes If `FALSE`, overrides the default aesthetics, -#' rather than combining with them. This is most useful for helper functions -#' that define both data and aesthetics and shouldn't inherit behaviour from -#' the default plot specification, e.g. `borders()`. -#' @param ... other arguments passed on to `layer()`. These are -#' often aesthetics, used to set an aesthetic to a fixed value, like -#' `color = "red"` or `size = 3`. They may also be parameters -#' to the paired geom/stat. -#' @export -#' @examples -#' data.frame( -#' parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), -#' values = c(10, 20, 30, 6, 14, 40, 30, 20, 10), -#' fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) -#' ) -> xdf -#' -#' ggplot(xdf, aes(fill = parts, values = values)) + -#' geom_waffle() + -#' facet_wrap(~fct) + -#' coord_equal() -geom_waffle <- function( - mapping = NULL, data = NULL, - n_rows = 10, flip = FALSE, make_proportional = FALSE, - na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ...) { +# #' Waffle (Square pie chart) Geom +# #' +# #' There are two special/critical `aes()` mappings: +# #' - `fill` (so the geom knows which column to map the country names/abbrevs to) +# #' - `values` (which column you're mapping the filling for the squares with) +# #' +# #' @md +# #' @param mapping Set of aesthetic mappings created by `aes()` or +# #' `aes_()`. If specified and `inherit.aes = TRUE` (the +# #' default), it is combined with the default mapping at the top level of the +# #' plot. You must supply `mapping` if there is no plot mapping. +# #' @param n_rows how many rows should there be in the waffle chart? default is 10 +# #' @param flip If `TRUE`, flip x and y coords. n_rows then becomes n_cols. +# #' Useful to achieve waffle column chart effect. Defaults is `FALSE`. +# #' @param make_proportional compute proportions from the raw values? (i.e. each +# #' value `n` will be replaced with `n`/`sum(n)`); default is `FALSE`. +# #' @param data The data to be displayed in this layer. There are three +# #' options: +# #' +# #' If `NULL`, the default, the data is inherited from the plot +# #' data as specified in the call to `ggplot()`. +# #' +# #' A `data.frame`, or other object, will override the plot +# #' data. All objects will be fortified to produce a data frame. See +# #' `fortify()` for which variables will be created. +# #' +# #' A `function` will be called with a single argument, +# #' the plot data. The return value must be a `data.frame.`, and +# #' will be used as the layer data. +# #' @param na.rm If `FALSE`, the default, missing values are removed with +# #' a warning. If `TRUE`, missing values are silently removed. +# #' @param show.legend logical. Should this layer be included in the legends? +# #' `NA`, the default, includes if any aesthetics are mapped. +# #' `FALSE` never includes, and `TRUE` always includes. +# #' It can also be a named logical vector to finely select the aesthetics to +# #' display. +# #' @param inherit.aes If `FALSE`, overrides the default aesthetics, +# #' rather than combining with them. This is most useful for helper functions +# #' that define both data and aesthetics and shouldn't inherit behaviour from +# #' the default plot specification, e.g. `borders()`. +# #' @param ... other arguments passed on to `layer()`. These are +# #' often aesthetics, used to set an aesthetic to a fixed value, like +# #' `color = "red"` or `size = 3`. They may also be parameters +# #' to the paired geom/stat. +# #' @export +# #' @examples +# #' data.frame( +# #' parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), +# #' values = c(10, 20, 30, 6, 14, 40, 30, 20, 10), +# #' fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) +# #' ) -> xdf +# #' +# #' ggplot(xdf, aes(fill = parts, values = values)) + +# #' geom_waffle() + +# #' facet_wrap(~fct) + +# #' coord_equal() +# geom_waffle <- function( +# mapping = NULL, data = NULL, +# n_rows = 10, flip = FALSE, make_proportional = FALSE, +# na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ...) { +# +# ggplot2::layer( +# data = data, +# mapping = mapping, +# stat = "waffle", +# geom = GeomWaffle, +# position = "identity", +# show.legend = show.legend, +# inherit.aes = inherit.aes, +# params = list( +# na.rm = TRUE, +# n_rows = n_rows, +# flip = flip, +# make_proportional = make_proportional, +# use = "fill", +# ... +# ) +# ) +# +# } +# +# #' @rdname geom_waffle +# #' @export +# GeomWaffle <- ggplot2::ggproto( +# `_class` = "GeomWaffle", +# `_inherit` = ggplot2::Geom, +# +# default_aes = ggplot2::aes( +# values = "values", +# fill = NA, colour = "#b2b2b2", alpha = NA, +# size = 0.125, linetype = 1, width = NA, height = NA +# ), +# +# required_aes = c("x", "y"), +# +# extra_params = c("na.rm", "width", "height", "flip", "use"), +# +# setup_data = function(data, params) { +# +# # message("Called GEOM setup_data()") +# +# waf.dat <- data #data.frame(data)#, stringsAsFactors=FALSE) +# +# # swap x and y values if flip is TRUE +# if (params$flip) { +# waf.dat$x_temp <- waf.dat$x +# waf.dat$x <- waf.dat$y +# waf.dat$y <- waf.dat$x_temp +# waf.dat$x_temp <- NULL +# } +# +# # reduce all values by 0.5 +# # this allows for axis ticks to align _between_ square rows/cols +# # rather than in the middle of a row/col +# waf.dat$x <- waf.dat$x - .5 +# waf.dat$y <- waf.dat$y - .5 +# +# waf.dat$width <- waf.dat$width %||% params$width %||% ggplot2::resolution(waf.dat$x, FALSE) +# waf.dat$height <- waf.dat$height %||% params$height %||% ggplot2::resolution(waf.dat$y, FALSE) +# +# transform( +# waf.dat, +# xmin = x - width / 2, xmax = x + width / 2, width = NULL, +# ymin = y - height / 2, ymax = y + height / 2, height = NULL +# ) -> xdat +# +# xdat +# +# }, +# +# draw_group = function(self, data, panel_params, coord, +# n_rows = 10, make_proportional = FALSE) { +# +# # message("Called GEOM draw_group()") +# +# tile_data <- data +# # tile_data$size <- border_size +# # tile_data$colour <- border_col +# +# coord <- ggplot2::coord_equal() +# +# grid::gList( +# GeomTile$draw_panel(tile_data, panel_params, coord) +# ) -> grobs +# +# ggname("geom_waffle", grid::grobTree(children = grobs)) +# +# }, +# +# draw_key = ggplot2::draw_key_polygon +# +# ) - ggplot2::layer( - data = data, - mapping = mapping, - stat = "waffle", - geom = GeomWaffle, - position = "identity", - show.legend = show.legend, - inherit.aes = inherit.aes, - params = list( - na.rm = TRUE, - n_rows = n_rows, - flip = flip, - make_proportional = make_proportional, - use = "fill", - ... - ) - ) -} - -#' @rdname geom_waffle -#' @export -GeomWaffle <- ggplot2::ggproto( - `_class` = "GeomWaffle", - `_inherit` = ggplot2::Geom, - - default_aes = ggplot2::aes( - values = "values", - fill = NA, colour = "#b2b2b2", alpha = NA, - size = 0.125, linetype = 1, width = NA, height = NA - ), - - required_aes = c("x", "y"), - - extra_params = c("na.rm", "width", "height", "flip", "use"), - - setup_data = function(data, params) { - - # message("Called GEOM setup_data()") - - waf.dat <- data #data.frame(data)#, stringsAsFactors=FALSE) - - # swap x and y values if flip is TRUE - if (params$flip) { - waf.dat$x_temp <- waf.dat$x - waf.dat$x <- waf.dat$y - waf.dat$y <- waf.dat$x_temp - waf.dat$x_temp <- NULL - } - - # reduce all values by 0.5 - # this allows for axis ticks to align _between_ square rows/cols - # rather than in the middle of a row/col - waf.dat$x <- waf.dat$x - .5 - waf.dat$y <- waf.dat$y - .5 - - waf.dat$width <- waf.dat$width %||% params$width %||% ggplot2::resolution(waf.dat$x, FALSE) - waf.dat$height <- waf.dat$height %||% params$height %||% ggplot2::resolution(waf.dat$y, FALSE) - - transform( - waf.dat, - xmin = x - width / 2, xmax = x + width / 2, width = NULL, - ymin = y - height / 2, ymax = y + height / 2, height = NULL - ) -> xdat - - xdat - - }, - - draw_group = function(self, data, panel_params, coord, - n_rows = 10, make_proportional = FALSE) { - - # message("Called GEOM draw_group()") - - tile_data <- data - # tile_data$size <- border_size - # tile_data$colour <- border_col - - coord <- ggplot2::coord_equal() - - grid::gList( - GeomTile$draw_panel(tile_data, panel_params, coord) - ) -> grobs - - ggname("geom_waffle", grid::grobTree(children = grobs)) - - }, - - draw_key = ggplot2::draw_key_polygon - -) \ No newline at end of file diff --git a/R/stat-pictogram.R b/R/stat-pictogram.R index 1b16fdd..e3e5c95 100644 --- a/R/stat-pictogram.R +++ b/R/stat-pictogram.R @@ -1,142 +1,143 @@ -#' @rdname geom_pictogram -#' @export -stat_pictogram <- function(mapping = NULL, data = NULL, - n_rows = 10, make_proportional = FALSE, - na.rm = NA, show.legend = NA, - inherit.aes = TRUE, ...) { - - layer( - stat = StatPictogram, - data = data, - mapping = mapping, - geom = "pictogram", - position = "identity", - show.legend = show.legend, - inherit.aes = inherit.aes, - params = list( - na.rm = na.rm, - n_rows = n_rows, - make_proportional = make_proportional, - ... - ) - ) -} - -#' @rdname geom_pictogram -#' @export -StatPictogram <- ggplot2::ggproto( - `_class` = "StatPictogram", - `_inherit` = ggplot2::Stat, - - required_aes = c("colour", "values", "fa_type", "fa_glyph"), - extra_params = c("na.rm", "width", "height", "flip", "use"), - - setup_params = function(data, params) { - # message("Called StatPictogram::setup_params()") - params - }, - - setup_data = function(data, params) { - # message("Called StatPictogram::setup_data()") - # print(str(data, 1)) - data - }, - - compute_layer = function(self, data, params, panels) { - - # message("Called StatPictogram::compute_layer()") - # print(str(data, 1)) - - use <- params[["use"]] - - if (inherits(data[[use]], "factor")) { - flvls <- levels(data[[use]]) - } else { - flvls <- levels(factor(data[[use]])) - } - - tr1 <- data[c(use, "fa_glyph", "fa_type")] - tr1 <- tr1[!duplicated(tr1), ] - - gtrans <- tr1[, "fa_glyph"] - names(gtrans) <- tr1[, use] - - ttrans <- tr1[, "fa_type"] - names(ttrans) <- tr1[, use] - - # print(str(tr1, 1)) - - p <- split(data, data$PANEL) - - lapply(p, function(.x) { - - parts_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { - rep(as.character(.x[[use]][i]), .x[["values"]][i]) - })) - - pgrp_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { - rep(.x$group, .x[[use]][i]) - })) - - expand.grid( - y = 1:params$n_rows, - x = seq_len((ceiling(sum(.x[["values"]]) / params$n_rows)))#, - # stringsAsFactors = FALSE - ) -> tdf - - parts_vec <- c(parts_vec, rep(NA, nrow(tdf) - length(parts_vec))) - - # tdf$parts <- parts_vec - tdf[["values"]] <- parts_vec - tdf[[use]] <- parts_vec - - tdf[["fa_glyph"]] <- gtrans[tdf[[use]]] - tdf[["fa_type"]] <- ttrans[tdf[[use]]] - - tdf[["PANEL"]] <- .x[["PANEL"]][1] - tdf[["group"]] <- 1:nrow(tdf) - - tdf <- tdf[sapply(tdf[[use]], function(x) !is.na(x)),] - - tdf - - }) -> p - - p <- plyr::rbind.fill(p) - p[[use]] <- factor(p[[use]], levels=flvls) - - # print(str(p, 1)) - - p - - }, - - finish_layer = function(self, data, params) { - # message("Called StatPictogram::finish_layer()") - self$default_aes[["fa_glyph"]] <- "square" - # print(str(data,1)) - # print(str(params, 1)) - data - }, - - compute_panel = function(self, data, scales, na.rm = FALSE, - n_rows = 10, make_proportional = FALSE) { - - # message("Called StatPictogram::compute_panel()") - - ggproto_parent(Stat, self)$compute_panel( - data, scales, - n_rows = n_rows, - make_proportional = make_proportional, - na.rm = na.rm - ) - - }, - - aesthetics = function(self) { - # message("Called StatPictogram::aesthetics()") - c(union(self$required_aes, names(self$default_aes)), "group") - } - - -) +# #' @rdname geom_pictogram +# #' @export +# stat_pictogram <- function(mapping = NULL, data = NULL, +# n_rows = 10, make_proportional = FALSE, +# na.rm = NA, show.legend = NA, +# inherit.aes = TRUE, ...) { +# +# layer( +# stat = StatPictogram, +# data = data, +# mapping = mapping, +# geom = "pictogram", +# position = "identity", +# show.legend = show.legend, +# inherit.aes = inherit.aes, +# params = list( +# na.rm = na.rm, +# n_rows = n_rows, +# make_proportional = make_proportional, +# ... +# ) +# ) +# } +# +# #' @rdname geom_pictogram +# #' @export +# StatPictogram <- ggplot2::ggproto( +# `_class` = "StatPictogram", +# `_inherit` = ggplot2::Stat, +# +# required_aes = c("colour", "values", "fa_type", "fa_glyph"), +# extra_params = c("na.rm", "width", "height", "flip", "use"), +# +# setup_params = function(data, params) { +# # message("Called StatPictogram::setup_params()") +# params +# }, +# +# setup_data = function(data, params) { +# # message("Called StatPictogram::setup_data()") +# # print(str(data, 1)) +# data +# }, +# +# compute_layer = function(self, data, params, panels) { +# +# # message("Called StatPictogram::compute_layer()") +# # print(str(data, 1)) +# +# use <- params[["use"]] +# +# if (inherits(data[[use]], "factor")) { +# flvls <- levels(data[[use]]) +# } else { +# flvls <- levels(factor(data[[use]])) +# } +# +# tr1 <- data[c(use, "fa_glyph", "fa_type")] +# tr1 <- tr1[!duplicated(tr1), ] +# +# gtrans <- tr1[, "fa_glyph"] +# names(gtrans) <- tr1[, use] +# +# ttrans <- tr1[, "fa_type"] +# names(ttrans) <- tr1[, use] +# +# # print(str(tr1, 1)) +# +# p <- split(data, data$PANEL) +# +# lapply(p, function(.x) { +# +# parts_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { +# rep(as.character(.x[[use]][i]), .x[["values"]][i]) +# })) +# +# pgrp_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { +# rep(.x$group, .x[[use]][i]) +# })) +# +# expand.grid( +# y = 1:params$n_rows, +# x = seq_len((ceiling(sum(.x[["values"]]) / params$n_rows)))#, +# # stringsAsFactors = FALSE +# ) -> tdf +# +# parts_vec <- c(parts_vec, rep(NA, nrow(tdf) - length(parts_vec))) +# +# # tdf$parts <- parts_vec +# tdf[["values"]] <- parts_vec +# tdf[[use]] <- parts_vec +# +# tdf[["fa_glyph"]] <- gtrans[tdf[[use]]] +# tdf[["fa_type"]] <- ttrans[tdf[[use]]] +# +# tdf[["PANEL"]] <- .x[["PANEL"]][1] +# tdf[["group"]] <- 1:nrow(tdf) +# +# tdf <- tdf[sapply(tdf[[use]], function(x) !is.na(x)),] +# +# tdf +# +# }) -> p +# +# p <- plyr::rbind.fill(p) +# p[[use]] <- factor(p[[use]], levels=flvls) +# +# # print(str(p, 1)) +# +# p +# +# }, +# +# finish_layer = function(self, data, params) { +# # message("Called StatPictogram::finish_layer()") +# self$default_aes[["fa_glyph"]] <- "square" +# # print(str(data,1)) +# # print(str(params, 1)) +# data +# }, +# +# compute_panel = function(self, data, scales, na.rm = FALSE, +# n_rows = 10, make_proportional = FALSE) { +# +# # message("Called StatPictogram::compute_panel()") +# +# ggproto_parent(Stat, self)$compute_panel( +# data, scales, +# n_rows = n_rows, +# make_proportional = make_proportional, +# na.rm = na.rm +# ) +# +# }, +# +# aesthetics = function(self) { +# # message("Called StatPictogram::aesthetics()") +# c(union(self$required_aes, names(self$default_aes)), "group") +# } +# +# +# ) +# \ No newline at end of file diff --git a/R/stat-waffle.R b/R/stat-waffle.R index 251aa50..cc82c5a 100644 --- a/R/stat-waffle.R +++ b/R/stat-waffle.R @@ -1,97 +1,98 @@ -#' @rdname geom_waffle -#' @export -stat_waffle<- function(mapping = NULL, data = NULL, - n_rows = 10, make_proportional = FALSE, - na.rm = NA, show.legend = NA, - inherit.aes = TRUE, ...) { - - layer( - stat = StatWaffle, - data = data, - mapping = mapping, - geom = "waffle", - position = "identity", - show.legend = show.legend, - inherit.aes = inherit.aes, - params = list( - na.rm = na.rm, - n_rows = n_rows, - make_proportional = make_proportional, - ... - ) - ) -} - -#' @rdname geom_waffle -#' @export -StatWaffle <- ggplot2::ggproto( - `_class` = "StatWaffle", - `_inherit` = ggplot2::Stat, - - required_aes = c("fill", "values"), - - extra_params = c("na.rm", "width", "height", "flip", "use"), - - compute_layer = function(self, data, params, panels) { - - use <- params[["use"]] - - if (inherits(data[[use]], "factor")) { - flvls <- levels(data[[use]]) - } else { - flvls <- levels(factor(data[[use]])) - } - - p <- split(data, data$PANEL) - - lapply(p, function(.x) { - - parts_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { - rep(as.character(.x[[use]][i]), .x[["values"]][i]) - })) - - pgrp_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { - rep(.x$group, .x[[use]][i]) - })) - - expand.grid( - y = 1:params$n_rows, - x = seq_len((ceiling(sum(.x[["values"]]) / params$n_rows)))#, - # stringsAsFactors = FALSE - ) -> tdf - - parts_vec <- c(parts_vec, rep(NA, nrow(tdf)-length(parts_vec))) - - # tdf$parts <- parts_vec - tdf[["values"]] <- NA - tdf[[use]] <- parts_vec - tdf[["PANEL"]] <- .x[["PANEL"]][1] - tdf[["group"]] <- 1:nrow(tdf) - - tdf <- tdf[sapply(tdf[[use]], function(x) !is.na(x)),] - - }) -> p - - p <- plyr::rbind.fill(p) - p[[use]] <- factor(p[[use]], levels=flvls) - - # print(str(p)) - - p - - }, - - compute_panel = function(self, data, scales, na.rm = FALSE, - n_rows = 10, make_proportional = FALSE) { - - # message("Called STAT compute_panel()") - - ggproto_parent(Stat, self)$compute_panel( - data, scales, - n_rows = 10, - make_proportional = FALSE - ) - - } - -) +# #' @rdname geom_waffle +# #' @export +# stat_waffle<- function(mapping = NULL, data = NULL, +# n_rows = 10, make_proportional = FALSE, +# na.rm = NA, show.legend = NA, +# inherit.aes = TRUE, ...) { +# +# layer( +# stat = StatWaffle, +# data = data, +# mapping = mapping, +# geom = "waffle", +# position = "identity", +# show.legend = show.legend, +# inherit.aes = inherit.aes, +# params = list( +# na.rm = na.rm, +# n_rows = n_rows, +# make_proportional = make_proportional, +# ... +# ) +# ) +# } +# +# #' @rdname geom_waffle +# #' @export +# StatWaffle <- ggplot2::ggproto( +# `_class` = "StatWaffle", +# `_inherit` = ggplot2::Stat, +# +# required_aes = c("fill", "values"), +# +# extra_params = c("na.rm", "width", "height", "flip", "use"), +# +# compute_layer = function(self, data, params, panels) { +# +# use <- params[["use"]] +# +# if (inherits(data[[use]], "factor")) { +# flvls <- levels(data[[use]]) +# } else { +# flvls <- levels(factor(data[[use]])) +# } +# +# p <- split(data, data$PANEL) +# +# lapply(p, function(.x) { +# +# parts_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { +# rep(as.character(.x[[use]][i]), .x[["values"]][i]) +# })) +# +# pgrp_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { +# rep(.x$group, .x[[use]][i]) +# })) +# +# expand.grid( +# y = 1:params$n_rows, +# x = seq_len((ceiling(sum(.x[["values"]]) / params$n_rows)))#, +# # stringsAsFactors = FALSE +# ) -> tdf +# +# parts_vec <- c(parts_vec, rep(NA, nrow(tdf)-length(parts_vec))) +# +# # tdf$parts <- parts_vec +# tdf[["values"]] <- NA +# tdf[[use]] <- parts_vec +# tdf[["PANEL"]] <- .x[["PANEL"]][1] +# tdf[["group"]] <- 1:nrow(tdf) +# +# tdf <- tdf[sapply(tdf[[use]], function(x) !is.na(x)),] +# +# }) -> p +# +# p <- plyr::rbind.fill(p) +# p[[use]] <- factor(p[[use]], levels=flvls) +# +# # print(str(p)) +# +# p +# +# }, +# +# compute_panel = function(self, data, scales, na.rm = FALSE, +# n_rows = 10, make_proportional = FALSE) { +# +# # message("Called STAT compute_panel()") +# +# ggproto_parent(Stat, self)$compute_panel( +# data, scales, +# n_rows = 10, +# make_proportional = FALSE +# ) +# +# } +# +# ) +# \ No newline at end of file diff --git a/R/sw2.R b/R/sw2.R new file mode 100644 index 0000000..d65167b --- /dev/null +++ b/R/sw2.R @@ -0,0 +1,355 @@ +draw_key_waffle <- function(data, params, size, ...) { # nocov start + + # msg("Called => draw_key_waffle()") + # + # print(str(data, 1)) + # print(str(params, 1)) + # print(str(size, 1)) + # print(str(list(...), 1)) + + grid::roundrectGrob( + r = min(params$radius, unit(3, "pt")), + default.units = "native", + width = 0.9, height = 0.9, + name = "lkey", + gp = grid::gpar( + col = params[["color"]][[1]] %l0% params[["colour"]][1] %l0% data[["colour"]][[1]] %l0% "#00000000", + fill = alpha(data$fill %||% data$colour %||% "grey20", data$alpha), + lty = data$linetype %||% 1 + ) + ) +} # nocov end + +#' Waffle (Square pie chart) Geom +#' +#' There are two special/critical `aes()` mappings: +#' - `fill` (so the geom knows which column to map the country names/abbrevs to) +#' - `values` (which column you're mapping the filling for the squares with) +#' +#' @md +#' @param mapping Set of aesthetic mappings created by `aes()` or +#' `aes_()`. If specified and `inherit.aes = TRUE` (the +#' default), it is combined with the default mapping at the top level of the +#' plot. You must supply `mapping` if there is no plot mapping. +#' @param n_rows how many rows should there be in the waffle chart? default is 10 +#' @param flip If `TRUE`, flip x and y coords. n_rows then becomes n_cols. +#' Useful to achieve waffle column chart effect. Defaults is `FALSE`. +#' @param make_proportional compute proportions from the raw values? (i.e. each +#' value `n` will be replaced with `n`/`sum(n)`); default is `FALSE`. +#' @param radius radius +#' @param data The data to be displayed in this layer. There are three +#' options: +#' +#' If `NULL`, the default, the data is inherited from the plot +#' data as specified in the call to `ggplot()`. +#' +#' A `data.frame`, or other object, will override the plot +#' data. All objects will be fortified to produce a data frame. See +#' `fortify()` for which variables will be created. +#' +#' A `function` will be called with a single argument, +#' the plot data. The return value must be a `data.frame.`, and +#' will be used as the layer data. +#' @param na.rm If `FALSE`, the default, missing values are removed with +#' a warning. If `TRUE`, missing values are silently removed. +#' @param show.legend logical. Should this layer be included in the legends? +#' `NA`, the default, includes if any aesthetics are mapped. +#' `FALSE` never includes, and `TRUE` always includes. +#' It can also be a named logical vector to finely select the aesthetics to +#' display. +#' @param inherit.aes If `FALSE`, overrides the default aesthetics, +#' rather than combining with them. This is most useful for helper functions +#' that define both data and aesthetics and shouldn't inherit behaviour from +#' the default plot specification, e.g. `borders()`. +#' @param ... other arguments passed on to `layer()`. These are +#' often aesthetics, used to set an aesthetic to a fixed value, like +#' `color = "red"` or `size = 3`. They may also be parameters +#' to the paired geom/stat. +#' @export +#' @examples +#' data.frame( +#' parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), +#' vals = c(10, 20, 30, 6, 14, 40, 30, 20, 10), +#' fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) +#' ) -> xdf +#' +#' ggplot(xdf, aes(fill = parts, values = vals)) + +#' geom_waffle() + +#' facet_wrap(~fct) +geom_waffle <- function(mapping = NULL, data = NULL, + n_rows = 10, make_proportional = FALSE, + na.rm = NA, show.legend = NA, flip = FALSE, + radius = grid::unit(0, "npc"), + inherit.aes = TRUE, ...) { + + # msg("Called => geom_waffle::geom_waffle()") + # msg("Done With => geom_waffle::geom_waffle()") + + layer( + stat = StatWaffle, + data = data, + mapping = mapping, + geom = GeomWaffle, + position = "identity", + show.legend = show.legend, + inherit.aes = inherit.aes, + check.param = FALSE, + params = list( + na.rm = na.rm, + n_rows = n_rows, + make_proportional = make_proportional, + flip = flip, + radius = radius, + ... + ) + ) +} + +#' @rdname geom_waffle +#' @export +GeomWaffle <- ggplot2::ggproto( + `_class` = "GeomWaffle", + `_inherit` = GeomRtile, + + default_aes = ggplot2::aes( + fill = NA, alpha = NA, colour = NA, + size = 0.125, linetype = 1, width = NA, height = NA + ), + + draw_group = function(self, data, panel_params, coord, + n_rows = 10, make_proportional = FALSE, flip = FALSE, + radius = grid::unit(0, "npc")) { + + # msg("Called => GeomWaffle::draw_group()") + + coord <- ggplot2::coord_equal() + grobs <- GeomRtile$draw_panel(data, panel_params, coord, radius) + + # msg("Done With => GeomWaffle::draw_group()") + + ggname("geom_waffle", grid::grobTree(children = grobs)) + + }, + + + draw_panel = function(self, data, panel_params, coord, + n_rows = 10, make_proportional = FALSE, flip = FALSE, + radius = grid::unit(0, "npc")) { + + # msg("Called => GeomWaffle::draw_panel()") + + coord <- ggplot2::coord_equal() + + # grid::gList( + grobs <- GeomRtile$draw_panel(data, panel_params, coord, radius) + # ) -> grobs + + # msg("Done With => GeomWaffle::draw_panel()") + + ggname("geom_waffle", grid::grobTree(children = grobs)) + + }, + + draw_key = draw_key_waffle + +) + +#' @rdname geom_waffle +#' @export +stat_waffle <- function(mapping = NULL, data = NULL, geom = "blank", + n_rows = 10, make_proportional = FALSE, flip = FALSE, + radius = grid::unit(0, "npc"), + na.rm = NA, show.legend = NA, + inherit.aes = TRUE, ...) { + + # msg("Called => stat_waffle::stat_waffle()") + # msg("Done With => stat_waffle::stat_waffle()") + + layer( + stat = StatWaffle, + data = data, + mapping = mapping, + geom = geom, + position = "identity", + show.legend = show.legend, + inherit.aes = inherit.aes, + check.param = FALSE, + params = list( + na.rm = na.rm, + n_rows = n_rows, + make_proportional = make_proportional, + flip = flip, + radius = radius, + ... + ) + ) +} + +#' @rdname geom_waffle +#' @export +StatWaffle <- ggplot2::ggproto( + + `_class` = "StatWaffle", + `_inherit` = ggplot2::Stat, + + extra_params = c("na.rm", "n_rows", "make_proportional", "flip", "radius"), + + required_aes = c("fill", "values", "colour"), + + setup_params = function(data, params) { + # msg("Called => StatWaffle::setup_params()") + # msg("Done With => StatWaffle::setup_params()") + params + }, + + setup_data = function(data, params) { + + # msg("Called => StatWaffle::setup_data()") + # + # print(str(data, 1)) + # print(str(params, 1)) + + use <- "fill" + + if (inherits(data[[use]], "factor")) { + flvls <- levels(data[[use]]) + } else { + flvls <- levels(factor(data[[use]])) + } + + if (inherits(data[["colour"]], "factor")) { + clvls <- levels(data[["colour"]]) + } else { + clvls <- levels(factor(data[["colour"]])) + } + + if (!("colour" %in% names(data))) { + data[["colour"]] <- "white" + } else { + if (any(is.na(as.character(data[["colour"]])))) { + data[["colour"]] <- "white" + } else { + data[["colour"]] <- as.character(data[["colour"]]) + } + } + + p <- split(data, data$PANEL) + + lapply(p, function(.x) { + + if (params[["make_proportional"]]) { + .x[["values"]] <- .x[["values"]] / sum(.x[["values"]]) + .x[["values"]] <- round_preserve_sum(.x[["values"]], digits = 2) + .x[["values"]] <- as.integer(.x[["values"]] * 100) + } + + parts_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { + rep(as.character(.x[[use]][i]), .x[["values"]][i]) + })) + + pgrp_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { + rep(.x$group, .x[["values"]][i]) + })) + + # print(str(.x, 1)) + + colour_vec <- unlist(sapply(1:length(.x[[use]]), function(i) { + rep(.x[["colour"]][i], .x[["values"]][i]) + })) + + expand.grid( + y = 1:params$n_rows, + x = seq_len((ceiling(sum(.x[["values"]]) / params$n_rows)))#, + # stringsAsFactors = FALSE + ) -> tdf + + parts_vec <- c(parts_vec, rep(NA, nrow(tdf)-length(parts_vec))) + colour_vec <- c(colour_vec, rep(NA, nrow(tdf)-length(colour_vec))) + + # tdf$parts <- parts_vec + tdf[["values"]] <- NA + tdf[["colour"]] <- colour_vec + tdf[[use]] <- parts_vec + tdf[["PANEL"]] <- .x[["PANEL"]][1] + tdf[["group"]] <- 1:nrow(tdf) + + tdf <- tdf[sapply(tdf[[use]], function(x) !is.na(x)),] + + }) -> p + + p <- plyr::rbind.fill(p) + p[[use]] <- factor(p[[use]], levels=flvls) + p[["colour"]] <- factor(p[["colour"]], levels = clvls) + + # print(str(p, 1)) + # + # msg("Done With => StatWaffle::setup_data()") + # data + + wdat <- p + + if (params$flip) { + x_temp <- wdat$x + wdat$x <- wdat$y + wdat$y <- x_temp + x_temp <- NULL + } + + wdat$width <- wdat$width %||% params$width %||% ggplot2::resolution(wdat$x, FALSE) + wdat$height <- wdat$height %||% params$height %||% ggplot2::resolution(wdat$y, FALSE) + + transform( + wdat, + xmin = x - width / 2, + xmax = x + width / 2, + width = NULL, + ymin = y - height / 2, + ymax = y + height / 2, + height = NULL + ) -> p + + p + + }, + + compute_layer = function(self, data, params, layout) { + # msg("Called => StatWaffle::compute_layer()") + # print(str(data, 1)) + # print(str(params, 1)) + # msg("Done With => StatWaffle::compute_layer()") + data + }, + + finish_layer = function(self, data, params) { + # msg("Called => StatWaffle::finish_layer()") + # msg("Done With => StatWaffle::finish_layer()") + data + }, + + compute_panel = function(self, data, scales, ...) { + # msg("Called => StatWaffle::compute_panel()") + # msg("Done With => StatWaffle::compute_panel()") + data + } + +) + + + + + + + + + + + + + + + + + + + + diff --git a/R/utils.r b/R/utils.r index 1da6df0..e62a4ea 100644 --- a/R/utils.r +++ b/R/utils.r @@ -1,3 +1,12 @@ +round_preserve_sum <- function(x, digits = 0) { + up <- 10^digits + x <- x * up + y <- floor(x) + indices <- tail(order(x - y), round(sum(x)) - sum(y)) + y[indices] <- y[indices] + 1 + y / up +} + # VIA: http://stackoverflow.com/q/13294952/1457051 rbind_gtable_max <- function(...) { @@ -86,5 +95,6 @@ ggname <- function(prefix, grob) { } "%||%" <- function(a, b) { if (!is.null(a)) a else b } +"%l0%" <- function(a, b) { if (length(a)) a else b } -.pt <- 2.84527559055118 \ No newline at end of file +.pt <- ggplot2::.pt \ No newline at end of file diff --git a/README.Rmd b/README.Rmd index 707b7ab..665475e 100644 --- a/README.Rmd +++ b/README.Rmd @@ -83,7 +83,7 @@ storms %>% filter(year >= 2010) %>% count(year, status) -> storms_df -ggplot(storms_df, aes(fill = status, values = n)) + +ggplot(storms_df, aes(fill = status, values = n)) + geom_waffle(color = "white", size = .25, n_rows = 10, flip = TRUE) + facet_wrap(~year, nrow = 1, strip.position = "bottom") + scale_x_discrete() + diff --git a/README.md b/README.md index 4e77454..67d16ed 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ storms %>% filter(year >= 2010) %>% count(year, status) -> storms_df -ggplot(storms_df, aes(fill = status, values = n)) + +ggplot(storms_df, aes(fill = status, values = n)) + geom_waffle(color = "white", size = .25, n_rows = 10, flip = TRUE) + facet_wrap(~year, nrow = 1, strip.position = "bottom") + scale_x_discrete() + @@ -182,7 +182,7 @@ waffle( ### Replicating an old favourite -![](http://graphics8.nytimes.com/images/2008/07/20/business/20debtgraphic.jpg) +![](https://graphics8.nytimes.com/images/2008/07/20/business/20debtgraphic.jpg) Via: @@ -289,10 +289,10 @@ iron(A, B, C) cloc::cloc_pkg_md() ``` -| Lang | \# Files | (%) | LoC | (%) | Blank lines | (%) | \# Lines | (%) | -| :--- | -------: | ---: | --: | ---: | ----------: | ---: | -------: | ---: | -| R | 12 | 0.92 | 387 | 0.75 | 140 | 0.66 | 269 | 0.74 | -| Rmd | 1 | 0.08 | 131 | 0.25 | 72 | 0.34 | 93 | 0.26 | +| Lang | \# Files | (%) | LoC | (%) | Blank lines | (%) | \# Lines | (%) | +| :--- | -------: | --: | --: | ---: | ----------: | ---: | -------: | ---: | +| R | 18 | 0.9 | 545 | 0.63 | 202 | 0.61 | 1011 | 0.85 | +| Rmd | 2 | 0.1 | 317 | 0.37 | 130 | 0.39 | 181 | 0.15 | ## Code of Conduct diff --git a/README_files/figure-gfm/geoms-1.png b/README_files/figure-gfm/geoms-1.png index 4e388d4a2212f24e73f3600aff580a80a5ab513f..a28ce4e5196d5e0e6d9f2ad49c57bbf5a6b1708d 100644 GIT binary patch literal 60964 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 literal 61033 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 diff --git a/README_files/figure-gfm/waffle-bars-1.png b/README_files/figure-gfm/waffle-bars-1.png index db72608bb47fef88493b49767644dae37af08720..ee561946e19b899b57b6a920f672f3adc6c15297 100644 GIT binary patch literal 108997 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 Hr-UW|vMUt* literal 110272 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 z znlGqF`UxZl0dhHUU4$^;9W%>|LYCI^ikQ5iw8LXje#vkC#SYh1`0EJ!Pr-wBT^5K1 z*UXdZJ~%vCIs>$ML>b-f%oHQmvm(qEoo90ocW-uDzq2-*ivCQT?XZA6)cQ3~FmPvy z>=OA*S>;{Zz2q031O(|4g|sJow2Ua{9=(2kWrk_zAz<=*J#vdy$r@LAGVrkE z;ywSTcwGy(9m@OD)UpiK6lL@qKbZc@3&1FE?kTE*Vm*KrKMA2@aye}kKmBOf@wZ&^ zf5lE;av;3AQ=obNNl^$S!$@R6#Cxh}*n#~I;r0K&$I*zm`6^!<`HB6Kfh-!VZe<10 zOGY0rLe$)?$4oQ~GRxVpBxa&Mz68>l3K~|;eIw`_A&T+2@%F(N)VIk}}B1Jy)NgR<-|1Y~&>hx?M=M%C+ z*{Y}L8(q-ZpZN>Dl0X7<=mKufpNURs7);i3bkUKLtCWG7Q#D3LTPY&MWC;eHV)*h$ z)d~%Wo1-??xu7!7Fuczj<$&N_J*D@rlpMf~`S=f`<#Uz6pagA^#|_1asLKTs#Xpt9 zS)xZT>4&iFaj*(hwB1y-6OF^Kf-MxzDZZB+)Fws}7&5R57mMP8L)nUHQI=^1yxGnN zLRZ))^=JU{TkL}#vNgu%pq|8c2#wIHO8u8_ zCU8)soGZMyZ|RC`z;lHR_FM?}HJ;m`4C|~2tw|3GkPXpXr3I`n)y5s;gKH~-sp{x}yv-}$9{zAnkEa8>g%=6WA4%A<$}%jtUUXEvQc-QVbxEJ1BIlZx&1qp{{P zZeCR-lL50Fpotm1ZaXf(&0pH?tI~KW%x&som~vyrC9eKd-oo%B6sXZ z+{qJRsg^Z0#XBH&y6-3*HyTB{Msl_ZgT(oa+j%5(Vz)n@^tZy92jJW9D&@dmDc5hT z9&)S8;Or!HtkG;9xW&|8Xxf)v%j6hZOh*uTk>sS*2S%DKKLsun5ayT4&|ZS_vNo#q zS-$UCcQf#R2dhxnfPamMIU@?2!i(8xO}aU=O2{V@l=QHZl_6($%MJ#qxHc_CmhdFhmdkL7-c_Xh zO}4!8yJ?W(@G%ZqsuWAJE(;XL6(pH`KrNon_ChcR=OyZE^n%>Sb*QZoe2tA+bL{`D zySx2McSqV%@99Bh3{H}rm2L-eVxDv{lshNVeebK6bT=Z-rKK)|Vb~K}2FC60Kw;R` zyeO=L3gDh6-x8lOm|YIbV9@_}&~9t-TOV4WEh=P&e~UW-?Z-l~H{!RA4$$Srs3MZu zwkm@MN1qg!%IVvsu@L8O501n@iNbMV8wYsMH~MmuoeZKn%(}GoVB{R*;tRp_3CV-j z>lYilL;aCZqO|Y>?ikvsBardVRl{FOx=Kc2M4Cn&_okND*Rc~b`2(yu*(FCsq@)I^ zov?Ev9*U{L7i{v*b(zlP<{#xZnSg{jrgTI(hpc{~r%nAPBcE$IBfLoNU7Sw-#jl!< zmKT-b%*}-6om_)5SvQe<*N)`uN4Enjpj!R@OqntIlp`xB-`cKvz zR0X=SE{&Wl?y!hufn(5MuZ@kXq_!LD#+plR!Uid*j#-yaHQv?jp_5l+U9PpnO4MU5 zT)3~$H+0+L!&vdf`k*LfuX2c2cqZ^nmlHCM^TkocxTVp}KDCoAf=~1KXx^)0y*^5t zn;_TeWOKtzX0ikP@&hRA>3y&SB#+d-$}Vl@wsq7c{}2jkM1Ulc_02EbKj(F?8jygd zx6VGY#ebGh|L5@lI*|Cjc+v7F`TBj-Wx9{L>K+{g{}6Rqfqaz_0m0@UQqj*L_gsO= zw2D9Qet+kpFMwoy@cVb|e^~10eM)OvOI`90YIPcs?^>JuOH)dZ&QRkcbG?fSoTuLJ z14(ARc3-lKLS8gPYcK#tBDsDN>QONQxq-a36wI2?lIEl$oVbez6ezMq{9D2kJNwdIOS%-xV`F1oAcnRm zS)Y1kDj9Gqg4x_lclMkCP>E3;RgPVay5GH#K)f=yxobf6i0DBkkTI!hH;Qp5XGdXs z1XkL0WyCWD zS;~J;)D#xwK$M~Z7>u+Ow30Ect!`|Lcx)M@jm=INJN|V{jp4m$ZIPbcOp)R2l_ZIs z9bJZxP0RsF2taE5;@D@DSK(~c4W!<()9rH!i}rpgn!=wyg2pYr6^z{z`ThSA`xIG8 zD0!`&i|wWbz+Nm$CrxTNx)U~r7v@}HY&la}c((N6YESfNF>O`}taBAd16D=*J6cQ$ z3BRj`_nZ6WeSCaXOhmm>|l&DZ%_ZZN|JRjCXB+(2CNAAzG|9 z)?TV8jRJ}V7J>1TFC#AosvLZ2!_r}%tovfcQj~oyN;!c1mdzTa`}>I86qhRb#!1mp zI2<4PW6i;hTx8sxUTrEha zhrz=rJC)?t_cC<@Z94P|)K@=-HK)^+oJ(b4n=<(AJK&ezu^f=5~7 z`Xu<@Pw{{TP^CrvXTpoDl@LRSQ+P)F9E03CB{oFOi=dUA&XXcr+LYi}wMtJk1 z)wf%cF1y&VL1>v!QZIF&%I?K_q;_SsM&fQchgmsXW#%&O5#p0Ojdw#aZWe3!WJ^BdyJh$fJ>%=X2zeJ|@r#y(Wd z0%HGW=FK0Fyt`-SNfim&b9L)2McnOjD)44gNZq$Ck&0@H%j3UVB*wTMMgmFqzPoLx z2K9aaQtKD(emaLpj-lFcB}D9`U@k$|8Rs6OI!ULoz7szt_&DWy!)5QtA2_3_u}BM# z*EieR7Vqlbtpj|X<^dwb$V6b0MLeMOv^7Byf>Cgz<)$z)ozp1Rwn7Vi`JfO zfQXvW&P196dbJ^`Qm~VQ*Ef~Jl8bT^2wWg7?+Ydzo8@=B;`|I#g{YvjIL3lY3*~O7 zB9za`WesY3p4L1^+^c=(vg$hIW$w~W?W=Ru@y?;HLM72xm!1Q6p0v60m{ls_Ex#o_ zRB}^>2|2I+VgNd;mUpmMS;(#Oi_lt+3f)5zM(pZ`wV{chAy>uSm@2>RNPIKMzh{#F z(Rb&*R*N131Rs&gSm67qyIei7|_wz%+o{E%&kdT}hDwrwki*C%JV~`^t=vFY$dF*u# zRf}@|!lunhRy->zSh`FJ$Of8fEQA{`#cI5v-j#CoXR>A^zC?3voYFa1=JiTj6Uhor zEcAf#p(s8ysaA}WHIZ>$>RQg|`E$)^-so8j`nYnscOLCi0U%BS=5j5HsCrm}9d+T$jVZhE7R`U2Z zk|=UOT#T~gTJ0Qd0;ft0@0P1m!;A7b=Q#!)0{$xM0@x=#j#qXnyA#Gsj|Q;iUsq~fHHd$0#cW> zydnU?5o`Y*z@ltWo2OfQfMYdFH^Gujd%RG#E;BC!@T35NaI5Pxi^bq) z-s-o!;xp~qZ>hCApY~k21Ueg`KF~^)XEscoH?14sA%P<+8PP1H5)?w}fBAU|JCZj=W-^qyTtw+f2^0g>WTm#oL z_2tV)s?5N^7U1sK@^Y4d9dd^FoGo(YUnUZ-$bl~tqm6>IC=PC8-^N+6xj9t2fj2-@U4oVCsAC;r z@T&P88+|^*bZNnitQgZQ8n`{N5u5GhmTh+^@%JwY0rN3plsuNn6g&1MYC)#41Geoa zjSK6H4A@&1L7@tq<0O^gl1FUfG^tqz$GA8_11z&vMrz^801L=-!WtEgJi1#rt%a|! zTx)VL(+A1J9;iQ7-WK^q{}vn6v9iqy_Yo0jkqcP~A)Be##6igu6-;~GIddn(#RM1;!?&TI3Q{qQZk;01Qt1#guuaglAgi8ZZ|!0%t?bE*sU%(tV1 z>c?#e&qoa>;=Ve?$u>tXY2VPdwh7@9kJ7vjULy7(pVR|!bng*Y-eQTPyb7-?J?P@> zaa)E$^JD@5x6nn=q}&;2hYFO>LPAu<>gne%U|)XqrAH5M{C z@xNQNHJ44=6k?`{F_#W1q66-0;LYLe(3dt}2UZHIW6+jRxvIAZuN3^o$VHu=`Hxbb zgGbR=DBRjvH_d}1Q1joR4aWf?{0Z}2bjSIPM5E0j(^Qa$JwLaPYc$YNAfK@7QohM9 zraA0HEC8rdWW*l%@38G)Y%%OGspCC8`f3f~ek?gI%i49Bx9bE(FLvbG% zA&s{}44*NXov8ENR_?J1@Pkca%u=*sX_NVfFOIMea;_*}+1hkJ{5r3N@^dtGtwr}OFNWs?y6zXcd6H>`nP z6Ozo|N+k`Y2rtkiF|_hF0uPlclgz3dAe{!OyT%++M5zQo8Pc3f%{p-AL*~ys`Z86F zwko7PKxjZ7{&~T%o4sQp=sy`*sgRK^<+Cm6`$lqNxVsSKYH-AKxvSs(MfCq+WYrbB z;}p?&OG>qv&~&2^6zp;Kl>``YWW=#3Kdrwruk5ny15%SuLZcYp2{PVI=e$Asb5i{s zU@s{MBDZ}02lf&%@Qv^*ll=HQoxeZw|NZaNJ#XF{^S|7l{}%}G+yepK=#GCPhY12p z-BSE|_J^MJJvef_2S-g*0q_0+9C-svT}l4L`SbgJwS8YqaFl)K_n%nie;(feOTnVQ z|5>Jde~sTC9C39CLf?aR1stnp6nM1w13vk6C~BExt^7BLlzm{ZJ@Lvs#Ni&7!OOX4!yYV ztOy%WORB5L9Drr)>Ruzm`k;i(ucGJ$SHCIBD1RZ;?ciZ$41M@ zAyM@-t*foqqJUpVtsY+@780I9vw&wKO&Oz4?n=z7g4v*;dr8w3EejfiR=U#l#~^{FWv}0+|i0DnaXmF*;ihpPgyPtb=0yH(h9+x)WQ}4MR`}FKA{ov)xava1xuA6PYL@- zA#Bh+1ax&C{Bq4=zE!WJR8|#~lvF!Z;Ea8iN71c^xUGkRwBk`*9EN_LQeg}vJHYv07h}OA&cU3x4>o5nI z?A4NWmSfmxtkdBD26%f_YAfxwCgxz3h&+6z@T%vrE8;fu2cbhZkN_^jJcIep_G?|c z2}%UJ?!|HgsP!z)w4^#}=Z+WehrSE5)#kFacBp5U+hW5-c)ZyDc7pJXq9E> zBkUWf`4QE`p=Lx>z(}SMKoP(fmr~AIJmY?**Zk5~wOWj2X$kN3Q46B&X^pvxC%^dGuXLWm9KXFRp#fO+$L{>KZE^&$>(SWpgNtVyym5rdvED~~!Gf-$HKgM9 zSUHPr6+J^OtxTe;+lXRTML|*~I)cRBPAlR{X=z+fU(z1od(4MK?K-E|KX*uPkb)d071W$Z_C}tk?Onw1c_JmrwGhvjH6!OjIlm@FJDr3{ z5IS+R@q5%XL3N$;%?1mj_jwsPBN{bo&~ytIOJ33}w%{~dC)0%Qym8?OANEE>OiN-4 zwkzP(*Dtq*;x4_)fT8z{wubbnF;s<}y$)c)^L%qh!gA z6frGF)1NtjwOD~ee^=ZuFbo2MY@fb602)s6lufhv;tF>chwG`*00#V*iNFIBC>g$R_l{#Iik1Mu%l)t6L`KXymU?a0Ukqb%tDtq zyOVuhVRMXiMnHuug>U;TY1s#_uGl%YM2ivm-5Rv~{ngA^5&R3tDrS}&29|*}O!PX4 z-GV5eDSUcVNu^L9Phuz=eVh3JxGMoW`qLxqjQ@JL8~Xq&17^-Oga0@G`TI{Yc%CFY zD3z174*B1|{p*MY>W^eTO%<@ua*@h8R+Y7tYk>wo9KIs@C+n>r$U?CzW8t?(Oqhm1@ix6r*voHA7HhS*ZEp2O-fCm3!qwcx&p_qM%A12`m+g#Oq%pjgJ?N{;h0$vn zh`;QavBK=pu&!^VmY&Az$rzVef=jU>Z1r6RnWxq0;((mahPo=UBB>7IidR*ZKM0OF zb(63a8jA5tM^wLkKVrkLnG4JIGdk8P4c6?|shy{^oIeLWEk~X>2>@D@P!HLNSdw|V z(AXdkM_rcLh})|%*$G2>B7M=3UfH2j4axIN=+u`)Ne{)otvFsJZ&0;t2p{iylG%J^g-oYs;F?mw;aqoam8fX&~3hYXP zGGM#6f2!1PHDf*_VM4F1agrmL;~eR#s^$Hrtw0yNGh0c^I)Qn#5+yq-DJ98W>meQc z!gh6{yk4qk-s#J!c}U0VgSgUp+VGc4`NU^Lbl;mwufP0n$SN+M`#(bqGFT{e?@XM-&Mn^jdiVh5NKj;rcKWKqxy+QbDJma2`>Fkb zuWWjV;cjsvTQ=pwkjK|+#YG%JttQDuO-AjItMnO6lKSWA4Dmy+7u8yEapIp=7=_Jh z)g0Qsp0b>!-nCBY4f3U~?am`cJX%cCQIrYUQ*kt(#2@6`>sZO|&Pq7gPku#Dj{H2% zO4zN!I}t@0dVWVfU|9_YmtulN-0QJm%~W);CE5|+(^|7+n;nwK+8n5{OErRyJH~x#IN2dnd$P0)!w8&sbkCvkm=`lYOh%Kj=^m|ICqxHEXS3l@1lb#ZV8)X9#Ez4+# zM=`Xm_>J4IS25O0kKlFtSqWE`xXZVq4Ftyc`WIMEH(ap;;Y9C_rs*S;q1XBQl{}6} zl*QBD@J>U1r7d$>b5H4d%K&(@Rd12zWlFIm7KP(ZXjbfUhR(jUl4ntydiO?gBLNfE z@L`*|_qC_Fw-429fG)M!Xd&=)@&$*d<4=(A8fiYueo3osEq~;j*m_=4rb5|2` ze&oM)y?7I>UXIbDA@Nc`R3m=!_tzy(sC&!6pjf$bDp`}XT+zmwGo*>#T|#}qQIaan z(+i{SAg+}**>U4d%2GW7iR%Hm-J{dX=3()aX{+9^1bK8Y=+vWP&O`R#v7q25bT5w= zEN6ohRPbkXjHM|nbu)6J!n zG>1Go&YULxVbW4DwEkR-?%~yg;4K0FpL(-|F#pPkj#-Dd!AlLQPEu!iV5eJ4jia6S zx92sa{>Q}ngx#jqpWN9LZ+?(x-SI{xLxL0Qrvsdl9^4KJ3it{tFtNJ1ui_gOggkb? zjfxY{O)_k4k}$wzyIAMAP@&Y!Z>`j*Nv@$t2Tu65b26b`;w;ay>r;5b8*7?0#p`>N zVJcX!D}Yaq=-ea13{kEwUkBOgsi#s2MYQqaxg8E+HBuLIMjT=BuKWaS=$pL#XsDo@ zgexzdIL`QQ@P#QUvl8NzsXI%f@;pdgHB|J~rMMdNrDUwxgCz;L9t5O&`69^6;_dfh zklIiSIV^iNJA+Bwh%yak#eCzGN!3BK?{96+e)2m%Qh{8WmtkL6H!EuIS86pN-Qx?3 zpk702;7r&N#h2amv7>XM=6N2vZ#Uv~NgkCDmixJ!a?hM^FGHRT2#WIJNly_X;v^Mk%2pv&(aonTOmtrSStpzPk6Rs*?xj|KRAZ3Suf&c zlJkZdv{0w`R-uq)nhq~!apwr?m0@M%O6z~|>6gyJciEcQe{9+x7?JIn%rJ&8XpgCL zTP`%FjWq8l$&QjzHn#?BB5MgDc-$-Vr=-hS52P_Cs0VS~*;JD{gbq7d?kB$eK4FL-V30YY&z6bRABn;v1*Yniz-6zK2ozW@e8SJjaYSzI*stTA(xVt-e2DW%)KgsaZDvzwacedaFe>NP@p|ph<81E-;Ds=@V3dKQ^FxI9H%Z-f}uF?Yf;AI9hEYe^cLO;)nzo)tU(I zP2|g;iVI$y1CvhZe9Ewjn@)kDvd1P@zIV4-SJ{W|+HmjQ?FhPK(*J>^|7TALr6P67 zJbFt@i_EB1Qy>~jMUlNspRRy*+PeTF&IW8>zeYsBSCsp};2O9WV81(%E>6k`xJcZu zF}NYDrImEs{2q4p4?BYrxMB)eQ>Il))UxnaQJ*|Goo9_GR>s&?mf-YqwqVHA<%)x+ z%-`;DVCO?hg}}EsuE-{OdTF}*`FHjnrzV$|m$AvLrTQ-m028){GU)=uf(uJ%>C>c> z)9v++Kfn75-W)}cn3zyxT2+UV-tM*ElC!b@@Gf$5-nH{V5ppDyJc?}pP=1baRWEpl zU3zl3%x@jvgfK;G9Utye&_>nc7HZ(Aqh;U1Ma9NA4%cF{C<6guZ~YFA56aeO@R zISa)DrnUaoLzkNvceT|zdpgTn##||di;D7fRT(IkI@pjPpK{L2dWs9jc%$kvH3ffG z-iuvYIxhK=&&fk-b-?nmjdpDvQZPOJVA+OQoS*G?=C2P@`Xg)m=JRlbb91xs2lIQT zcd+ZFZ6JUigq&%Z=6&j$?}qC8!;Pqab`{@5D|}Ja{_S^Z1*#xJR_g&kQVavS5(IKd@B_9fPeTza> zxv*=NU8k+3p(9JCYCb(#R9cwN0w7wDSAuU9jpdS56U(L$I^WfL7k4R%Fx?~V4*HTQ zvJi_%3@@$%FeHFA?uvPIbcC{)RamFJII9Q9D>E{mLH74?QG{;6Y$IKMXacTaULiyj z0!NvkbKJ7tdR|oGYPr+?XdaI4jOh8*jYfLgpAsKWdwXvL>_1S~*rWyZGy8ah-32|5 zt0Jl2EstF+XiNKCtQiWlfh-001a-c03f|qJ$q=&%@w;_Cxveyx5b$jBgdP>mjpS3g zu~@5+g7uFXr>tk0gM*TW66!mw(-41X z3c**wlI`n{xF!$j1uwuS0NhpDyjae#Qyn%eyNN!QbRl?LjH)**2x(6%{pNXwFj3N72|NW?L%-u#OrzWE#dG)dPLP4rsMhy^x3UAZ8sPTeOYn6=XC z!Gb3o{=wlHjw{ux3I5fwv*B|ryvLiCkLw19Aif&QBg**=v4o{#XrZn%U{xaJ8U$MW2(@I2kYaY|VV` zNt+&ChS5#Q?*^yq2_t@D zeB>#R;}_#p_P)u zT{nzy@_94r`pa$|mpfXGW~X*8D#m^jY9YMRC11A?jyshJ_?k(sFDviEtFdue0KEV7 z;e#s+nl86Qranm3eGcL+HppWVm7G50ihWx)_}KJlK()`qW=Wm}-a8T%@(e(*cjD<8 zj<;Xnu6Oy~8G=>CSQ%~(Kzd!mwGsN!wm`7K)$uGPeQsU;u4K%H>D}x>>wA{4@>a}T z=v0W|sd$gmqZ-p4^;*NT;p<()$tqFVV5zssNt9>%swT*z3U>lWEJA3m9bW~>8Z2V@ zdN!)DGK`Z20(@ra1-VV`ZUa|VtATTv<=i!x58r^_oyyF(DCb({JgBlJXHZB=Mg= ze}?0qY>#9)IR=D=_8l&V3Y>RlY>#+rzyn84SpEq6TpppYJ}iQdMz(cUS5%;n@d{*% zpx^q53(A3~Ex8D>F0$#tBfSGGo@v;@H zQ&8sK9SRt|H*;rk2%YkRdm!EqJLk3T`igPp;{C^B<8Hi=U#pef#jh3Dl>of^q~PZ6 zyj>jdFZ?xYvWpiVAM^<+T=kxXsFxeE(ejj$1E#UL_DcC(cZ50Aj2_3ecFRktFM$`%dPFSNp{kMP< zlj%~+C5un|RsfzJQYz9UX{@}Q+*A0kF}om5-#>h4PITzi09IDLWpTbu&)JUX6o=D9 zeC0A0FOd!BEJai-YW^@}{zB1F+?L^hoHbzn!h2)k)q z8s<&}q=5&@9aa64+b(8|N>_8gn?+4HsnyCQB>I!BL=CBW^?@_LeBe7IP#sXx0A>ur zTBz@yt$b*t=?Rt&*f+$>o~ z(-S=bDT{yW`bzlj6HQNK)C=ib@8g_IKLBD-4(|KX^AFLyPd9SadW+YqVHYWgt!V+u zPo?8jZqMq2fG250_Ousqh=anqdO!8GF>(>sM)npMMl-qVqFslOC36j{tB0gHqqsCb zw9R?Hxo;<|lB_kW%BMRb%%x!8vU_$C?&?JH^SJLiD;rWd%gW&ZNz&}-=U*`=;>Hss z5q2cz)@x02Uz!jLi)~k^aif2Y5VxYCdBCNCyaQS*o+1;^o;t>-w`Y!^&nN8Ya8S!H zDh_G3@^M+^d-IYyDbaM&YSC7rba_|(=Iy#tEPD%63&B-o9o=TivZ`WnGXAiQg9}hD zX8HUG+q41bXWTvN@g4{bxHwL>%8Co$UdCvDIZ23hcgIw>-;dM1;5zo;^l*tFUdB`M zHrGQ_;AVwTykpC0rAHhT0+cjm)8FC}x)60_!*4{1PFB6})>;FgEQU)`iZagbm{iN| zOlhvL=L|ZRsWh7<$~*=O+^~r~d3DrYWGiDAydWO>k{tQGfjS0ZpePf7A+#$?n&H?@ zNOOB?22@CQ(^&6RvD?nk2d0K_x?P*n{ro3v-rt3+VJyH)X{he@f_|mh^4OCK5+lV0 z8ALH9qtY|Iyd2S?DJrMW)!`)E@R-ir9uf>T3>}IhAm7-XR=Bv+SExJl`i)K%T?VOA zju6MrEV9OJ?oOZG7*{nrk+!Tb9EwVhF05SGZ4|0SUoa&~iM{qxhPV*#9b|Jy-)?v#deR^&lXy?-UdHmA? zgKX`g7I}5$z+Oe=>7VOUSX`u+Vqw30rol@KVoW=Xr{u4`4CKg<#0ur%UD(NS+7WN!D=)p4+BNmj) zt=b<{ytrcQEri`p6vBD&?${j^kH^*zeOyb#nV83|lLE8QNX0+o?xhS(+R;S4zeT<* zzhVB|tVV1BjUDMmX-94&*;?7g%0_2mEV#L>B%#pb!x^pt^?4jG7^+^6Inb()h`w>5 zex`rjPI`Nz0WT;A9SnCya@mhpCh2955PKc-0sM;Kvq;x5Y%Vsf*EYM{_b7beVj2Uy z9MYk_4prX`JM3)t7LeK$q?(V|5S?QLDthU7p zXv_VE3iO~S*9u%~=l50TO%SSaoluLHS`N?;LzjMZgLK3E;jP1SsfzP&dq%AF8IXgq zyUu{sgsgE1CDX$nkB)j92O;7-y6*yANt+aTYPEDQ-vp1@xdi})>+Qv?z?0x^7V*h5 zr$S=3{07}7**n%*aTBLSb7o^oq(aV@RFpc7DkNCJr;IwTLPS_h!4v_)ZXO#fIHZSF z*JLuE$O;6W7SEYLd~R9pgd#OVdl-kKdsRIB1$8R)iIgd;v&gAB_4b|4NtizACxD;F z1fak85~inq#UmfozCiQdr7AXmi&lDJ??{b8CRYZNDK#b4M|cba`Rkx_^d#m`GYC$SuuNi zxKzUev))Ly?2CAOA`9I}eRXsuK8j`ev3DNoAEOPeB-i=aW16Lh+HXviBW_!DQhfr7 zZA;h%1d+3+z{itNZPx>ArqGlLBErJWwA$VxuBtd<7iMGk65-Xho&A8x8R2e8e!6)D z16w^6yRD}F8&o`^3KyJVHhg*?BRRt4omy2cQo12X`L{PgmAr-qYRE%~_koxoO{nv( zMY)sE<}Be4u^vSV=(Ij%U)W>#0}LdH1M0gd7A>>de}FY_X@EW}A;h-2`VX<+R0Fuj za+Dl_Y-s-;zl>%)PIzFY&^a`$^nW$2e^&@IJ^~%%xr(0T*4)4E0!`<4D4e{~ ze_z1!{c_(g?j*1|i~Hk+_&%B8e*JuZZ**yYl!sauawW&ew(kySt0A<1E+xvcpTu4T zy*+3VKnm#0N;qA2ZP1n5#y2}^NHv{&J4Dl?M0hyHBHq0%-ped`q}Qw@n_O!Z_wg`4 zZzu^wMcO{WuF{z}i)+_u!!gtJ#KnT0)So4exqqn+=(%irNd{N%AUm_`w-2JzanT_A z7E78m>)li&qoY0%V^LGWWvCx1ffsqJf^|yWL(UB^G560rnp1VFK{&%?B?JX;tyP#~ z5Jj>WP4cK-4R3L1se6*(C7I+BbZf)~V9j%4^mY|`ZQIZFTa7Z%i$UU@ai9a-`A$DR zkpQi~a2yM7hJ?mcCl6VU9mt)niAl&pYpM1uOlgFha3lW|r~87(sRC+zv#I2d08|gv z*WTN9b!U#*_>cophTGHb*ZN!bVBZZPooS|3{K2)#dF3?_F+G^6UDP@*(adtwY)t1K zn56D7cJ)5+ST<+0uji5^GUQ%#PRKv81^P_ENrzxdlj)PQHlzd8e4rURSn_&Kh7>pf$8&6Zp#u!1|Zd zEy-@2 zUR{5ebOV`p+Vv{XO^_kY@64RT`P^cRbFIkB8e)f^%&p?{88!-5BHy*2^j7*#GOf@^ zpufW~ej-=PR?;&~(^F{h`6-K(Xqf8EI(z0WRQ-!)=s`%5%hS|KqCBrcT{hUNGHS<< zF^kW;5xGlWAop zxzww*?K)q8?r>VWQ8Wz*k}-VIY3ye=d0Sm!w)I*OOx#W!%qG9{b!D2LzOC5yDyLFH z@^s}hG8_|NIl5mT*=e-8rB}{ENy~cJs*OO2X2=Pbzcy4^d9T*p?kQWl5$cOSqPVW! zDK74o-8Lm}$&p(t&I8NgN-9@Xfghi+s z&Jl))v6x8;w7_O?T(<+{S!~AMD}uj1Bxd=zprCWT1yHYKodZv-;?a8gd{YfO7>1!8 z3)E$pnyN08sVZ~V)9tSh`Dc%4-7e7Irn>UhE!(n5P1~TeQv+?$NRC}gO9FP>Ow3tb zb;f)-HJ4n_$CHGRdmh=`P?GQXkai`sE@(9Y)xl(Kd(Xx8XW*an6gQ>kA9^XdGBMJ^Db$6gP=WCn2n_oGve?W@gY@NU^uIcr^8t_@; zonFDV2h$CQO{xsPf77$FJD)W9`6Y0CyvJ#+k2mJqqq-o!p)qvmZmw46 zgwc`vB0`ykq=M7#A}gc-Bfm+Juvqc1Nu}&c^KfBypDAmWl;yz5nFUB-EH<=^bvVHGjeZbPcA)HvD<(TmCb7N?Hy%ixqsLr+>!}Rxir;llO zvw(8yeS#vKu7`w!lWnxm<0iAbL?dX6es@^cZ;&EKkvfhC8{ZQ(-ehA7;myQKF*B=R zke-5@mpIjAJO;QaST>5J7BCiv`@229SAOTGw9-nm-q(A|7700TrDTP+rot+B=lT28 zx2&SZ>oj?iKzSd=IOi2fUPua$wt8VvToTb-pJ4&t)&9l1xBduXG|NmrvJJd1-qYAH zf4=5?cE0v$%YTJtxf(SyyXr)Tp8NR$Xi>4w>SafF)tWy!H(?ow`q{k7?c^gu!Ka_A z&YzXVwN66mFpPQLYb@*|7FNL`NF z#g;&V;&O;azuy1D-g|~MwY6Kr7OaRURY62Wid5-Hx6pg<1VKXYCA5ILRiq0@FQM1a zdngg5NbfBHqV&*0FQMdH@hN9NXS=_1uIv5r{(1jlTv?fOt~uvD?lH%>ms~GA+!1-#8tf}xj*O4S*d%Sqg!#+5%^Y{-FaU&lm=A+a~&NN8P|Zy{8^7ov=yCrCPhuJE-ze3IQ}d3U(?cyukACH=vP z-nJNg0TKi!RM{+Ot-S3>yy4Tpec8|@&VD_KI%ook3x@;?OQ<1->CuZQV%$&`4fM`^z6dOy43`7NCyI$e{2NlfyI zpQJu_oT4gCeh6zdyg31k%og=6RASAr@Rn_&vS#N`UxPz*P z|7=i2bj2XaV{K^H&+r|YlobU{-0W{-p0cVF<&B6E=vTA9e&huYT#*_wbZD0&wdhJ@})D(*LhKE zyM>ogQt)m`w^7g{xU2Z?;wzTf`Aa;lpwmqS3Bhf)inx{&m|xeEeh7NhbD%;RqajQL zGsXV|Gw*+anWg$E)1xj+FYO-Op^{LLxh&aosFbnLEyB@vdwZ0(Je6C!Q{YTDz(?&c zp5AZbumr%&a<361cl-tqkyEK*WVFJxTG;O40}D60ITH-PhUdVNe%>+Nj(&3vWfLVA zJ===n$Z7T)MLCw|#>Ua6R7i~gqNFRU1O@m&~V^% zDA-)~+S11>vma&_+NX6PWsFp6`kMDPQvg=|Q>+tG7AWV{q?}(j$xK{jVhz4MSje^BgugZ^dT0Wlcu+64n-g-$e5b#-Rz8ImMO#MV>oc>r-7n5DB1xdq zt|{#HnRB(r#Dx%!3McJT`FwM)g0)OfCMQ>&a6z~whUr|1^#FwHZD+8D^!j<$5Okyun)Wio#G7NQ`4v69iQNx^4@>aEBo{gYA^q6}!$Q?axOc4d zYH@76H<#&fZ0HlAk3*x$A>UeRlZo|yF@gF!)IKl4z_T51mE)7V`GrOUX%Ix*xZqbd z2G!tUY)3?2#BURF?W@4nrqKM0WB9j(=TDhAaEr%h>Fk&~Pk;Y?;L{j@6VTP%IQuuO z1KSNd;DR>P$8xE^MJCw*F%d)M_qXt;B@wuwOekZO{O^85{SiP4FkfK&+g6sb02ln9 z4u$?p9rGeU$qAc0rucl&^)krjqw4_=r}>;#t1X1gwD4H6zImkymC@Iu|x0i^HcB(cS-^P|E ztA1t>VFTp1?NcI@Ket>zGj_zZzY+otKqAbZz5%Eci}~K(XYlyC!9g=`iT;ylsi!@Dq157h1{*n57j(73)llG z&vp?_Fw9xTM{z%rsV+p!#~$ zvP_-i($))=Qn)~Us%1>xErYE#SJ{OE%lYQ3UEDv$k2E;1e~(Tm<$IZrwW6A}zSc#} z_i>;d#VL}EpL{V|?c?y_#Rz$XL{8O7>)fq8^n&wJb>~=ywWi+UWVT&o7qvH6Y+=ag zVEo*>k1)yo;YIQ&isEI%tkJ7B_3mQbJr9b64Um8cpwDHc{N0I+=UdI;4_V4b_wK3k z={jnsv@20Yi?(Unh0uXAZ!yqb53=Btn`?X~lGjW6-l4*;!-wbcrC}L9YF75$DdpiS zxm$9SHh%xPc+7M~TsB)sgkT6wHe)E*U;vo7wxQpT~0 z-==Z+{Lbv3+Uj-hh4c2~EcLTEAwgB95igVNA3PXN)hQ35{h-1Zx`G<{bD57ec;Xm_ z#HadX1}{XUZ&VRv4trxV79J-1O8G&#Wv464q@|hfk}w}83ja{40Nd`nw=qdg1LNOM|Z`h4?%*(1u6Bj~>^gzN$vo)7u;~MF^@Kx#43fd4f%zuoIM7JR* z;|Zk8e7LnO^hhY(s~PhHv=znHHg)L!kl;gi6+}4SS;Ix$+7glcuJ%;#UI1PO44z*9`2zHCIdx=wx9ta*#OT591AZ3gBS+!-`Yi*TZhYOGxa6a%F&xqXvLJd>MzXF zJ0x{srA6+9pKixvGS>y4=w*^U<_~GmWsohweN6C&Djj8_wc})Jv?g^&)G5DNBi+dX zD{CmPwVu0w(hf6%CMmQ;$Ho5fL`0*Ho+Vc?b44DcC}3{)`u;1ylK96_LH7x(EAM3t;1ForYTAHC74ZzBbMP=i_JeXW%SEjBD^Ym z;CuPr2ylo!dvL(9D;%2b8#QdecY{s0jlW08p}cg zfDDNrEwRq^DF?6WCXTt;ub5#CD-KNAZ-m+#T%Tb#IkuzI)@NSFz zqq#Ac>IaU-+sB0%Igwj8TD?TCUz~Kg4EF{B{+2CwhO;EWHxBmrT|)O;A}`OcJ)hW{ z2ZYzy4>jlsB26-X2}l$HDWkxr>cG)OP_JeLWdM>!ljA-^UJf6(b6@=pGQN86DvJyy0`@0tITo-}jUFx+W%GQBhs)%q z3|}PG^Z%7?=iSGji&Q<+bl73oeQ2Ko$e?_&BuhKOaj14dg?<%U@|LCaM_vaoSV72? zzry8zMfqhyM~dt41xNmhr&ZQ_t42yAb;YaCCN?D3Rs_!C$B~lHP19GwL62%uLq?xq zWi7IuO2^$EW7xpzeWM4OJ-7~jn&5>`r=Q}9QeAhhX-zj{P1Usllmr1MN69O#PVLdLECBI9g zf92G`$u(Q<-zUly#6)?uzue;Q5@jF@PX2p-zZ=Nq>44Yeg=_pa)d%{Z{Mz;U-)6|X z96*NLeVt28_V2p*_-yBszt7R(uQ|ZJG|w5jdgY%1UK5Q7J}p2G*HfWIRMlsBm6+5x zR9qu@eqSTGeeG@6{4ayZO9T1PZ9qL%TRG?DqCC6vg5fQY|NL^qoP6A_+pQ6ObOmsR ze9#NiNv;hDV_&e1?KoBq33aM~Q*9cb{5x;zy*gqS`BVR&?w7K`Fy7mR!!KY{r<_$RL1Vb3 zW5?uR=>+>?7FO9&9NrdO&T=puKWyoeCGdv7Ff;E;_;8M=gq)9($a!YKXdu~Byx6(^ zu@os!GpoD({U=2Y#~>Rkr`lVCYn&n!gROur;8A&DLA+%p-{X+vE|Ch+?>*u!ZQxj8 zSNoe}ih_ErT!G@qLUc6V164>yqh%D?mHfl)Z0uXDCHaDBHj?K8(IrkV# z5GQ`g?PR%Fe9?0I?PAQbdI*ZoE-~S421SB_uIyBgn8cZ)#GLdrc_CdN=;-2;LGRp} zl87GB-iNZVTiLggX#uvC8=tI+fUU|>ZySZhR1)%oY)v#;C%Y*CzYbEU`wlhOCxDYU z|L76{pLce;N8(8l{aJ|-&Xi4Fwsdv<6z7E2TlT3sgb?YGHuhJrJA^ouw&MsJ8uar! znzVsCNm4X*XL{yzJxuuTT>a`QvVyqnfglvXe|ij%=Hs#Ed1npsskO<#@%of-oX5Me*3 z&<}Ydxj(Au(k*ClG~wX0Ju5g9PtUy+F=Dj$b7D?$W7Xs@G3-m={dN`I#(=_Fo3z2B(Er9>y$z#aRXt(VdJvo>wU_5J4v}??UrpV} z7t=}=jK}CjU<04m$#_{b+jelTilXd`_>O8*6FeM}-v5M({c?W807>EJOO}vKkZ1-g z#V~_*U&A9%$ZDBrLEADQvNPPD^5@iNNy2QJ(zZoBX}ycq!K~lB>0uZ5{v}lON7Z3r z>7rQ^+d}s#!$6&mg|ZIVQqbO0KcNTyls^vf{PY9q#gBLs%9vvg%(IDbYQXSqm?xOg z?#*_(b>ZE0C~NTM&H>}>~^Dt%m z!(@pomi5S|W+Ui~TS`+2iH~O@HcI>%Eiqg)07~Nr!IXxlN*F?U27^WYlNH7G83aWg zjRTq=9e5ty_eib4iWr59uelo@oV?GS*)FLuKm0J25#L+H=K?0E#%G)2#P$HU^0k$r zyHhC3S!_ax`h$i)2s8W$G~`Id_qkA@`}1Nt;C-Dk*~{W)F?l8kO^0|7+lk9oWJ{q2 z%XiEI>9iEEdC78YiwO3iY5jMa$kibl+Eo7sgIW|DpXoq00~Xo1i>bU$*#a$h3suCf z&;HSh3AS)Vyt*d|+GL0=!7vA7)26qRi>8knb~|kC(M5b^0Eqf{(p^1g9r+^h` zxjrF}@?UzAgPRASFR!_QGsi~kG^b-eVD2bgGP0k7zMvYCVHR^g=f1~kmreFCC!qUq853tt~D_@tbfs?@s^9i3p$DvdO*YNYAr8|jG7Pmr6WmADRs%p6sU zG#`v;vo)XYSV{>+8hhlUumMK0(JTEt$O&$LCcV4Y0AKfEi15oHRlv;LTSSirOyJ0D zg{lgjK>=o7&h?Nz#7wg3cvGLfKN`&5%p*9&_!3UWe^PjEneQxq&uXQG@r{%c^BJ8^ zIs3eJ+sQoBagTd_Yzv5OwKARp`F8eym_PClB>;&+BYHM=P&y&y%!#}S718?Pva)j3 zXANl1M3q@}#fP35?ZH}Zz;9th`we;Q5$Ri7`33N07ti&;9Yn@q3|q*DNXW~(!2 zC**!KO2`#PxBpdbsQC%ydc$%*ENML& z*?Apo7qHHWDQBpe^ekG>*S(ju8>q5SYX+*@wD981t5jce8`Nu=3>&lB9%^``Yp_a7 zX)dPP4f85$8iI2tuJqSPft*+yAM$>~SN@>~ePM_wUUo3`+*4RSeu!aPNHlyrL~G@7 zP8(KIqPzGkiqDuiYy}vo>91tpIX;_&4xA{dBl)^s!FMinLIZnxnM*WiqlM{!Dn|U3 zz@x8n%!R6QyGT{Z*@>Mk;IS^odzL(WaU%Nh6=0VMM?7k6;pCmx!*#m{R^29Abl-en z`_i{9*rH(t`#U|IG*M4??|hHr-|6Y@13@2kLoNlH^C#B+Pk&0EzX`|>-dq!?SNMHc zCpLn_`uQD?y@bEh)4d=H3;Ft2S^kE7r^_G;3tfgMtp4VdLEr{aSomGKBI$3C4S=lx zVd4M(Kp2x{!H`Rio_29$T~QwCT7}B>=151b0YKnK^*JT-)fhc0m*MNrQZ^ReUeXA3 z&`Wk%Lu1uTKwXe9^POs=#aACK2BT-!7UJVQ>f2732f>! zvmUH2c-ka|eR7`maEt-8|5(%=uEeZh1UgIOmH$ee;oWP1G@GJf!`p-?VnZaW3J4`* zP;g61O8%0m(?p?_NkrNA{2X>N>~Vh8k@55yzO zY@@RmQs6wSmEqmEX%oYHxh}zZ1QmK#^saJ`-`yGwg59_7%(iUqkU|55A&{VzhbX^2nCv)?! zpsLpwQtqZbwS{N7JrI0!9WP?Wr?*>X02prdZQlxa#r8QVF(i3l^A`3?CCfboeWpv= z3p8xsG6Xd6aFq`uGJ^9Hy5=7*2RI}$l=S^F5lC}h)o1_7+~w73j+@9er0&;JfsMyg zrQCA6)fR6L^9V3ZQ?#Jgw8+L-3iLm#7{7ad(BAv ziY;y@7fyIft>}$C7q4xayeB_7wSU;=>--Hg{Y$TO~tT)Z+F@k zq)%)#t+~v5L&Lg1?Ab(YW*!9-3(vGq?FJ+M$TO~-xa4#zef{y~FSh`o%97xBxmLaY zq1v3qifLa+0X#or zq1eFYMpSe6DyPRKojb*XeDsCg*Xfg>wXY~o4~x42JzE>0{^*$o(k?@Dpds+4{zlJ5)Ucj&nc>9&`2{@bTT|sX`fE9lrV(3Cu|e z%%P|JlMeXXpe$;S8Ic&krW5C~5!csL1t2wdLoe*9(&pD> z%lM;tSq)_vcaQUS$)#C;!N5`bDc0b_o;=fA14v3+lzjo8nEp2~9{fIzu~vK7=^w`` zcK>h=ya1d7!yTq?^0MnLL{cW41d_J$%4A1Iu&+tz-#cYxD-`UlKiy8C$1Zuc<#-9WX2^?Ic8-hhEg4MHg&*_~H}H{EJ@0GLP< z?WN55bPpr5n%^+V%$!i^b>k#1ZMQPMA!pk+d(1f$E9?79VZK(TBx=`<+aPyrjBslQ~x9F=e(nTC~ds=0G z_?5d87f6C%96ha5eE7a={;0HuPLq+AM<`UI{!wpC`{x&uGxXddY~lF=U1+B8pv3pC zkismN7F@0K{IdA>VL0a&N^HH_F72&kuM!A1Fttd3$4+AX`wF`-$e-K$A za*=YHH8JDY&peEysT%!Ps#>!M_{pcBd;CEIi?Aw7&mVb{$`J}CG!nW#VX;&J_pAwt zoRs@%bR1Al;h+I0nyc3qAUkay(T7kGoo{fatD6+Z>Kq;Z>9==r{q(qJI*Nn^eB%a)LjH5(~l|(!~ zxAAX#fYE>21K{z3J<5{)xpsN7UH0F~G@lP=KG)hjU^x)??79S-qyZ2_kk3H63{(9y zQ5!9S)TbIM_I@bahclBG`o^z0`*XXt6*@q+i7>Iw$G_Z4Ed6Y-zsCZ0tnU+a7;XA$ zKw^A8rY&sw{g#=0<$U)rNy{MsDHdJQy>$x!*Pcijl+r~x85PK#n=*N^r(E*|vDDmR z^5}*0J^&xx9xMnP^iTF88d+AJ{8SbhOblu3Oc)s`UR;CnPBH`rn;ZA2R<5*?*PZ=o zmO!*Bl64g>9Bd^0aw<}i1H5$RE&c1YhN+z4WyX=a_0`=o7ePG2N)G1s3*GiidqwNP zPZA!@09EHe9zT`_S&Z%ght$2Wi#yiu0meOJp~g1Kc8p$diDYMO^cj`gv!pi9#xB{^ zchUyxRM9c1B(O2&^^j@n22qGL>U*~`NbKxglZn^K+gYhlduEen zOqGxlNm3$OoRB=bR5s|s!h2m%pS3ck5BGibA|B%O{+fs6y+`(VB7{IgoqkIb!e&^ePkyfxJ!P2(1>+}R+c=YH0Qg6FDL zsez#p*c`h^ROD7+#0mr|IOL`hK^9SE_&{@cMPDWsH=ck&)p3Vc4Y({oh}(z<^A|Dc z6-Cop5LDA0vrSrRHUZXn*Tlb`qjYfwvfmW^ALs5r$CN2qZ~nQE>iyI930e6TB62X+4Bg4lJrE`7L9Ly zlFdEz^HT3N`9~KX)dJM&7?P1*Z`!cizV1|FR#<8Rxd5(*dZviHBsh@9L0wpsS?B8S zcl~(cA3!U~#{_kvyEIvWFWDr)Ii7E_q#QvD(Y=tJwSMC%lEZJm6iOixt@wk!JhG ze$MHxJnJtW#e1*wtVh%{dKLEc@p7 zd|JN@wYOD@sRktk5IoWy5Dt}cJEzOv4>q<++LFg$Y?Uf~61~B9jn?ULDOENC-O0Mv zNs@u5ETa3MI`)d`Ba@i0xvAp*Q(8zySs(Itd-xq4uNq|i+>cwkaaJ={1hJfcp(&t< zgeF07D~`M+PfAM5I%!Ra;GXQg6z(#owjP>mny77^l(~Omzgl;KFFWELYpcZalRCI< zDu8nm1TT-lBbV*~TH$(O{`$hO?r>3D@3C>3{F@I>b+XC+8ygQ4 zXnhlR4C)tM###f1z*MMx8P?TEP}p8}W(mhSg&qVk~(Zpl{hdEp7>=J z^hgSNnXP*6R1pWc>b-$z?};8ms;M%`(_4F>o+}jE^Un&SNo@%{rkFMW9c)M3oY0G`>zo% zkoLWD`E_+%!z{&L8gt{Gy4%^a{fU%f|JlfY-gk}p-WinXR=CoC>%*_R_FN#5wo_d_ z^SkE!51m{Z{-h!(6@32K=v-gZmS@BEY2~vceVaPTGCX@%n?>I#Qw~(TuwTfoM2PJo z*%Ebt_i+px>W+|!)%;SqcJ2XssDxHjR&j@s{#sBzV^3%<$iHwy$jGVIw&97lqO#Za z$ul(PRHL1J*)+QbO-0zKF)x145TQOnYn9<`P_uFRIbs$Y$3i{5rfXoLk|-`{>b>3g z4DF6XF@LahFh4HDwHV=4xhi{tyY|8bKXB4UNbJihCrMTSO)5edb4ry$#5Y+idNdGVUuvt|v!!iR(VH+)ASi5f-_4ZY&9TI$d;AJ7WWC{8 zAm(9Vp`(F`gt3kZS;tX(t|`16YPGf#BOF|XD>e~p2O1>-tHLQF_+N&rg1G2BmYj+I0%D}|DTs>Mn@Yuqz+kba} zy?TOs0eS%LP7rA77fKO@ggM$dF}h9ri7qq|B7i|!uh(=p@ctwIr1KlE6aLcsYHaxo zV!-duVII(jWPZ?a@5SoDE$& z21k3oLo?X{4Mx^Uy#@)@6R)frHc)f%@hNK539%~}j?vqqY;BSRu%Aeg{*fs(=1tk4 zD|EJ*6%;n%wm|bl*}h>xvCKW9_)zG*(07V#w+<{nSkE$65;o-RF2`TE!z9zyR68Ug z!d+N6(Ynl@60v8D@SP5z?rAUG4QvTDaNF|Kc2CmQiuUL$_Y(QxkE#CFDtsQSBXnUB<=HeAMPox2S=$J13TtVM=MoIED=^` z^Slp(?0i74mPaalb@%FcEf$g=bZqnRNW@`jD#|H~4KAoHiJyckR^c2@0a_WG3JM3YqSxt!J+nD>$DVUn)H zk>hvNetT;tCb9?NZoobmab@l1HTmX!@miB@gzfj`g2dB8qwbz_OZiS*d{xCzo)};* z>g-}9%6*ojE?m#8QaCCuGQcYKQJb^Yb zwnNgc0z+5PhccHs$Vyp&RZW~Nu)*Z>sKWYW(2(q6&5c*!J#V8|1v?llf5y@i6}uiy zj82$=fAVTYwFJIl$G~X(1hgwwlZa46zgpBB85u#MAoRmJwwMwB(Huevqs~YGqz{i{ z2R==x+P8AROKCcQv_Bve*Rce@6?}%l`%59(c${tbASB+s7)7&IFCl3c;-@SB{PmeP zhF9J5=X=+VFtqZlvx`&C0mqw>w4`hHeQTo;naI?xl8wB~^??b`0P zpNea4q4p6`1`2{Nj?$%vA%Y48b{0Cf zms5efxoAqry>2_o1$?LNnWaJyw}|7uJkun~N3rN$*t*1SlButG=Q z+J2!fE2cbuk9GgeAviR`|KR;Iv>(=OrDgNTfgU4<3;&9Ahiw(DS>zUt21`WLH#w)x z6b$Y4%1-ZnED1l5N%zZs0Z9#z4(*bq(zV-L!9;{{IB|iijR~onNw8IrTg8-Qy=rnP zq56GSlL%!FO&kUGI=CK91p+M z)*iv%&cEZ<)~a?_)v5+mq9>0y#7bASI!R|vi7z8y73dY zmDYgNosi?eo(Go@0GxRcc5Qn5U?t>X-_YdV5P_EG)WS8{x!H--X}ezOdN`V}<8F*! zLDHadtRfs;_WPO`771IY1wG*sgqo40u-dYXh}^jFaSnPLqm+p!m?`GL@11+`gG+rD za^dWLOWJywr(4R$s{!p)D3%kpRD8*BlibN+!ZWme&0+3r_j5=$x?k%;3CR;5OkZ0n zx`grQ)#7`ZlK$F*ES`4uuKlh)DN;*LCHEEYqxQn+=?II{`r3)cgb5ReSDrKPkv)AE zfX%ul4Re`TTL!n za>un^Y9)kub8{cepMNjZ(dN_w)w`3rZ<0^W!3X^pFk$ldga}=&9A8?&`8%u}^!=o_ z1Pkj}?&UY17fUwa15S3og{UhKXZ_%n+Dq2h0_``yK_oZwE?<7F`>^4+@IVxR2ZK8K z=WhNEJKS_8?+2YR{0p&& zCIcI1GrRZBfZQxlA~yUsKX|UWFNl)0t=47Me098x*LCju5>S`1SwcbfcksjLN-arK z+Rl6&DD{#QP&;<~mY}Wnq{o;^*&fQSJz7oj_Wl$E)Z8fl`)^;p{F$>k--vnvrK7gA|F}qI8;eki;~qc;5aPukj(!`>mwHCMfhYAB zR49E!>UCN3jc6W;wD10Uqx5p6{a}_tY?r<6RA7{BeF*+{v&24?6=vo`n>UYD)U@up$B?q|-h(VXBv%h^J1s+xr&`^eqKHA+rIk5ZFY)0 zx26)&YRSQa5tdBGyC|nf7PjtkaTznCSr{zvp%Yw1re+3<*`lpKooqHfi~$95`<7O-U(XWdN$ zdnr}*wNq_A6?4KENW?V5wMNHv^{XK}*oi%<%e~65s(hYK(-7q@_da|^lg_9P z?(P5+x_H#1%5{`Bn;@qpS&%{Kt@ef}ZuX(v5Bu3UcDnimJIzLY6V}VjNB2Z6VM-1X z*=`NCE6a_K7~AFegHx2UDai86i#5eesyp|lc*H;kqDP^si%~L2gKM35+y`&6&E89l z)L|lnKo95T25_OHPSN(VRsrN5i&r-7+(@3NZVH))*UPVez<>6ptb% zAy`=g0qHLFu-vxK*v>cV{cefVL`b8_aR%at#Yv5DpzPY_ zxJAT>iofOOzfMo-1QKzQd})Wh)d_wzLEpW%aWDH4w)?uc*ln(^s#5&!?kIU6<2keQ z<<0qRZLM5xuZZr>^0VhJQjJGH{O$V72D){2P0@M#WFG^%w+mE`j^{BNr~E-X{^i_n z@2^a}|87BHabm8|@n(Bcw*TRLoCQ!(j@N4gVA5LGw3B{%{bt3cod>p4n!I;h)#DE? zlF?BCXA9cmz~&HUH0j#Kb$HBOzdBgkeeEv`9T*h`xiqckLLSMh?vu&K_%UQSaXI35 zu#{-WdWVLSJ@jV(b8;EnbmQy?ddH8JaVFKXVAI~;Z0VfoK(45xecU6Axie<$rs4;5 z;7}Jkcu>(R%AsrIP{qFY;L-0|-~eQNhS@s}-rF;~W1v2{w>}#hFQPd7hboJScdUGYE>0m8#eD~4`-mK1^Kyz(hGB6yng2vuu*#40ifPMqwhY= zQ0{x|Q*B_c3cx+4`lQ--vY@AEtN88EbDqp=XIV9H0D&u5!g_@mh*EnoG?vg z^RY&4F6|7oC-_~Xd$=k`$jF@Kn{ESjy>lab-bIJvoT$JlU{<)S6xFmHY|dH$n|Rr` z>tZc00~u&c5F)McLRp>16(c+RRqNY{;KNY<-j7!(Sz6ZXad$z7oqCDIe4ul0s;wb1 z0B)XIXrWXy&RbIR--^};CMzvs`YLe@t*zc%q=O3Vq$}wl-)Ueq`GnD;)q;lx}dP^|kh6oT&xA#8bYdJqoj|UbZPw`|<$P>>B zzG1|aPIMgj_IA!XNx|B7!HGCLhg=Ms6-`GV7dYuAY{elbKV6_)?$!MuWssKWpEC+I z9ZHtm_;NmMZ3C#3t}&#upma}t#ZylOw!f4aAyi$pGa*I5DDgCEpL3BRvLoIXG8$yG z%ByL<`@8h1k(7gE>A^jTF^s2sXs5ooqRK%p%d4(ytR6OfAY-dd1zBh~fxbI#NLr46EyHw>3MW$MC?2^cC)HmnKSb?grV2&U|Dt4-*{yzBuGyuNjb- zLqtc1g#n%S)g7d?x+F{Ttv%;uU+LLYdZ8n8u-#+1(p+d0iu{~DB`n5!F=dBhg4(HU z$`j4CQ3I6kUtBr)6&x6}fDO%JRB39So&F?p(R)Zm*x{PL?$tj<4tr)`T zzMucmT8)!&EO-z=bREwPVJFu8wd=l^BU69Szzzz)iEZ;-J-~8{-Fs;Oy{wI1*UV>M zV@jzNN@2$_de23+wPGbz$t4fWj%R3*A04VESZHVt;P&b&Vnz0|RgxFj9e8#PRB{yq z_S@*4T9Ti*(dmtpPw6DZwJ9g$i@i}afxH6%3TE9s0N3ZYz~6I63zU!(2lB6*aCKTX zN*ml0eFoEuRNlYUBkQ*y1qRnt=X35EK6nERXN&flw~^<(dT~7v;bPdbnbHP z^OGp8F+naYILUzqt9KBqdKpN&1O!duObnBGy12voKpcdu$jk|5&GUwG1Icbbobk$n1>kOjQGfq**Mv5Wxo$G+c1tRdKsTkD^&?D|wriR^> z?>(4^iyPZVGrD*p2CE`{uJkltAbTJ^XX~=|P~R}3PpM$y8(-#D%bGh!HYra-srb0! zAY14LG@vPYJ+MBRq3N!3T zt)9|Pb$4nN*aco$;bLH!Q@#pdr4r79<*L}DVs<8qnj~r8%6d-@_<6{!Hv)VjVY&)h zd#~TM`BllmDoYy#z@5tZB&do$rOZ?yB#(Yi&ANjmoZy(I2tv>WM)&@w*?hY37cS6@ z_EpNjAR{_@tyv1uGpiMSy-q2WX6u}f3Z;Fk>lM%JL@9CG%&BC4k_)4w)-(0C^usEF zY>gd15HW#h>TBQEo(-apRKf@6<*`rsZSbf2NDSNt82D{71oUl8s9l>lffrFuqo&ueBILQk<2P0f3vr~U7mZl9Y}F* z=O()<-aTGL1Iy6|n>_%$!vlZjbC)hDCmi-@5Js&~Q5p&b^0mW{eeNrXzz7Ar?BL|d zC;n7R-Eu+U0=eZ$2?1YnEZL5g+$8Sq{(ZP1H7N;jU#f|wM=P+IN5m!+EN*?*d%`lV^|n>=O#nWa`W^fXjPyTqOUnP4Li4;5m=|3EQ;4h2{X!rDkg0kI zh>yeU3YP~k#4l2dx8%va#8ykcWk7J#W%%X7cEK^@Xv{@Ulj|_qFG)n$mNpCI$expk z{FP*rfRkMpv_nm6uG9%u9vRgul^y*-plV0S#?pYf=NQes47IH9^iRww;VjIuLG=2a zkXBmN7Y0Z$TNiz)v>BQKaFOS!dKMLl3g}~^YRqZQAVI)H&p=mU$lb(lfi@;?bahCG zK`)JI$J-`raoQKhfH_%*%&G<8wUUAOw>cok*h(I7@GYE_)rt`NB?F(J7@&*AB;JLW z!=rMrhzHx0tg4~zhex08Kc86v5qu(5vK|EyXH(8QC9aX<6}RQ{5TFC%9YEk87RdJ| z;-V$9bL(eO&Fop%CTeXnPn7F-a*W*^!evP9B zcLI9HIq}k6FSAYR(NxjT#MT?`dFMOyBtPM2ghB=tSOpQpmroq}A;=wkE)O*wt;3__&mA?%MrLb{DR02Fz5lB&FrX($pWVY$^Ec*imbU(M-zSKQyyau zWp`qtXFH>xC9(Jb?8kOZk@q=2RB7yyW1`wNkX%^TE0K>YW~yp_k_dZ-MOE2Z+-F~N ztecOuGX{V7l0h=4Wd^{mJ$<{Psu|!>+k|wW3#O<$ltOM-madZo?|D}piz}~5ntVvU ziziYSvfmULMJ?Jwi4=zW`edC;N&=piZLn{+yswZ%6y}e|$_H$#VFTan)Br&E>g(PJ zt#%x`eu^1EHQ9h`Ix=7CPcQ2cLJJHjLtPVrw-t@q*ZpEo`pZZXBYxuay`z&vsYLKg znX>@&407_Dr7!D~JmRb*0RT9-$+0`0w`VYmwJn!N8#|X_<6K~nA=8jQ-$d(TU5Hj7 zc6UN)&0@O2o0vBVb~(&Lvrhz!uw-v&NZNn|AveX-@KpNU&OF?zFO@3`znEcIQ*XOf z-mh$^A$(5er~#N{A$=%%rv_f+rCEyziP7#NzH{u*a8iGv%={x^A}n9t_CM?bwGl)3 zh12VzOKFq)Mi{(qQ?aXp>r^I(wEH{HxPtp9&Z)BLcl{539(unTDp1%5Y8Lp&|8p-c zCho;WNrsp@bwC z!GVr?*sq{X(-J-7T=nX##(_b)9h2Li<13U6+V$OCrmkN{*r92^-ds_=ccLEM&wM2_eh z&6k`$3Y4xoQ7*zaQ0wa7M-r?MbG29yrU~k{w38T{+vlcrLhAn6Gwz`tkYMV2&&M!L z1@0BsuiLgjw>nrYc9sSXBhrA3$?3m#a-|<)rYXag;VdeNRKy|NZph`4#&+PiRIu2f zLU_4i7X3#?mzJA{OZil*%5nXT0BVk0pZct7%E8*pwPvBwWm|`nVL;=nsfloL5&-9> zhuNL`lWuCO008_&1x`UQDN>cQ-$irN! zGm2`DRJ8y=SLK}`1)Cm=kgkH7a!HXRw^ML0=q}*vF(=%f)830jCSxEVW#L4yo*-i0>ECKdcO2=sAK5f^?bhQofxWBG z065JD?5?q8y6ALe?6hzUtFI)`=*UyU#2hu)bnO8!Uwh=jk^wmG@{LS*u4{;`07f`o zjP(CWfaDmiA7MJ;9B50V?NBCk)KPC?m+m-Aiy!>>;}8VA(`z;_GraTsR)}!mp04hj z&XbTK=ye>Da7q(ma69s|?&vSnN5gOT(&TbwPG8~3;!6ZBW1OV0FG!NI|TCws)QvL&SVEs(uG1k4~}kaI|HoC;m0L+LOsy-eYqIFN3KKcf8{Co8^9TQgin;xU-$!{MTYl(+?OwsuDJ47cH!)~ z-TMIf!MOV{?!OZc#EUDR0oyLMwa{-#VM!pKuVkjqMg5Mo&;|IQ>T^9Tzq{*jAh7zO z!_mgSBj5Y40u+mG+Qhrx-SvOyCU9_nRUqkKZ2O;S7(7v!+(A9CnhS58tBRY)rTp~`{u*{*WR^5S~D}e zmeibvqSm3Q87h??O>Npxy7}0=l3LW$#Y|l(Sz5rPNONGfE$30FqqNgVXOP#Wk;*OS zB`-}3^?ZJ^l0DD_xriLpZ8TiXU??2>=xUwx%C26pDpW%3{AGBRhpER z-cgtZMh5dri@z?KW=j?uIF+tlsD+}*o(8+kua)BpbxM;oS(& z4DfTb(Sgys84(E!+W)+;GQw&@JPeT1jDn&lDu$46Rr^Q|mPlSjCEp{O-*KQq2*j+` z8*QR{QB7#Lpq8@s8E$U8xXfRQ%&bW&vF$7QJ&|+7zTdVCRM|j%FLc2}A7_7~Xf(NT z_b)NRU7{?EJkv6q9M5epIsD;plO^MFH-Uv)S6Zx<@%0T~`7W@+Rc(|Fy{_v4Cb$)` znWBJ}Dw``pd#X8Dkdz2}L2P;pW)jFFl9--cw>)H!Rc8`PI0rqLJCl#_)$$cs@($el z-|r*rB@CY4bIvC39C%24iZ~-;+C1q4MNk9jf=<#SA&aVq?4~DKCw`1V9yBC$ehGF3cFDf8{HKT!sLj6 zp4j%)S>gLZf#A`E*)!1BO)R%x-Lv$@zBll0B}RA$k$olRzf_Ua!}`1}17ZIv6mUdi z64^M&bJ^EZyWGW@0g_FJ+U_7L0*BM5b+R!Ck8-9}GOI68mru%pz*;!jL*8(>R|xO=07q;h!t>*kg)n=^}6b;Nj> z=#&X%8;YQdmOTwono?kXsoC+cGbO_7KdzDUry;(CbBtDg8{O3vLQCzS+#2s3%qq$^ z%j~_l9qn?F=+g+z+*7bE^Co@IdDv$8L!w!H$8^-Oe)^zuBy}2^P;Fu>r8iFI69D>f z!u?)_jk<@Xl)(#&YZtuPB?RHUF*!xEN4Tpt*oz7kj3~zO{Am(t2pgzcs^DDO#= zU8w7rGBw+Ja=lBCn9d!cUj;S4#??~w+MkZ;Gza6Z814yQH@TcVolA3|HpD!c12s7%i?HBmj>0Vv{ zCBT-=pliEd(hAz>9kxwA&UL4kx)(=OJsk>k@nhoIl{Lfu{Pl)Tl2e6V6e`GFC0vGE zLe$=4{XZnaT?>ILHUHH;b+mvA6+rNG(Dn^w5K8rW8{I$&$*9gwFLD1yZpTZgzBjyI z{mZ?C%)W@k$+1>N0>F_1`32kizPz#e(ERhoA4&=!zaFt+)qP>}w2+_uG@eRq%$B6$0%Wia>>*#}#B^kx(*cPV-H$ifJ? z#Ft|gN!l z)oWkRo9i`JPTVX{)r`N*9my$92kJbs*7DFDnp9DG=X<-4^*bmAP+uC#E1hxXX|BeH z9y}*JzbV4Ig#V;0%?WoDf&77h@Wl?T{r zqvfUVrU3=S6I7b!4lKS{FA91ZTNvCwIKzt{o4;(P4=Ok0~gXpkLPajmx{8a=#E z4o+Td6U#?^>SBm=1k9)WP2E_}_2sVDK>&FE@6aeHl;iI+zwBlIyjx+q<-o?m}VGt`d$~!5oq6(+C5W9is0Wxtn^9Hl@LsFl-Qa zQ%dPo!cr$ol@%-S*6X^nKZ68jS(I;q<){vf=pMa;Mf&_w>393T4q2)FW~_RY>V<7? zN5)ul=twY2wZ_krIvN(AO`1ruZUX((JtSyU!kilQm4y4uwmok(q5y^7^4FRw z!Q8#5N{mifpS|^PxOMR!?#aLVeT>xxw-@SP1gWV9;?G#p1EB{(rvU3yW0t_{Q$wE` q`qa?#2tA?F>PJEUcOZtQ=RE#Sw9(vm=)3_u{QkLf8_##&$^QZCDWH7- diff --git a/man/geom_pictogram.Rd b/man/geom_pictogram.Rd deleted file mode 100644 index 7cf0fd3..0000000 --- a/man/geom_pictogram.Rd +++ /dev/null @@ -1,90 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/geom-pictogram.R, R/stat-pictogram.R -\docType{data} -\name{geom_pictogram} -\alias{geom_pictogram} -\alias{GeomPictogram} -\alias{stat_pictogram} -\alias{StatPictogram} -\title{Isotype pictogram "waffle" charts} -\format{An object of class \code{GeomPictogram} (inherits from \code{Geom}, \code{ggproto}, \code{gg}) of length 8.} -\usage{ -geom_pictogram(mapping = NULL, data = NULL, n_rows = 10, - flip = FALSE, make_proportional = FALSE, fa_key = NA, - na.rm = TRUE, show.legend = NA, inherit.aes = TRUE, ...) - -GeomPictogram - -stat_pictogram(mapping = NULL, data = NULL, n_rows = 10, - make_proportional = FALSE, na.rm = NA, show.legend = NA, - fa_key = NA, inherit.aes = TRUE, ...) - -StatPictogram -} -\arguments{ -\item{mapping}{Set of aesthetic mappings created by \code{aes()} or -\code{aes_()}. If specified and \code{inherit.aes = TRUE} (the -default), it is combined with the default mapping at the top level of the -plot. You must supply \code{mapping} if there is no plot mapping.} - -\item{data}{The data to be displayed in this layer. There are three -options: - -If \code{NULL}, the default, the data is inherited from the plot -data as specified in the call to \code{ggplot()}. - -A \code{data.frame}, or other object, will override the plot -data. All objects will be fortified to produce a data frame. See -\code{fortify()} for which variables will be created. - -A \code{function} will be called with a single argument, -the plot data. The return value must be a \code{data.frame.}, and -will be used as the layer data.} - -\item{n_rows}{how many rows should there be in the waffle chart? default is 10} - -\item{flip}{If \code{TRUE}, flip x and y coords. n_rows then becomes n_cols. -Useful to achieve waffle column chart effect. Defaults is \code{FALSE}.} - -\item{make_proportional}{compute proportions from the raw values? (i.e. each -value \code{n} will be replaced with \code{n}/\code{sum(n)}); default is \code{FALSE}.} - -\item{na.rm}{If \code{FALSE}, the default, missing values are removed with -a warning. If \code{TRUE}, missing values are silently removed.} - -\item{show.legend}{logical. Should this layer be included in the legends? -\code{NA}, the default, includes if any aesthetics are mapped. -\code{FALSE} never includes, and \code{TRUE} always includes. -It can also be a named logical vector to finely select the aesthetics to -display.} - -\item{inherit.aes}{If \code{FALSE}, overrides the default aesthetics, -rather than combining with them. This is most useful for helper functions -that define both data and aesthetics and shouldn't inherit behaviour from -the default plot specification, e.g. \code{borders()}.} - -\item{...}{other arguments passed on to \code{layer()}. These are -often aesthetics, used to set an aesthetic to a fixed value, like -\code{color = "red"} or \code{size = 3}. They may also be parameters -to the paired geom/stat.} -} -\description{ -There are two special/critical \code{aes()} mappings: -\itemize{ -\item \code{colour} (so the geom knows which column to map the country names/abbrevs to) -\item \code{values} (which column you're mapping the filling for the squares with) -} -} -\examples{ -data.frame( - parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), - values = c(10, 20, 30, 6, 14, 40, 30, 20, 10), - fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) -) -> xdf - -ggplot(xdf, aes(fill = parts, values = values)) + - geom_pictogram() + - facet_wrap(~fct) + - coord_equal() -} -\keyword{datasets} diff --git a/man/geom_waffle.Rd b/man/geom_waffle.Rd index 2f29fa9..a5f06b5 100644 --- a/man/geom_waffle.Rd +++ b/man/geom_waffle.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/geom-waffle.R, R/stat-waffle.R +% Please edit documentation in R/sw2.R \docType{data} \name{geom_waffle} \alias{geom_waffle} @@ -7,16 +7,18 @@ \alias{stat_waffle} \alias{StatWaffle} \title{Waffle (Square pie chart) Geom} -\format{An object of class \code{GeomWaffle} (inherits from \code{Geom}, \code{ggproto}, \code{gg}) of length 7.} +\format{An object of class \code{GeomWaffle} (inherits from \code{GeomRtile}, \code{GeomRrect}, \code{Geom}, \code{ggproto}, \code{gg}) of length 5.} \usage{ -geom_waffle(mapping = NULL, data = NULL, n_rows = 10, flip = FALSE, - make_proportional = FALSE, na.rm = TRUE, show.legend = NA, - inherit.aes = TRUE, ...) +geom_waffle(mapping = NULL, data = NULL, n_rows = 10, + make_proportional = FALSE, na.rm = NA, show.legend = NA, + flip = FALSE, radius = grid::unit(0, "npc"), inherit.aes = TRUE, + ...) GeomWaffle -stat_waffle(mapping = NULL, data = NULL, n_rows = 10, - make_proportional = FALSE, na.rm = NA, show.legend = NA, +stat_waffle(mapping = NULL, data = NULL, geom = "blank", + n_rows = 10, make_proportional = FALSE, flip = FALSE, + radius = grid::unit(0, "npc"), na.rm = NA, show.legend = NA, inherit.aes = TRUE, ...) StatWaffle @@ -43,9 +45,6 @@ will be used as the layer data.} \item{n_rows}{how many rows should there be in the waffle chart? default is 10} -\item{flip}{If \code{TRUE}, flip x and y coords. n_rows then becomes n_cols. -Useful to achieve waffle column chart effect. Defaults is \code{FALSE}.} - \item{make_proportional}{compute proportions from the raw values? (i.e. each value \code{n} will be replaced with \code{n}/\code{sum(n)}); default is \code{FALSE}.} @@ -58,6 +57,11 @@ a warning. If \code{TRUE}, missing values are silently removed.} It can also be a named logical vector to finely select the aesthetics to display.} +\item{flip}{If \code{TRUE}, flip x and y coords. n_rows then becomes n_cols. +Useful to achieve waffle column chart effect. Defaults is \code{FALSE}.} + +\item{radius}{radius} + \item{inherit.aes}{If \code{FALSE}, overrides the default aesthetics, rather than combining with them. This is most useful for helper functions that define both data and aesthetics and shouldn't inherit behaviour from @@ -78,13 +82,12 @@ There are two special/critical \code{aes()} mappings: \examples{ data.frame( parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), - values = c(10, 20, 30, 6, 14, 40, 30, 20, 10), + vals = c(10, 20, 30, 6, 14, 40, 30, 20, 10), fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) ) -> xdf -ggplot(xdf, aes(fill = parts, values = values)) + +ggplot(xdf, aes(fill = parts, values = vals)) + geom_waffle() + - facet_wrap(~fct) + - coord_equal() + facet_wrap(~fct) } \keyword{datasets} diff --git a/vignettes/.gitignore b/vignettes/.gitignore new file mode 100644 index 0000000..097b241 --- /dev/null +++ b/vignettes/.gitignore @@ -0,0 +1,2 @@ +*.html +*.R diff --git a/vignettes/building-waffle-charts.Rmd b/vignettes/building-waffle-charts.Rmd new file mode 100644 index 0000000..f73513c --- /dev/null +++ b/vignettes/building-waffle-charts.Rmd @@ -0,0 +1,332 @@ +--- +title: "Building Waffle Charts" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Building Waffle Charts} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set( + echo = TRUE, message = FALSE, warning = FALSE, + fig.width = 8, fig.height = 6, out.width = "100%" +) +``` + +```{r libs} +library(hrbrthemes) +library(waffle) +library(ggplot2) +library(dplyr) +``` + +### Our example data + +```{r data} +three_states <- sample(state.name, 3) + +data.frame( + states = factor(rep(three_states, 3), levels = three_states), + vals = c(10, 20, 30, 6, 14, 40, 30, 20, 10), + col = rep(c("blue", "black", "red"), 3), + fct = c(rep("Thing 1", 3), rep("Thing 2", 3), rep("Thing 3", 3)) +) -> xdf + +xdf +``` + +### Single waffle setup + +We'll use this as a base for some of the examples to enable focusing on tweaking the contents of `geom_waffle()`: + +```{r base} +xdf %>% + count(states, wt = vals) %>% + ggplot(aes(fill = states, values = n)) + + expand_limits(x=c(0,0), y=c(0,0)) + + coord_equal() + + labs(fill = NULL, colour = NULL) + + theme_ipsum_rc(grid="") + + theme_enhance_waffle() -> waf +``` + +### Plain waffles + +```{r plain} +waf + + geom_waffle( + n_rows = 20, size = 0.33, colour = "white", flip = TRUE + ) +``` + +### Proportional waffles + +This likely should be the default. Waffles work best when they are square (makes it easier to compare parts to whole which is the purpose of the chart). You could do this normalization prior to passing data into `geom_waffle()` or let it do it for you with the `make_proportional` parameter. + +```{r prop} +waf + + geom_waffle( + n_rows = 10, size = 0.33, colour = "white", flip = TRUE, + make_proportional = TRUE + ) +``` + +### Thicker lines + +Need to be careful as this can shift perception to the background grid vs the data encoding you're trying to present. + +```{r bigger-lines} +waf + + geom_waffle( + n_rows = 10, size = 3, colour = "white", + make_proportional = TRUE + ) +``` + +### Changing the line color + +You can use this to match any background you're going to use or to just provide a different aesthetic feel. Note that the same problem can occur here as in the "bigger lines" case and attention can be inadvertedly shifted to the grid lines vs the colored proportions. + +```{r color-change-1} +waf + + geom_waffle( + n_rows = 10, size = 0.33, colour = "black", + make_proportional = TRUE + ) +``` + +We can also "fill in the lines" but that pretty much makes it not a waffle chart: + +```{r color-change-2} +waf + + geom_waffle( + aes(colour = states), + n_rows = 10, size = 0.33, make_proportional = TRUE + ) +``` + +You can also map the `colour` aesthetic to a column which can help make a "highlight" effect, but that's going to also contribute to perception skew: + +```{r color-change-3} +waf + + geom_waffle( + aes(colour = states), + n_rows = 10, size = 0.45, make_proportional = TRUE + ) + + scale_colour_manual( + values = c(alpha("black", 1/3), "black", alpha("black", 1/3)) + ) +``` + +You can possibly correct for perception skew by shrinking the width and the height of each cell to make some room for the strokes: + +```{r color-change-4} +waf + + geom_waffle( + aes(colour = states), + n_rows = 10, size = 0.3, make_proportional = TRUE, + height = 0.9, width = 0.9 + ) + + scale_colour_manual( + values = c("white", "black", "white") + ) +``` + +You might be better off just changing the alpha value's though: + +```{r color-change-5} +waf + + geom_waffle( + n_rows = 10, size = 0.3, make_proportional = TRUE, + height = 0.9, width = 0.9 + ) + + scale_fill_manual( + values = c(alpha("#f8766d", 1/3), "#00ba38", alpha("#619cff", 1/3)) + ) +``` + +### Hip to not be square? + +To mix things up you can also round out the corners by specifying a `grid::unit()` value to the `radius` parameter. This isn't generally recommended as the goal is to enable quick mental perception for parts to whole and the rounded corners can delay and/or skew said interpretation. + +Here that is with and without proportional waffles: + +```{r round-one} +waf + + geom_waffle( + n_rows = 10, size = 0.5, colour = "white", + make_proportional = TRUE, + radius = unit(4, "pt") + ) +``` + +```{r round-two} +waf + + geom_waffle( + n_rows = 10, size = 0.5, colour = "white", + radius = unit(4, "pt") + ) +``` + +Also, think twice when changing the stroke color as it continues to contribute to perception skew. Consider shrinking the cells to add more space between them if you choose to do this: + +```{r round-three} +waf + + geom_waffle( + n_rows = 10, size = 1, colour = "black", + make_proportional = TRUE, + radius = unit(4, "pt"), + height = 0.8, width = 0.8 + ) +``` + +You can also use this for the same highlight effect as above: + +```{r round-four} +waf + + geom_waffle( + aes(colour = states), + n_rows = 10, size = 0.4, make_proportional = TRUE, + radius = unit(4, "pt"), + height = 0.9, width = 0.9 + ) + + scale_colour_manual( + values = c("black", "white", "white") + ) +``` + +```{r round-five} +waf + + geom_waffle( + n_rows = 10, size = 1, color = "white", make_proportional = TRUE, + radius = unit(4, "pt"), + height = 1, width = 1 + ) + + scale_fill_manual( + values = c("#f8766d", alpha("#00ba38", 1/3), alpha("#619cff", 1/3)) + ) +``` + +### Basic waffle bar chart + +You can make a bar-like chart with the waffles by using facet wrapping and hacking on strip spacing: + +```{r waffle-bar} +waf + + geom_waffle( + n_rows = 5, color = "white", show.legend = FALSE, flip = TRUE + ) + + facet_wrap(~states) + + theme(panel.spacing.x = unit(0, "npc")) + + theme(strip.text.x = element_text(hjust = 0.5)) +``` + +### Waffle buffet setup + +Since you now know we can use faceting, we can go all sorts of crazy. We'll do another setup for this waffle buffet: + +```{r waffle-buffet-setup} +xdf %>% + ggplot(aes(fill = states, values = vals)) + + expand_limits(x=c(0,0), y=c(0,0)) + + coord_equal() + + labs(fill = NULL, colour = NULL) + + theme_ipsum_rc(grid="") + + theme_enhance_waffle() -> buf +``` + +### Faceting using another variable + +If you have parts-of-a-whole groups you want to compare across observations you can facet on another variable + +```{r waffle-buffet} +buf + + geom_waffle( + color = "white", size = 0.33 + ) + + facet_wrap(~fct) + + theme(strip.text.x = element_text(hjust = 0.5)) +``` + +Again, waffles generally work better when they are square and each one sums to 100 and this is even more true in a buffet grid of waffles: + +```{r waffle-buffet-prop} +buf + + geom_waffle( + color = "white", size = 0.33, + make_proportional = TRUE, n_rows = 10 + ) + + facet_wrap(~fct) + + theme(legend.position = "bottom") + + theme(strip.text.x = element_text(hjust = 0.5)) +``` + +They can be rounded tiles as well: + +```{r waffle-buffet-round} +buf + + geom_waffle( + color = "white", size = 0.33, + make_proportional = TRUE, n_rows = 10, + radius = unit(2, "pt") + ) + + facet_wrap(~fct) + + theme(legend.position = "bottom") + + theme(strip.text.x = element_text(hjust = 0.5)) +``` + +And, you can do the highlight hack: + +```{r waffle-buffet-high} +buf + + geom_waffle( + color = "white", size = 0.33, + make_proportional = TRUE, n_rows = 10, + radius = unit(2, "pt") + ) + + facet_wrap(~fct) + + scale_fill_manual( + values = c("#f8766d", alpha("#00ba38", 1/3), alpha("#619cff", 1/3)) + ) + + theme(legend.position = "bottom") + + theme(strip.text.x = element_text(hjust = 0.5)) +``` + +If you aren't going to use proportional waffle buffet charts consider altering the aesthetics to make them waffle bars instead: + +```{r waffle-buffet-bars} +buf + + geom_waffle( + color = "white", size = 0.33, n_rows = 4, flip = TRUE + ) + + facet_wrap(~fct) + + theme(legend.position = "bottom") + + theme(strip.text.x = element_text(hjust = 0.5)) +``` + +### Over the top + +```{r over-the-top} +storms %>% + filter(year >= 2010) %>% + count(year, status) -> storms_df + +ggplot(storms_df, aes(fill = status, values = n)) + + geom_waffle(color = "white", size = .25, n_rows = 10, flip = TRUE) + + facet_wrap(~year, nrow = 1, strip.position = "bottom") + + scale_x_discrete() + + scale_y_continuous(labels = function(x) x * 10, # make this multiplyer the same as n_rows + expand = c(0,0)) + + ggthemes::scale_fill_tableau(name=NULL) + + coord_equal() + + labs( + title = "Faceted Waffle Bar Chart", + subtitle = "{dplyr} storms data", + x = "Year", + y = "Count" + ) + + theme_minimal(base_family = "Roboto Condensed") + + theme(panel.grid = element_blank(), axis.ticks.y = element_line()) + + guides(fill = guide_legend(reverse = TRUE)) +``` \ No newline at end of file