Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
dev = "ragg_png",
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library("ggplot2")
library("ggpattern")
## ----echo = FALSE-------------------------------------------------------------
x <- read.csv(textConnection("
x, y, id
0, 0, 1
1, 0, 1
1, 1, 1
0, 1, 1
0, 0, 2
2, 0, 2
2, 1, 2
0, 1, 2"))
knitr::kable(x, caption = "example data in 'polygon_df' format")
## ----eval = FALSE-------------------------------------------------------------
# options(ggpattern_array_funcs = list(your_pattern_name = your_pattern_function))
# options(ggpattern_geometry_funcs = list(your_pattern_name = your_pattern_function))
## -----------------------------------------------------------------------------
multicolor_stripe_pattern <- function(params, boundary_df, aspect_ratio,
legend = FALSE) {
args <- as.list(params)
args <- args[grep("^pattern_", names(args))]
args$pattern_colour <- strsplit(args$pattern_colour, ",")[[1]]
args$pattern_fill <- strsplit(args$pattern_fill, ",")[[1]]
args$pattern <- "stripe"
args$x <- boundary_df$x
args$y <- boundary_df$y
args$id <- boundary_df$id
args$prefix <- ""
do.call(gridpattern::patternGrob, args)
}
## -----------------------------------------------------------------------------
options(ggpattern_geometry_funcs = list(multicolor_stripe = multicolor_stripe_pattern))
## -----------------------------------------------------------------------------
df <- data.frame(trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2))
ggplot(df, aes(trt, outcome)) +
geom_col_pattern(aes(fill = trt), colour = 'black',
pattern = 'multicolor_stripe',
pattern_fill = "grey30,grey70,white,grey70",
pattern_density = 0.2,
pattern_spacing = 0.1) +
theme(legend.key.size = unit(1.2, 'cm'))
## -----------------------------------------------------------------------------
tiling3_pattern <- function(params, boundary_df, aspect_ratio, legend = FALSE) {
args <- as.list(params)
args <- args[grep("^pattern_", names(args))]
# hexagonal tiling using "regular_polygon" pattern
args$pattern <- "polygon_tiling"
# three-color tiling using `fill`, `pattern_fill` and their "average"
avg_col <- gridpattern::mean_col(params$fill, params$pattern_fill)
args$pattern_fill <- c(params$fill, avg_col, args$pattern_fill)
args$x <- boundary_df$x
args$y <- boundary_df$y
args$id <- boundary_df$id
args$prefix <- ""
do.call(gridpattern::patternGrob, args)
}
## -----------------------------------------------------------------------------
options(ggpattern_geometry_funcs = list(tiling3 = tiling3_pattern))
## -----------------------------------------------------------------------------
df <- data.frame(trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2))
ggplot(df, aes(trt, outcome)) +
geom_col_pattern(aes(fill = trt, pattern_type = trt),
pattern = 'tiling3',
pattern_angle = 45,
pattern_spacing = 0.15) +
scale_pattern_type_manual(values = c("hexagonal", "tetrakis_square", "rhombille")) +
theme(legend.key.size = unit(1.2, 'cm'))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.