ggthemes/ 0000755 0001762 0000144 00000000000 13466232153 012062 5 ustar ligges users ggthemes/inst/ 0000755 0001762 0000144 00000000000 13305327300 013026 5 ustar ligges users ggthemes/inst/examples/ 0000755 0001762 0000144 00000000000 13466077407 014666 5 ustar ligges users ggthemes/inst/examples/ex-circlefill_shape_pal.R 0000644 0001762 0000144 00000000341 13306022432 021522 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars, aes(x = mpg, y = hp, shape = factor(cyl))) +
geom_point()
p + scale_shape_tremmel()
p + scale_shape_circlefill()
p + scale_shape_cleveland()
p + scale_shape_cleveland(overlap = TRUE)
ggthemes/inst/examples/ex-theme_few.R 0000644 0001762 0000144 00000000545 13304446325 017360 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am)
p + theme_few() + scale_colour_few()
p + theme_few() + scale_colour_few("Light")
p + theme_few() + scale_colour_few("Dark")
ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, shape = factor(gear))) +
theme_few() +
scale_shape_few()
ggthemes/inst/examples/ex-tableau_seq_gradient_pal.R 0000644 0001762 0000144 00000000476 13304721201 022403 0 ustar ligges users library("scales")
x <- seq(0, 1, length = 25)
r <- sqrt(outer(x ^ 2, x ^ 2, "+"))
palettes <-
ggthemes_data[["tableau"]][["color-palettes"]][["ordered-sequential"]]
for (palname in names(palettes)) {
col <- tableau_seq_gradient_pal(palname)(seq(0, 1, length = 12))
image(r, col = col)
title(main = palname)
}
ggthemes/inst/examples/ex-scale_colour_ptol.R 0000644 0001762 0000144 00000000477 13300346645 021131 0 ustar ligges users library("ggplot2")
p2 <- ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(gear))) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
scale_color_ptol("cyl") +
theme_minimal() +
ggtitle("Cars")
ggplot(diamonds, aes(x = clarity, fill = cut)) +
geom_bar() +
scale_fill_ptol() +
theme_minimal()
ggthemes/inst/examples/ex-bank_slopes.R 0000644 0001762 0000144 00000000646 13273732341 017720 0 ustar ligges users library("ggplot2")
# Use the classic sunspot data from Cleveland's original paper
x <- seq_along(sunspot.year)
y <- as.numeric(sunspot.year)
# Without banking
m <- ggplot(data.frame(x = x, y = y), aes(x = x, y = y)) +
geom_line()
m
## Using the default method, Median Absolute Slope
ratio <- bank_slopes(x, y)
m + coord_fixed(ratio = ratio)
## Using culling
## Average Absolute Slope
bank_slopes(x, y, method = "as")
ggthemes/inst/examples/ex-tableau_color_pal.R 0000644 0001762 0000144 00000000361 13304720554 021057 0 ustar ligges users library("scales")
palettes <- ggthemes_data[["tableau"]][["color-palettes"]][["regular"]]
for (palname in names(palettes)) {
pal <- tableau_color_pal(palname)
max_n <- attr(pal, "max_n")
show_col(pal(max_n))
title(main = palname)
}
ggthemes/inst/examples/ex-tableau_div_gradient_pal.R 0000644 0001762 0000144 00000000456 13304721167 022406 0 ustar ligges users x <- seq(-1, 1, length = 100)
r <- sqrt(outer(x ^ 2, x ^ 2, "+"))
palettes <-
ggthemes_data[["tableau"]][["color-palettes"]][["ordered-diverging"]]
for (palname in names(palettes)) {
col <- tableau_div_gradient_pal(palname)(seq(0, 1, length = 12))
image(r, col = col)
title(main = palname)
}
ggthemes/inst/examples/ex-calc_pal.R 0000644 0001762 0000144 00000000054 13273732357 017156 0 ustar ligges users library("scales")
show_col(calc_pal()(12))
ggthemes/inst/examples/ex-theme_hc.R 0000644 0001762 0000144 00000002573 13305113422 017162 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) + geom_point(aes(x = wt, y = mpg,
colour = factor(gear))) + facet_wrap(~am)
p + theme_hc() + scale_colour_hc()
p + theme_hc(bgcolor = "darkunica") +
scale_colour_hc("darkunica")
dtemp <- data.frame(months = factor(rep(substr(month.name, 1, 3), 4),
levels = substr(month.name, 1, 3)),
city = rep(c("Tokyo", "New York", "Berlin", "London"),
each = 12),
temp = c(7.0, 6.9, 9.5, 14.5, 18.2, 21.5,
25.2, 26.5, 23.3, 18.3, 13.9, 9.6,
-0.2, 0.8, 5.7, 11.3, 17.0, 22.0,
24.8, 24.1, 20.1, 14.1, 8.6, 2.5,
-0.9, 0.6, 3.5, 8.4, 13.5, 17.0,
18.6, 17.9, 14.3, 9.0, 3.9, 1.0,
3.9, 4.2, 5.7, 8.5, 11.9, 15.2,
17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
ggplot(dtemp, aes(x = months, y = temp, group = city, color = city)) +
geom_line() +
geom_point(size = 1.1) +
ggtitle("Monthly Average Temperature") +
theme_hc() +
scale_colour_hc()
ggplot(dtemp, aes(x = months, y = temp, group = city, color = city)) +
geom_line() +
geom_point(size = 1.1) +
ggtitle("Monthly Average Temperature") +
theme_hc(bgcolor = "darkunica") +
scale_fill_hc("darkunica")
ggthemes/inst/examples/ex-few_shape_pal.R 0000644 0001762 0000144 00000000137 13306022432 020176 0 ustar ligges users \dontrun{
# need to set a font containing unicode values
show_shapes(few_shape_pal()(5))
}
ggthemes/inst/examples/ex-solarized_pal.R 0000644 0001762 0000144 00000000157 13273733055 020250 0 ustar ligges users library("scales")
show_col(solarized_pal()(2))
show_col(solarized_pal()(3))
show_col(solarized_pal("red")(4))
ggthemes/inst/examples/ex-theme_stata.R 0000644 0001762 0000144 00000001077 13314735234 017715 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~ am) +
labs(title = "Graphs by car type",
x = "Weight (lbs.)", y = "MPG")
# s2color
p + theme_stata() +
scale_colour_stata("s2color")
# s2mono
p + theme_stata(scheme = "s2mono") +
scale_colour_stata("mono")
# s1color
p + theme_stata(scheme = "s2color") +
scale_colour_stata("s1color")
# s1rcolor
p + theme_stata(scheme = "s1rcolor") +
scale_colour_stata("s1rcolor")
# s1mono
p + theme_stata(scheme = "s1mono") +
scale_colour_stata("mono")
ggthemes/inst/examples/ex-theme_excel_new.R 0000644 0001762 0000144 00000000257 13323451512 020543 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am)
p + theme_excel_new() + scale_colour_excel_new()
ggthemes/inst/examples/ex-scale_color_tableau.R 0000644 0001762 0000144 00000000631 13466077407 021405 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am) +
theme_igray()
palettes <- ggthemes_data[["tableau"]][["color-palettes"]][["regular"]]
for (palette in head(names(palettes), 3L)) {
print(p + scale_colour_tableau(palette) +
ggtitle(palette))
}
# the order of colour can be reversed
p + scale_color_tableau(direction = -1)
ggthemes/inst/examples/ex-theme_igray.R 0000644 0001762 0000144 00000000216 13273733350 017707 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am)
p + theme_igray()
ggthemes/inst/examples/ex-scale_shape_tremmel.R 0000644 0001762 0000144 00000000313 13304727505 021404 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars, aes(x = mpg, y = hp, shape = factor(cyl))) +
geom_point()
p + scale_shape_tremmel()
p + scale_shape_tremmel(alt = TRUE)
p + scale_shape_tremmel(overlap = TRUE)
ggthemes/inst/examples/ex-geom_tufteboxplot.R 0000644 0001762 0000144 00000001216 13300341373 021150 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars, aes(factor(cyl), mpg))
# with a point for the median and lines for whiskers
p + geom_tufteboxplot()
# with a line for the interquartile range and points for whiskers
p + geom_tufteboxplot(median.type = "line", whisker.type = "point", hoffset = 0)
# with a wide line for the interquartile range and lines for whiskers
p + geom_tufteboxplot(median.type = "line", hoffset = 0, width = 3)
# with an offset line for the interquartile range and lines for whiskers
p + geom_tufteboxplot(median.type = "line")
# combined with theme_tufte
p + geom_tufteboxplot() +
theme_tufte() +
theme(axis.ticks.x = element_blank())
ggthemes/inst/examples/ex-show_shapes.R 0000644 0001762 0000144 00000000132 13273733044 017732 0 ustar ligges users library("scales")
show_shapes(shape_pal()(5))
show_shapes(shape_pal()(3), labels = TRUE)
ggthemes/inst/examples/ex-excel_pal.R 0000644 0001762 0000144 00000000121 13323450341 017331 0 ustar ligges users library("scales")
show_col(excel_pal()(7))
show_col(excel_pal(line = FALSE)(7))
ggthemes/inst/examples/ex-canva_pal.R 0000644 0001762 0000144 00000001627 13466111604 017341 0 ustar ligges users require("ggplot2")
require("tibble")
if (require("purrr") && require("scales") && require("dplyr")) {
canva_df <- map2_df(
canva_palettes,
names(canva_palettes),
~ tibble(
colors = .x,
.id = seq_along(colors),
palette = .y
)
)
ggplot(canva_df, aes(
y = palette,
x = .id,
fill = colors
)) +
geom_raster() +
scale_fill_identity(guide = FALSE) +
theme_minimal() +
theme(panel.grid = element_blank(),
axis.text.x = element_blank()) +
labs(x = "", y = "")
show_col(canva_pal("Fresh and bright")(4))
show_col(canva_pal("Cool blues")(4))
show_col(canva_pal("Modern and crisp")(4))
}
ggthemes/inst/examples/ex-theme_wsj.R 0000644 0001762 0000144 00000000461 13273735213 017401 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am) +
ggtitle("Diamond Prices")
p + scale_colour_wsj("colors6", "") + theme_wsj()
# Use a gray background instead
p + scale_colour_wsj("colors6", "") + theme_wsj(color = "gray")
ggthemes/inst/examples/ex-palette_pander.R 0000644 0001762 0000144 00000000043 13273734250 020377 0 ustar ligges users \dontrun{
palette_pander(TRUE)
}
ggthemes/inst/examples/ex-few_pal.R 0000644 0001762 0000144 00000000145 13304437011 017016 0 ustar ligges users library("scales")
show_col(few_pal()(7))
show_col(few_pal("Dark")(7))
show_col(few_pal("Light")(7))
ggthemes/inst/examples/ex-scale_shape_stata.R 0000644 0001762 0000144 00000000245 13273732745 021066 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, shape = factor(gear))) +
facet_wrap(~am)
p + theme_stata() + scale_shape_stata()
ggthemes/inst/examples/ex-scale_solarized.R 0000644 0001762 0000144 00000000261 13300347224 020545 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am)
p + theme_solarized() +
scale_colour_solarized()
ggthemes/inst/examples/ex-scale_colour_gradient_tableau.R 0000644 0001762 0000144 00000000635 13317752667 023456 0 ustar ligges users library("ggplot2")
df <- data.frame(
x = runif(100),
y = runif(100),
z1 = rnorm(100),
z2 = abs(rnorm(100))
)
p <- ggplot(df, aes(x, y)) +
geom_point(aes(colour = z2)) +
theme_igray()
palettes <-
ggthemes_data[["tableau"]][["color-palettes"]][["ordered-sequential"]]
for (palette in head(names(palettes))) {
print(p + scale_colour_gradient_tableau(palette) +
ggtitle(palette))
}
ggthemes/inst/examples/ex-economist_pal.R 0000644 0001762 0000144 00000000150 13304557033 020240 0 ustar ligges users library("scales")
show_col(economist_pal()(6))
## fill palette
show_col(economist_pal(fill = TRUE)(6))
ggthemes/inst/examples/ex-theme_pander.R 0000644 0001762 0000144 00000000654 13466111463 020052 0 ustar ligges users require("ggplot2")
if (require("pander")) {
p <- ggplot(mtcars, aes(x = mpg, y = wt)) +
geom_point()
p + theme_pander()
panderOptions("graph.grid.color", "red")
p + theme_pander()
p <- ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
geom_point()
p + theme_pander() + scale_color_pander()
ggplot(mpg, aes(x = class, fill = drv)) +
geom_bar() +
scale_fill_pander() +
theme_pander()
}
ggthemes/inst/examples/ex-theme_clean.R 0000644 0001762 0000144 00000000270 13453127565 017663 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(gear))) +
geom_point() +
facet_wrap(~am) +
geom_smooth(method = "lm", se = FALSE) +
theme_clean()
p
ggthemes/inst/examples/ex-excel_new_pal.R 0000644 0001762 0000144 00000000170 13323450553 020213 0 ustar ligges users library("scales")
for (i in names(ggthemes::ggthemes_data$excel$palettes)) {
show_col(excel_new_pal(theme = i))(6)
}
ggthemes/inst/examples/ex-theme_solid.R 0000644 0001762 0000144 00000000276 13301722550 017704 0 ustar ligges users library("ggplot2")
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
theme_solid(fill = "white")
ggplot(mtcars, aes(wt, mpg)) +
geom_point(color = "white") +
theme_solid(fill = "black")
ggthemes/inst/examples/ex-show_linetypes.R 0000644 0001762 0000144 00000000146 13273735043 020471 0 ustar ligges users library("scales")
show_linetypes(linetype_pal()(3))
show_linetypes(linetype_pal()(3), labels = TRUE)
ggthemes/inst/examples/ex-scale_linetype_stata.R 0000644 0001762 0000144 00000000542 13466112332 021603 0 ustar ligges users require("ggplot2")
if (require("tidyr") && require("dplyr")) {
rescale01 <- function(x) {
(x - min(x)) / diff(range(x))
}
gather(economics, variable, value, -date) %>%
group_by(variable) %>%
mutate(value = rescale01(value)) %>%
ggplot(aes(x = date, y = value, linetype = variable)) +
geom_line() +
scale_linetype_stata()
}
ggthemes/inst/examples/ex-calc_shape_pal.R 0000644 0001762 0000144 00000000104 13306334760 020323 0 ustar ligges users library("ggplot2")
\dontrun{
show_shapes(calc_shape_pal()(13))
}
ggthemes/inst/examples/ex-stata_pal.R 0000644 0001762 0000144 00000000235 13273733063 017364 0 ustar ligges users library("scales")
show_col(stata_pal("s2color")(15))
show_col(stata_pal("s1rcolor")(15))
show_col(stata_pal("s1color")(15))
show_col(stata_pal("mono")(15))
ggthemes/inst/examples/ex-cleveland_shape_pal.R 0000644 0001762 0000144 00000000447 13273732414 021371 0 ustar ligges users ### (discrete).
library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, shape = factor(gear))) +
facet_wrap(~am) +
theme_bw()
# overlapping symbol palette
p + scale_shape_cleveland()
# non-overlapping symbol palette
p + scale_shape_cleveland(overlap = FALSE)
ggthemes/inst/examples/ex-theme_par.R 0000644 0001762 0000144 00000000403 13304701726 017351 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am)
p + theme_par()
# theme changes with respect to values of par
par(font = 2, col.lab = "red", fg = "white", bg = "black")
p + theme_par()
ggthemes/inst/examples/ex-scale_colour_excel_new.R 0000644 0001762 0000144 00000000250 13323450410 022100 0 ustar ligges users library("ggplot2")
ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(gear))) +
geom_point() +
ggtitle("Cars") +
theme_excel_new() +
scale_colour_excel_new()
ggthemes/inst/examples/ex-geom_rangeframe.R 0000644 0001762 0000144 00000000147 13273732530 020532 0 ustar ligges users library("ggplot2")
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
geom_rangeframe() +
theme_tufte()
ggthemes/inst/examples/ex-theme_calc.R 0000644 0001762 0000144 00000000470 13273733177 017507 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am) + theme_calc()
p + scale_color_calc()
q <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, shape = factor(gear))) +
facet_wrap(~am) +
theme_calc()
q + scale_shape_calc()
ggthemes/inst/examples/ex-theme_excel.R 0000644 0001762 0000144 00000000505 13323450261 017666 0 ustar ligges users library("ggplot2")
# Line and scatter plot colors
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am)
p + theme_excel() + scale_colour_excel()
# Bar plot (area/fill) colors
ggplot(mpg, aes(x = class, fill = drv)) +
geom_bar() +
scale_fill_excel() +
theme_excel()
ggthemes/inst/examples/ex-theme_tufte.R 0000644 0001762 0000144 00000000503 13300341106 017703 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point() +
scale_x_continuous(breaks = extended_range_breaks()(mtcars$wt)) +
scale_y_continuous(breaks = extended_range_breaks()(mtcars$mpg)) +
ggtitle("Cars")
p + geom_rangeframe() +
theme_tufte()
p + geom_rug() +
theme_tufte(ticks = FALSE)
ggthemes/inst/examples/ex-tableau_shape_pal.R 0000644 0001762 0000144 00000000141 13306022432 021025 0 ustar ligges users \dontrun{
# need to set a font containing these values
show_shapes(tableau_shape_pal()(5))
}
ggthemes/inst/examples/ex-gdocs_pal.R 0000644 0001762 0000144 00000000055 13273732514 017347 0 ustar ligges users library("scales")
show_col(gdocs_pal()(20))
ggthemes/inst/examples/ex-theme_gdocs.R 0000644 0001762 0000144 00000000240 13273733263 017673 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am)
p + theme_gdocs() + scale_color_gdocs()
ggthemes/inst/examples/ex-theme_solarized.R 0000644 0001762 0000144 00000000746 13304675267 020607 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear)))
# Light version with different main accent colors
for (accent in names(ggthemes::ggthemes_data[["solarized"]][["accents"]])) {
print(p + theme_solarized() +
scale_colour_solarized(accent))
}
# Dark version
p + theme_solarized(light = FALSE) +
scale_colour_solarized("blue")
# Alternative theme
p + theme_solarized_2(light = FALSE) +
scale_colour_solarized("blue")
ggthemes/inst/examples/ex-theme_fivethirtyeight.R 0000644 0001762 0000144 00000000344 13273732051 022011 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(gear))) +
geom_point() +
facet_wrap(~am) +
geom_smooth(method = "lm", se = FALSE) +
scale_color_fivethirtyeight() +
theme_fivethirtyeight()
p
ggthemes/inst/examples/ex-colorblind.R 0000644 0001762 0000144 00000000327 13273734624 017551 0 ustar ligges users library("ggplot2")
library("scales")
show_col(colorblind_pal()(8))
p <- ggplot(mtcars) + geom_point(aes(x = wt, y = mpg,
colour = factor(gear))) + facet_wrap(~am)
p + theme_igray() + scale_colour_colorblind()
ggthemes/inst/examples/ex-scale_colour_excel_classic.R 0000644 0001762 0000144 00000000410 13323450424 022733 0 ustar ligges users library("ggplot2")
ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(gear))) +
geom_point() +
ggtitle("Cars") +
theme_excel() +
scale_colour_excel()
ggplot(diamonds, aes(x = clarity, fill = cut)) +
geom_bar() +
scale_fill_excel() +
theme_excel()
ggthemes/inst/examples/ex-ptol_pal.R 0000644 0001762 0000144 00000000134 13273732615 017226 0 ustar ligges users library("scales")
show_col(ptol_pal()(6))
show_col(ptol_pal()(4))
show_col(ptol_pal()(12))
ggthemes/inst/examples/ex-scale_shape_tableau.R 0000644 0001762 0000144 00000000227 13273732752 021365 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, shape = factor(gear))) +
facet_wrap(~am)
p + scale_shape_tableau()
ggthemes/inst/examples/ex-theme_map.R 0000644 0001762 0000144 00000000514 13300345265 017345 0 ustar ligges users library("maps")
library("ggplot2")
us <- fortify(map_data("state"), region = "region")
gg <- ggplot() +
geom_map(data = us, map = us,
aes(x = long, y = lat, map_id = region, group = group),
fill = "white", color = "black", size = 0.25) +
coord_map("albers", lat0 = 39, lat1 = 45) +
theme_map()
gg
ggthemes/inst/examples/ex-scale_colour_gradient2_tableau.R 0000644 0001762 0000144 00000000760 13432557044 023525 0 ustar ligges users library("ggplot2")
df <- data.frame(
x = runif(100),
y = runif(100),
z1 = rnorm(100),
z2 = abs(rnorm(100))
)
p <- ggplot(df, aes(x, y)) + geom_point(aes(colour = z2))
palettes <-
ggthemes_data[["tableau"]][["color-palettes"]][["ordered-diverging"]]
for (palette in head(names(palettes))) {
print(p + scale_colour_gradient2_tableau(palette) +
ggtitle(palette))
}
# If you need to reverse a palette, use a transformation
p + scale_colour_gradient2_tableau(trans = "reverse")
ggthemes/inst/examples/ex-theme_base.R 0000644 0001762 0000144 00000000357 13300343463 017505 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) + geom_point(aes(x = wt, y = mpg,
colour = factor(gear))) + facet_wrap(~am)
p + theme_base()
# Change values of par
par(fg = "blue", bg = "gray", col.lab = "red", font.lab = 3)
p + theme_base()
ggthemes/inst/examples/ex-theme_economist.R 0000644 0001762 0000144 00000001572 13304445627 020604 0 ustar ligges users library("ggplot2")
p <- ggplot(mtcars) +
geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
facet_wrap(~am) +
# Economist puts x-axis labels on the right-hand side
scale_y_continuous(position = "right")
## Standard
p + theme_economist() +
scale_colour_economist()
# Change axis lines to vertical
p + theme_economist(horizontal = FALSE) +
scale_colour_economist() +
coord_flip()
## White panel/light gray background
p + theme_economist_white() +
scale_colour_economist()
## All white variant
p + theme_economist_white(gray_bg = FALSE) +
scale_colour_economist()
\dontrun{
## The Economist uses ITC Officina Sans
library("extrafont")
p + theme_economist(base_family="ITC Officina Sans") +
scale_colour_economist()
## Verdana is a widely available substitute
p + theme_economist(base_family="Verdana") +
scale_colour_economist()
}
ggthemes/inst/examples/ex-fivethirtyeight_pal.R 0000644 0001762 0000144 00000000066 13273732507 021472 0 ustar ligges users library("scales")
show_col(fivethirtyeight_pal()(3))
ggthemes/inst/WORDLIST 0000644 0001762 0000144 00000001441 13432645712 014233 0 ustar ligges users ACM
Agrawala
al
Analytics
AppVeyor
Argwala
Banff
Beamer
behaviour
Bembo
blosxom
bowerth
bugfix
Bugfix
calc
Calc
canva
Canva
cgi
charactger
CMD
colores
colour
Colour
continous
cran
daroczig
de
devtools
et
extrafont
fivethirtyeight
Fivethirtyeight
gdocs
geoms
Geoms
ggplot
github
Hanrahan
hc
Heer
hexa
Highcharts
http
https
impactful
Impactful
InfoVis
ITC
jbkunst
JS
Kliever
Lewandowsky
LibreOffic
lifecycle
linepattern
linetype
Linetype
linetypes
Lothar
lty
Maneesh
McGill
nd
Officina
paletas
paul
Pinterest
pkgdown
PolicyViz
ptoche
ptol
quartile
rcolor
rstudio
Saenz
SandyMuspratt
Schoonover's
Schwabish
sj
solarized
Solarized
Spiekerblog
SRON
stata
Stata
Stribley
Tabaleau
Tableu
Tejeda
thatn
tol
Tol
Tol's
tradeblotter
Tremmel
tufte
Tufte
Tufte's
unica
unicode
Verdana
weitzner
wordpress
WS
wsj
WSJ
ggthemes/tests/ 0000755 0001762 0000144 00000000000 13306122611 013212 5 ustar ligges users ggthemes/tests/spelling.R 0000644 0001762 0000144 00000000241 13432645712 015163 0 ustar ligges users if(requireNamespace('spelling', quietly = TRUE))
spelling::spell_check_test(vignettes = TRUE, error = FALSE,
skip_on_cran = TRUE)
ggthemes/tests/figs/ 0000755 0001762 0000144 00000000000 13333323213 014143 5 ustar ligges users ggthemes/tests/figs/few/ 0000755 0001762 0000144 00000000000 13432646160 014735 5 ustar ligges users ggthemes/tests/figs/few/theme-few.svg 0000644 0001762 0000144 00000020352 13432646160 017341 0 ustar ligges users
ggthemes/tests/figs/deps.txt 0000644 0001762 0000144 00000000103 13432646160 015642 0 ustar ligges users - vdiffr-svg-engine: 1.0
- vdiffr: 0.3.0
- freetypeharfbuzz: 0.2.5
ggthemes/tests/testthat.R 0000644 0001762 0000144 00000000074 13300177253 015204 0 ustar ligges users library(testthat)
library(ggthemes)
test_check("ggthemes")
ggthemes/tests/testthat/ 0000755 0001762 0000144 00000000000 13466232153 015064 5 ustar ligges users ggthemes/tests/testthat/test-igray.R 0000644 0001762 0000144 00000000232 13314473314 017272 0 ustar ligges users context("igray")
test_that("theme_igray works", {
thm <- theme_igray()
expect_is(thm, "theme")
expect_equal(thm$plot.background$fill, "gray90")
})
ggthemes/tests/testthat/test-fivethirtyeight.R 0000644 0001762 0000144 00000001000 13314516705 021371 0 ustar ligges users context("fivethirtyeight")
test_that("theme_fivethirtyeight works", {
expect_is(theme_fivethirtyeight(), "theme")
})
test_that("scale_fill_fivethirtyeight works", {
expect_is(scale_fill_fivethirtyeight(), "ScaleDiscrete")
})
test_that("scale_colour_fivethirtyeight works", {
expect_is(scale_colour_fivethirtyeight(), "ScaleDiscrete")
})
test_that("fivethirtyeight_pal works", {
p <- fivethirtyeight_pal()
expect_is(p, "function")
expect_is(attr(p, "max_n"), "integer")
expect_hexcolor(p(3))
})
ggthemes/tests/testthat/test-theme_map.R 0000644 0001762 0000144 00000000235 13314473423 020122 0 ustar ligges users context("theme_map")
test_that("theme_map works", {
thm <- theme_map()
expect_is(thm, "theme")
expect_equal(thm$panel.background, element_blank())
})
ggthemes/tests/testthat/test-colorblind.R 0000644 0001762 0000144 00000001127 13314333676 020320 0 ustar ligges users context("colorblind")
test_that("colorblind_pal works", {
p <- colorblind_pal()
expect_is(p, "function")
expect_hexcolor(p(4))
expect_is(attr(p, "max_n"), "integer")
})
test_that("colorblind_pal raises warning with to large n", {
expect_warning(colorblind_pal()(20))
})
test_that("scale_colour_colorblind works", {
expect_is(scale_colour_colorblind(), "ScaleDiscrete")
})
test_that("scale_color_canva works", {
expect_equal(scale_color_colorblind(), scale_colour_colorblind())
})
test_that("scale_fill_colorblind works", {
expect_is(scale_fill_colorblind(), "ScaleDiscrete")
})
ggthemes/tests/testthat/test-stat_fivenumber.R 0000644 0001762 0000144 00000000164 13314517755 021370 0 ustar ligges users context("stat-fivenumber")
test_that("stat_fivenumber works", {
expect_is(stat_fivenumber(), "LayerInstance")
})
ggthemes/tests/testthat/test-gdocs.R 0000644 0001762 0000144 00000001045 13314476022 017260 0 ustar ligges users context("gdocs")
test_that("gdocs_pal works", {
pal <- gdocs_pal()
expect_is(pal, "function")
n <- 3
vals <- pal(n)
expect_is(vals, "character")
expect_equal(length(vals), n)
})
test_that("scale_fill_gdocs works", {
expect_is(scale_fill_gdocs(), "ScaleDiscrete")
})
test_that("scale_colour_gdocs works", {
expect_is(scale_fill_gdocs(), "ScaleDiscrete")
})
test_that("scale_color_gdocs works", {
expect_equal(scale_color_gdocs(), scale_colour_gdocs())
})
test_that("theme_gdocs works", {
expect_is(theme_gdocs(), "theme")
})
ggthemes/tests/testthat/test-banking.R 0000644 0001762 0000144 00000001253 13314735174 017601 0 ustar ligges users context("banking")
test_that("bank_slopes runs", {
x <- 1:5
y <- runif(length(x))
out <- bank_slopes(x, y)
expect_equal(length(out), 1L)
expect_is(out, "numeric")
})
test_that("bank_slopes with method=\"as\" runs", {
x <- 1:5
y <- runif(length(x))
out <- bank_slopes(x, y, method = "as")
expect_equal(length(out), 1L)
expect_is(out, "numeric")
})
test_that("bank_slopes with invalid method throws error", {
expect_error(bank_slopes(1:5, 1:5, method = "aor"))
})
test_that("bank_slopes works with cull = TRUE", {
x <- c(1, 1, 2)
y <- runif(length(x))
out <- bank_slopes(x, y, cull = TRUE)
expect_equal(length(out), 1L)
expect_is(out, "numeric")
})
ggthemes/tests/testthat/test-canva.R 0000644 0001762 0000144 00000001333 13314333407 017250 0 ustar ligges users context("canva")
test_that("canva_pal works", {
p <- canva_pal()
expect_is(p, "function")
expect_hexcolor(p(4))
})
test_that("canva_pal works with alt palette", {
expect_hexcolor(canva_pal("Pop art")(4))
})
test_that("canva_pal raises warning with to large n", {
expect_warning(canva_pal()(10))
})
test_that("canva_pal raises error with invalid palette", {
expect_error(canva_pal("adsffafd"), regexp = "not a valid name")
})
test_that("scale_colour_canva works", {
expect_is(scale_colour_canva(), "ScaleDiscrete")
})
test_that("scale_color_canva works", {
expect_equal(scale_color_canva(), scale_colour_canva())
})
test_that("scale_colour_canva works", {
expect_is(scale_fill_canva(), "ScaleDiscrete")
})
ggthemes/tests/testthat/test-few.R 0000644 0001762 0000144 00000003120 13432651614 016741 0 ustar ligges users context("few")
library("ggplot2")
test_that("few_shape_pal works", {
out <- few_shape_pal()
expect_is(out, "function")
expect_true(!is.null(attr(out, "max_n")))
pal0 <- out(0)
expect_identical(length(pal0), 0L)
pal3 <- out(3)
expect_identical(length(pal3), 3L)
expect_warning(out(10))
})
test_that("few_shape_pal works", {
out <- scale_shape_few()
expect_is(out, c("ScaleDiscrete", "Scale", "ggproto"))
})
test_that("few_pal runs", {
p <- few_pal("Medium")
expect_is(p, "function")
expect_is(attr(p, "max_n"), "integer")
out <- p(5)
expect_is(out, "character")
expect_equal(length(out), 5L)
# should use the first accent color
expect_equal(out[[1]],
ggthemes::ggthemes_data$few$colors$Medium$value[[2]])
expect_warning(p(10))
})
test_that("few_pal works with n = 1", {
out <- few_pal("Medium")(1)
expect_equal(out, ggthemes::ggthemes_data$few$colors$Medium$value[[1]])
})
test_that("few_pal raises error with bad palette", {
expect_error(few_pal("Foo"))
})
test_that("scale_colour_few works", {
expect_is(scale_colour_few(), "ScaleDiscrete")
})
test_that("scale_color_few works", {
expect_equal(scale_color_few(), scale_colour_few())
})
test_that("scale_fill_few works", {
expect_is(scale_fill_few(), "ScaleDiscrete")
})
test_that("theme_few works", {
expect_is(theme_few(), "theme")
})
test_that("theme_few draws correctly", {
df <- data.frame(x = 1:3, y = 1:3, z = c("a", "b", "a"), a = 1)
plot <- ggplot(df, aes(x, y, colour = z)) +
geom_point() +
facet_wrap(~ a)
expect_doppelganger("theme_few", plot + theme_few())
})
ggthemes/tests/testthat/test-ptol.R 0000644 0001762 0000144 00000000527 13314512522 017137 0 ustar ligges users context("ptol")
test_that("ptol_pal works", {
p <- ptol_pal()
expect_is(p, "function")
expect_is(attr(p, "max_n"), "integer")
expect_hexcolor(p(11))
})
test_that("scale_colour_ptol works", {
expect_is(scale_colour_ptol(), "ScaleDiscrete")
})
test_that("scale_fill_ptol works", {
expect_is(scale_fill_ptol(), "ScaleDiscrete")
})
ggthemes/tests/testthat/test-tufte.R 0000644 0001762 0000144 00000000415 13314523107 017305 0 ustar ligges users context("tufte")
test_that("theme_tufte works", {
thm <- theme_tufte()
expect_is(thm, "theme")
})
test_that("theme_tufte works with ticks = FALSE", {
thm <- theme_tufte(ticks = FALSE)
expect_is(thm, "theme")
expect_equal(thm$axis.ticks, element_blank())
})
ggthemes/tests/testthat/test-excel.R 0000644 0001762 0000144 00000002663 13432664025 017273 0 ustar ligges users context("excel")
test_that("excel_clasic_pal works", {
pal <- excel_pal()
n <- 5L
values <- pal(n)
expect_is(values, "character")
expect_equal(length(values), n)
})
test_that("excel_clasic_pal with line = TRUE works", {
pal <- excel_pal(line = TRUE)
n <- 5L
values <- pal(n)
expect_is(values, "character")
expect_equal(length(values), n)
})
test_that("calc_shape_pal raises warning for large n", {
expect_warning(excel_pal()(8))
})
test_that("excel_new_pal works", {
pal <- excel_new_pal()
n <- 5L
vals <- pal(n)
expect_is(vals, "character")
expect_equal(length(vals), n)
})
test_that("excel_new_pal raises error for bad n", {
expect_warning(excel_new_pal()(7))
})
test_that("theme_excel works", {
expect_is(theme_excel(), "theme")
})
test_that("excel_new_pal raises error with bad theme name", {
expect_error(excel_new_pal("adfaasdfa"), regexp = "`theme` must be one of")
})
test_that("scale_fill_excel works", {
expect_is(scale_fill_excel(), "ScaleDiscrete")
})
test_that("scale_colour_excel works", {
expect_is(scale_colour_excel(), "ScaleDiscrete")
})
test_that("scale_colour_excel works", {
expect_is(scale_fill_excel_new(), "ScaleDiscrete")
})
test_that("scale_fill_excel works", {
expect_is(scale_colour_excel_new(), "ScaleDiscrete")
})
test_that("theme_excel with horizontal = FALSE works", {
thm <- theme_excel(horizontal = FALSE)
expect_equal(thm$panel.grid.major.y, element_blank())
})
ggthemes/tests/testthat/test-show.R 0000644 0001762 0000144 00000000645 13314517131 017143 0 ustar ligges users context("shapes")
test_that("show_shapes works", {
# creates plot using base plotting system, so just run code --- any
# errors / warnings will be caught.
x <- 1:10
expect_equal(show_shapes(x), x)
})
test_that("show_linetypes works", {
x <- 1:5
expect_equal(show_linetypes(x), x)
})
test_that("show_linetypes works with labels = FALSE", {
x <- 1:5
expect_equal(show_linetypes(x, labels = FALSE), x)
})
ggthemes/tests/testthat/test-theme_solid.R 0000644 0001762 0000144 00000000236 13314473742 020464 0 ustar ligges users context("theme_solid")
test_that("theme_solid works", {
thm <- theme_solid(fill = "red")
expect_is(thm, "theme")
expect_equal(thm$rect$fill, "red")
})
ggthemes/tests/testthat/test-solarized.R 0000644 0001762 0000144 00000001437 13314516616 020166 0 ustar ligges users context("solarized")
test_that("theme_solarized_works", {
expect_is(theme_solarized(), "theme")
expect_is(theme_solarized(light = FALSE), "theme")
})
test_that("theme_solarized_2_works", {
expect_is(theme_solarized_2(), "theme")
expect_is(theme_solarized_2(light = FALSE), "theme")
})
test_that("scale_colour_solarized works", {
expect_is(scale_colour_solarized(), "ScaleDiscrete")
})
test_that("scale_color_solarized works", {
expect_equal(scale_colour_solarized(), scale_color_solarized())
})
test_that("scale_fill_solarized works", {
expect_is(scale_fill_solarized(), "ScaleDiscrete")
})
test_that("solarized_pal works", {
pal <- solarized_pal()
expect_is(pal, "function")
n <- 5L
values <- pal(n)
expect_is(values, "character")
expect_equal(length(values), n)
})
ggthemes/tests/testthat/test-tableau.R 0000644 0001762 0000144 00000006602 13466077407 017616 0 ustar ligges users context("tableau")
test_that("tableau_color_pal works", {
pal <- tableau_color_pal()
expect_is(pal, "function")
expect_is(attr(pal, "max_n"), "integer")
n <- 3
vals <- pal(n)
expect_is(vals, "character")
expect_equal(length(vals), n)
})
test_that("tableau_color_pal direction = -1 works", {
n <- 4L
expect_true(all(tableau_color_pal(direction = -1)(n) ==
rev(tableau_color_pal()(n))))
})
test_that("tableau_color_pal works with diverging palette", {
n <- 3L
pal <- tableau_color_pal("Orange-Blue Diverging",
type = "ordered-diverging")(n)
expect_is(pal, "character")
expect_equal(length(pal), n)
})
test_that("tableau_color_pal raises error with invalid palette", {
expect_error(tableau_color_pal("dsaga"))
})
test_that("tableau_shape_pal raises error with bad palette", {
expect_error(tableau_shape_pal(palette = "gender"))
})
test_that("tableau_shape_pal works", {
n <- 3
pal <- tableau_shape_pal()(n)
expect_is(pal, "integer")
expect_is(attr(tableau_shape_pal(), "max_n"), "integer")
# all unicode
expect_true(all(pal < 0))
expect_equal(length(pal), n)
})
test_that("scale_shape_tableau works", {
expect_is(scale_shape_tableau(), "ScaleDiscrete")
})
test_that("scale_colour_tableau works", {
expect_is(scale_colour_tableau(), "ScaleDiscrete")
})
test_that("scale_colour_tableau works with diverging scales", {
expect_is(scale_colour_tableau(type = "ordered-diverging",
palette = "Orange-Blue Diverging"),
"ScaleDiscrete")
})
test_that("scale_colour_tableau works with sequential scales", {
expect_is(scale_colour_tableau(type = "ordered-sequential",
palette = "Blue-Green Sequential"),
"ScaleDiscrete")
})
test_that("scale_fill_tableau works", {
expect_is(scale_fill_tableau(), "ScaleDiscrete")
})
test_that("scale_fill_tableau works with diverging scales", {
expect_is(scale_fill_tableau(type = "ordered-diverging",
palette = "Orange-Blue Diverging"),
"ScaleDiscrete")
})
test_that("scale_fill_tableau works with sequential scales", {
expect_is(scale_fill_tableau(type = "ordered-sequential",
palette = "Blue-Green Sequential"),
"ScaleDiscrete")
})
test_that("tableau_gradient_pal works", {
p <- tableau_gradient_pal()
expect_is(p, "function")
expect_hexcolor(p(seq(0, 1, by = 0.1)))
})
test_that("tableau_seq_gradient_pal works", {
p <- tableau_seq_gradient_pal()
expect_is(p, "function")
expect_hexcolor(p(seq(0, 1, by = 0.1)))
})
test_that("tableau_div_gradient_pal works", {
p <- tableau_seq_gradient_pal()
expect_is(p, "function")
expect_hexcolor(p(seq(0, 1, by = 0.1)))
})
test_that("scale_colour_gradient_tableau works", {
expect_is(scale_colour_gradient_tableau(), "ScaleContinuous")
})
test_that("scale_fill_gradient_tableau works", {
expect_is(scale_fill_gradient_tableau(), "ScaleContinuous")
})
test_that("scale_colour_gradient_tableau works", {
expect_is(scale_colour_gradient2_tableau(), "ScaleContinuous")
})
test_that("scale_fill_gradient_tableau works", {
expect_is(scale_fill_gradient2_tableau(), "ScaleContinuous")
})
test_that("classic colors are in the correct order", {
# Issue #96
pal <- tableau_color_pal("Classic 20")(20)
expect_equal(pal[[1]], "#1f77b4")
expect_equal(pal[[20]], "#9edae5")
})
ggthemes/tests/testthat/test-hc.R 0000644 0001762 0000144 00000001504 13314735200 016547 0 ustar ligges users context("hc")
test_that("hc_pal works", {
pal <- hc_pal()
expect_is(pal, "function")
n <- 5
values <- pal(n)
expect_is(values, "character")
expect_equal(length(values), n)
})
test_that("hc_pal raises error with invalid palette", {
expect_error(hc_pal(palette = "asdgasdgasdgas"),
regexp = "not valid")
})
test_that("scale_colour_hc works", {
expect_is(scale_colour_hc(), "ScaleDiscrete")
})
test_that("scale_color_hc works", {
expect_equal(scale_colour_hc(), scale_color_hc())
})
test_that("scale_fill_hc works", {
expect_is(scale_fill_hc(), "ScaleDiscrete")
})
test_that("theme_hc works", {
expect_is(theme_hc(), "theme")
expect_is(theme_hc(style = "darkunica"), "theme")
})
test_that("bgcolor raises warning", {
expect_warning(theme_hc(bgcolor = "darkunica"), regexp = "deprecated")
})
ggthemes/tests/testthat/test-calc.R 0000644 0001762 0000144 00000001651 13314513336 017066 0 ustar ligges users context("calc")
test_that("calc_shape_pal works", {
pal <- calc_shape_pal()
expect_is(pal, "function")
expect_is(attr(pal, "max_n"), "integer")
n <- 5L
shapes <- pal(n)
expect_is(shapes, "integer")
expect_true(all(shapes < 0))
expect_equal(length(shapes), n)
})
test_that("calc_pal works", {
pal <- calc_pal()
expect_is(pal, "function")
expect_is(attr(pal, "max_n"), "integer")
n <- 5L
expect_hexcolor(pal(n))
expect_warning(pal(100))
expect_error(pal(-1))
})
test_that("calc_shape_pal raises warning for large n", {
expect_warning(calc_shape_pal()(100))
})
test_that("theme_calc works", {
expect_is(theme_calc(), "theme")
})
test_that("scale_colour_calc works", {
expect_is(scale_colour_calc(), "ScaleDiscrete")
})
test_that("scale_fill_calc works", {
expect_is(scale_fill_calc(), "ScaleDiscrete")
})
test_that("scale_shape_calc works", {
expect_is(scale_shape_calc(), "ScaleDiscrete")
})
ggthemes/tests/testthat/helper-vdiffr.R 0000644 0001762 0000144 00000001326 13306127410 017736 0 ustar ligges users enable_vdiffr <- TRUE
# if (!requireNamespace("vdiffr", quietly = TRUE) ||
# utils::packageVersion("vdiffr") < "0.2.3.9000") {
# enable_vdiffr <- FALSE
# }
expect_doppelganger <- function(title, fig,
path = NULL,
...,
user_fonts = NULL,
verbose = FALSE) {
if (!enable_vdiffr) {
# expect_error(regexp = NA, ggplot_build(fig))
return(invisible(NULL))
}
vdiffr::expect_doppelganger(title, fig,
path = path,
...,
user_fonts = user_fonts,
verbose = verbose)
}
ggthemes/tests/testthat/test-base.R 0000644 0001762 0000144 00000002364 13305113520 017067 0 ustar ligges users context("base")
test_that("theme_base runs", {
expect_is(theme_base(), "theme")
})
test_that("theme_par runs", {
expect_is(theme_par(), "theme")
})
test_that("theme_par recognizes las", {
withr::with_par(list(las = 1), {
thm <- theme_par()
expect_equal(thm$axis.title.x$angle, 0)
expect_equal(thm$axis.title.y$angle, 0)
})
withr::with_par(list(las = 2), {
thm <- theme_par()
expect_equal(thm$axis.title.x$angle, 90)
expect_equal(thm$axis.title.y$angle, 0)
})
withr::with_par(list(las = 3), {
thm <- theme_par()
expect_equal(thm$axis.title.x$angle, 90)
expect_equal(thm$axis.title.y$angle, 90)
})
})
test_that("theme_par recognizes tck", {
withr::with_par(list(tck = 1), {
expect_equal(theme_par()$axis.ticks.length, grid::unit(-1, "snpc"))
})
})
test_that("theme_par recognizes xaxt", {
withr::with_par(list(xaxt = "n"), {
thm <- theme_par()
for (i in c("axis.line.x", "axis.text.x", "axis.ticks.x")) {
expect_equal(thm[[i]], element_blank())
}
})
})
test_that("theme_par recognizes yaxt", {
withr::with_par(list(yaxt = "n"), {
thm <- theme_par()
for (i in c("axis.line.y", "axis.text.y", "axis.ticks.y")) {
expect_equal(thm[[i]], element_blank())
}
})
})
ggthemes/tests/testthat/test-pander.R 0000644 0001762 0000144 00000001622 13314475016 017435 0 ustar ligges users context("pander")
test_that("scale_colour_pander works", {
expect_is(scale_colour_pander(), "ScaleDiscrete")
})
test_that("scale_fill_pander works", {
expect_is(scale_fill_pander(), "ScaleDiscrete")
})
test_that("palette_pander works", {
colors <- palette_pander(5)
expect_hexcolor(colors)
})
test_that("palette_pander random_order=TRUE works", {
colors <- palette_pander(5, random_order = TRUE)
expect_hexcolor(colors)
})
test_that("theme_pander works", {
expect_is(theme_pander(), "theme")
})
test_that("theme_pander works with gm = FALSE", {
thm <- theme_pander(gM = FALSE)
expect_is(thm, "theme")
expect_equal(thm$panel.grid, element_blank())
})
test_that("theme_pander warns about ff argument", {
expect_warning(theme_pander(ff = ""), regexp = "deprecated")
})
test_that("theme_pander warns about fs argument", {
expect_warning(theme_pander(fs = 1), regexp = "deprecated")
})
ggthemes/tests/testthat/test-geom-rangeframe.R 0000644 0001762 0000144 00000000164 13314517541 021220 0 ustar ligges users context("geom-rangeframe")
test_that("geom_rangeframe works", {
expect_is(geom_rangeframe(), "LayerInstance")
})
ggthemes/tests/testthat/helper-utils.R 0000644 0001762 0000144 00000000661 13337655631 017636 0 ustar ligges users is_hexcolor <- function(x) {
pattern <- stringr::regex("^#[a-f0-9]{6}$", ignore_case = TRUE)
out <- stringr::str_detect(x, pattern)
out[is.na(out)] <- FALSE
out
}
expect_hexcolor <- function(object) {
# capture object and label
act <- quasi_label(rlang::enquo(object))
valid <- is_hexcolor(act$val)
expect(
all(valid),
glue::glue("Not all elements of {act$lab} are hex colors.")
)
invisible(act$val)
}
ggthemes/tests/testthat/test-scales_tufte.R 0000644 0001762 0000144 00000000022 13314735224 020636 0 ustar ligges users context("scales")
ggthemes/tests/testthat/test-economist.R 0000644 0001762 0000144 00000003576 13314471633 020177 0 ustar ligges users context("economist")
test_that("economist_pal fill=FALSE works", {
p <- economist_pal(fill = FALSE)
expect_is(p, "function")
for (i in 1:9) {
expect_hexcolor(p(i))
}
})
test_that("economist_pal fill=TRUE works", {
p <- economist_pal(fill = TRUE)
expect_is(p, "function")
for (i in 1:9) {
expect_hexcolor(p(i))
}
})
test_that("economist_pal raises warning with large number", {
expect_warning(economist_pal()(10))
})
test_that("scale_colour_economist equals scale_color_economist", {
expect_equal(scale_color_economist(), scale_colour_economist())
})
test_that("scale_colour_economist works", {
expect_is(scale_color_economist(), "ScaleDiscrete")
})
test_that("scale_fill_economist works", {
expect_is(scale_fill_economist(), "ScaleDiscrete")
})
test_that("theme economist works", {
expect_is(theme_economist(), "theme")
})
test_that("theme economist with horizontal=FALSE works", {
thm <- theme_economist(horizontal = FALSE)
expect_is(thm, "theme")
expect_equal(thm$panel.grid.major.y, element_blank())
})
test_that("theme economist with dark panel works", {
thm <- theme_economist(dkpanel = TRUE)
expect_is(thm, "theme")
expect_equal(thm$strip.background$fill,
purrr::pluck(dplyr::filter(ggthemes_data$economist$bg,
name == "dark blue-gray"), "value"))
})
test_that("theme economist_white works", {
thm <- theme_economist_white(gray_bg = FALSE)
expect_is(thm, "theme")
expect_equal(thm$panel.background$fill, "white")
expect_equal(thm$plot.background$fill, "white")
})
test_that("theme economist_white with gray background works", {
thm <- theme_economist_white(gray_bg = TRUE)
expect_is(thm, "theme")
expect_equal(thm$plot.background$fill,
purrr::pluck(dplyr::filter(ggthemes_data$economist$bg,
name == "light gray"), "value"))
})
ggthemes/tests/testthat/test-wsj_pal.R 0000644 0001762 0000144 00000001125 13314476611 017623 0 ustar ligges users context("wsj")
test_that("theme_wsj works", {
expect_is(theme_wsj(), "theme")
})
test_that("wsj_pal works", {
p <- wsj_pal()
expect_is(p, "function")
expect_is(attr(p, "max_n"), "integer")
expect_hexcolor(p(3))
})
test_that("theme_wsj works", {
expect_is(theme_wsj(), "theme")
})
test_that("theme_wsj raises error with invalid palette", {
expect_error(wsj_pal("asdgasa"), regexp = "valid palette")
})
test_that("scale_colour_wsj works", {
expect_is(scale_colour_wsj(), "ScaleDiscrete")
})
test_that("scale_fill_wsj works", {
expect_is(scale_fill_wsj(), "ScaleDiscrete")
})
ggthemes/tests/testthat/test-stata.R 0000644 0001762 0000144 00000002740 13314477072 017306 0 ustar ligges users context("stata")
test_that("stata_pal works", {
p <- stata_pal()
expect_is(p, "function")
expect_is(attr(p, "max_n"), "integer")
n <- 5
vals <- p(n)
expect_hexcolor(vals)
expect_length(vals, n)
expect_warning(stata_pal()(100))
})
test_that("scale_colour_stata works", {
expect_is(scale_colour_stata(), "ScaleDiscrete")
})
test_that("scale_color_stata works", {
expect_equal(scale_colour_stata(), scale_color_stata())
})
test_that("scale_fill_stata works", {
expect_is(scale_fill_stata(), "ScaleDiscrete")
})
test_that("scale_shape_stata works", {
expect_is(scale_shape_stata(), "ScaleDiscrete")
})
test_that("theme_stata works", {
expect_is(theme_stata(), "theme")
for (i in c("s2mono", "s1mono", "s2manual", "s1rcolor", "s1color")) {
expect_is(theme_stata(scheme = i), "theme")
}
})
test_that("theme_state raises error with invallid scheme", {
expect_error(theme_stata(scheme = "dsagasagdadgaga"),
regexp = "`scheme` must be one of")
})
test_that("stata_shape_pal works", {
p <- stata_shape_pal()
expect_is(p, "function")
n <- 5L
vals <- p(n)
expect_is(vals, "integer")
expect_length(vals, n)
expect_true(all(vals < 0))
expect_warning(p(100))
})
test_that("stata_linetype_pal works", {
p <- stata_linetype_pal()
expect_is(p, "function")
n <- 5L
vals <- p(n)
expect_equal(vals, c("solid", "84", "23", "F414", "F4"))
})
test_that("scale_linetype_stata works", {
expect_is(scale_linetype_stata(), "ScaleDiscrete")
})
ggthemes/tests/testthat/test-shapes.R 0000644 0001762 0000144 00000003244 13314735230 017446 0 ustar ligges users context("shapes")
test_that("circlefill_pal works", {
pal <- circlefill_shape_pal()
expect_is(pal, "function")
expect_equal(attr(pal, "max_n"), 5L)
n <- 4L
values <- pal(n)
expect_is(values, "integer")
expect_equal(length(values), n)
})
test_that("scale_shape_circlefill works", {
expect_is(scale_shape_circlefill(), "ScaleDiscrete")
})
test_that("tremmel_shape_pal works", {
pal <- tremmel_shape_pal()
expect_is(pal, "function")
expect_equal(attr(pal, "max_n"), 3L)
n <- 3L
values <- pal(n)
expect_is(values, "integer")
expect_equal(length(values), n)
})
test_that("tremmel_shape_pal works for all values", {
for (i in 1:3L) {
expect_equal(length(tremmel_shape_pal()(i)), i)
expect_equal(length(tremmel_shape_pal(alt = TRUE)(i)), i)
expect_equal(length(tremmel_shape_pal(overlap = TRUE)(i)), i)
}
})
test_that("scale_shape_tremmel works", {
expect_is(scale_shape_tremmel(), "ScaleDiscrete")
})
test_that("cleveland_shape_pal works", {
pal <- cleveland_shape_pal()
expect_is(pal, "function")
expect_equal(attr(pal, "max_n"), 4)
n <- 3
vals <- pal(n)
expect_equal(length(vals), n)
})
test_that("tremmel_pal arg n3alt is deprected", {
expect_warning(tremmel_shape_pal(n3alt = FALSE))
expect_warning(tremmel_shape_pal(n3alt = TRUE))
})
test_that("cleveland_shape_pal works with overlap = FALSE", {
pal <- cleveland_shape_pal(overlap = FALSE)
expect_is(pal, "function")
expect_equal(attr(pal, "max_n"), 5)
n <- 3
vals <- pal(n)
expect_equal(length(vals), n)
expect_is(vals, "integer")
expect_true(all(vals < 0))
})
test_that("scale_shape_cleveland works", {
expect_is(scale_shape_cleveland(), "ScaleDiscrete")
})
ggthemes/tests/testthat/test-tufteboxplot.R 0000644 0001762 0000144 00000000172 13314517607 020725 0 ustar ligges users context("geom-tufteboxplot")
test_that("geom_tufteboxplot works", {
expect_is(geom_tufteboxplot(), "LayerInstance")
})
ggthemes/NAMESPACE 0000644 0001762 0000144 00000010730 13466154051 013302 0 ustar ligges users # Generated by roxygen2: do not edit by hand
export(GeomRangeFrame)
export(GeomTufteboxplot)
export(StatFivenumber)
export(bank_slopes)
export(calc_pal)
export(calc_shape_pal)
export(canva_pal)
export(circlefill_shape_pal)
export(cleveland_shape_pal)
export(colorblind_pal)
export(economist_pal)
export(excel_new_pal)
export(excel_pal)
export(extended_range_breaks)
export(extended_range_breaks_)
export(few_pal)
export(few_shape_pal)
export(fivethirtyeight_pal)
export(gdocs_pal)
export(geom_rangeframe)
export(geom_tufteboxplot)
export(hc_pal)
export(palette_pander)
export(ptol_pal)
export(scale_color_calc)
export(scale_color_canva)
export(scale_color_colorblind)
export(scale_color_continuous_tableau)
export(scale_color_economist)
export(scale_color_excel)
export(scale_color_excel_new)
export(scale_color_few)
export(scale_color_fivethirtyeight)
export(scale_color_gdocs)
export(scale_color_gradient2_tableau)
export(scale_color_gradient_tableau)
export(scale_color_hc)
export(scale_color_pander)
export(scale_color_ptol)
export(scale_color_solarized)
export(scale_color_stata)
export(scale_color_tableau)
export(scale_color_wsj)
export(scale_colour_calc)
export(scale_colour_canva)
export(scale_colour_colorblind)
export(scale_colour_economist)
export(scale_colour_excel)
export(scale_colour_excel_new)
export(scale_colour_few)
export(scale_colour_fivethirtyeight)
export(scale_colour_gdocs)
export(scale_colour_gradient2_tableau)
export(scale_colour_gradient_tableau)
export(scale_colour_hc)
export(scale_colour_pander)
export(scale_colour_ptol)
export(scale_colour_solarized)
export(scale_colour_stata)
export(scale_colour_tableau)
export(scale_colour_wsj)
export(scale_fill_calc)
export(scale_fill_canva)
export(scale_fill_colorblind)
export(scale_fill_continuous_tableau)
export(scale_fill_economist)
export(scale_fill_excel)
export(scale_fill_excel_new)
export(scale_fill_few)
export(scale_fill_fivethirtyeight)
export(scale_fill_gdocs)
export(scale_fill_gradient2_tableau)
export(scale_fill_gradient_tableau)
export(scale_fill_hc)
export(scale_fill_pander)
export(scale_fill_ptol)
export(scale_fill_solarized)
export(scale_fill_stata)
export(scale_fill_tableau)
export(scale_fill_wsj)
export(scale_linetype_stata)
export(scale_shape_calc)
export(scale_shape_circlefill)
export(scale_shape_cleveland)
export(scale_shape_few)
export(scale_shape_stata)
export(scale_shape_tableau)
export(scale_shape_tremmel)
export(show_linetypes)
export(show_shapes)
export(smart_digits)
export(smart_digits_format)
export(solarized_pal)
export(stat_fivenumber)
export(stata_linetype_pal)
export(stata_pal)
export(stata_shape_pal)
export(tableau_color_pal)
export(tableau_div_gradient_pal)
export(tableau_gradient_pal)
export(tableau_seq_gradient_pal)
export(tableau_shape_pal)
export(theme_base)
export(theme_calc)
export(theme_clean)
export(theme_economist)
export(theme_economist_white)
export(theme_excel)
export(theme_excel_new)
export(theme_few)
export(theme_fivethirtyeight)
export(theme_foundation)
export(theme_gdocs)
export(theme_hc)
export(theme_igray)
export(theme_map)
export(theme_pander)
export(theme_par)
export(theme_solarized)
export(theme_solarized_2)
export(theme_solid)
export(theme_stata)
export(theme_tufte)
export(theme_wsj)
export(tremmel_shape_pal)
export(wsj_pal)
importFrom(ggplot2,"%+replace%")
importFrom(ggplot2,Geom)
importFrom(ggplot2,aes)
importFrom(ggplot2,continuous_scale)
importFrom(ggplot2,discrete_scale)
importFrom(ggplot2,draw_key_path)
importFrom(ggplot2,draw_key_pointrange)
importFrom(ggplot2,element_blank)
importFrom(ggplot2,element_line)
importFrom(ggplot2,element_rect)
importFrom(ggplot2,element_text)
importFrom(ggplot2,ggplot)
importFrom(ggplot2,ggproto)
importFrom(ggplot2,layer)
importFrom(ggplot2,margin)
importFrom(ggplot2,rel)
importFrom(ggplot2,theme)
importFrom(ggplot2,theme_bw)
importFrom(ggplot2,theme_gray)
importFrom(ggplot2,theme_grey)
importFrom(graphics,abline)
importFrom(graphics,axis)
importFrom(graphics,par)
importFrom(graphics,plot)
importFrom(graphics,points)
importFrom(graphics,text)
importFrom(grid,gList)
importFrom(grid,gTree)
importFrom(grid,gpar)
importFrom(grid,grobName)
importFrom(grid,grobTree)
importFrom(grid,segmentsGrob)
importFrom(grid,unit)
importFrom(methods,as)
importFrom(methods,hasArg)
importFrom(purrr,map)
importFrom(purrr,map_dfr)
importFrom(scales,alpha)
importFrom(scales,div_gradient_pal)
importFrom(scales,manual_pal)
importFrom(scales,seq_gradient_pal)
importFrom(stringr,str_c)
importFrom(stringr,str_replace)
importFrom(tibble,as_tibble)
importFrom(tibble,deframe)
ggthemes/NEWS.md 0000644 0001762 0000144 00000022027 13466105426 013165 0 ustar ligges users # ggthemes 4.2.0
- Add `theme_clean()` (Thanks @konradzdeb, #105)
- Add `direction` argument to `scale_color_tableau()` and `scale_fill_tableau()`
(Thanks @vadimus202, #112)
# ggthemes 4.1.1
- Fix bugs in `geom_rangeframe` and `geom_tufteboxplot` caused by
failing to import `alpha`. (Thanks @flying-sheep, #110)
# ggthemes 4.1.0
- Add `type` argument to `scale_color_tableau` so that sequential and diverging
palettes can be used in discrete scales. (Thanks @onesandzeroes, #108)
- Fix colors in "Purple" and "Blue-Teal" palettes
in `tableau_color_pal()`. (Thanks @leonawicz, #109)
# ggthemes 4.0.1
- Fix bugs in `tableau_color_pal()`. Wrong colors in "Tableau 20" theme
(Thanks @friskin, #95), and incorrect order of classic color palettes
(Thanks @luca-scr, #96).
- Fix fatal bug in `theme_solarized()` and `solarized_rebase()`.
(Thanks @mdodrill-usgs, #97)
# ggthemes 4.0.0
- Added palettes and based on current versions of Excel:
`excel_pal_new()`, `scale_colour_excel_new()`, and `scale_fill_excel_new()`.
Excel '97 based scales keep the same names.
- Added `theme_excel_new()` which is based on the chart defaults of current versions
of Excel.
- Added Tableau 10 palettes and renamed old palettes
in `tableau_color_pal()`, `scale_color_tableau()`, `scale_fill_tableau()`,
and others. The continuous sequential and diverging palettes are improved
by including more intermediate steps.
- Updated `theme_gdocs()` to current look.
- Updated `scale_color_gdocs()` and `fill_color_gdocs()` to current color.
- Added `scale_shapes_few()` and `few_shape_pal()` with a shape scale and
palette from Stephen Few's "Show Me the Numbers".
- Removed `stata` argument from `scale_*_economist()` and `theme_economist()`.
- Changed the format of the `ggthemes_data` object.
- Changed behavior of `few_pal()`. If `n = 1`, use gray. If `n > 1` use non-gray
colors.
- Changed `tremmel_shape_scale()` to use `alt = TRUE` by default
- Deprecated `tremmel_shape_scale()` argument `n3alt`. Use the `alt` argument instead.
- Added a pkgdown site.
- Removed vignette. Move all examples to man pages.
- Bugfix: Fix `theme_few()` (#91)
- Bugfix: Update themes to be consistent with `ggplot>=3.2.0`
# ggthemes 3.5.0
- Bugfix: Fix RGB colors in `scale_color_few()`, `scale_fill_few()`, and
`few_pal()` (#89, @bpbraun)
- Update documentation to include mentions of the maximum number of values
that discrete scales support (#85)
# ggthemes 3.4.2
- Bugfix: Fix example code in `theme_economist()`. Thanks @carlganz #81.
- Remove suggests dependencies: `reshape2`, `plyr`, `tidyverse`
# ggthemes 3.4.1
- Bugfix: Resolve duplicate palette names in `canva_palettes()`. Thanks @Eluvias (#78)
# ggthemes 3.4.0
- Add color palettes from canva.com: `canva_palettes()`, `canva_pal()`,
`scale_colour_canva()`.
- Use `NEWS.md` instead of `NEWS`
- Update Economist examples to put y-axis on the right side.
# ggthemes 3.3.0
- Update themes to changes in ggplot 2.1.0.9000. Thanks @juliasilge (#71)
- `tufte_boxplot()` uses `position="dodge"` by default. Thanks @jgellar (#68)
- Bugfix: Fix errors in `geom_rangeframe()` in new version of ggplot2.
Thanks @coulmont (#70)
# ggthemes 3.2.0
- Bugfix: In function `bank_slopes()`, remove methods `ao`, `gor`, and `lor`.
These methods were not producing reliable results, and should not produce
results much different than `ms` or `as`. If used, they will produce a
warning, and `ms` will be used instead. (#68)
# ggthemes 3.1.0
- Add `ptol_pal()`, `scale_colour_ptol()`, and `scale_file_ptol()` based on
Paul Tol's qualitative color palettes. Thanks @jmlondon. (#65)
# ggthemes 3.0.4
- Fix panel.grid.major.y colors for `theme_hc()`. Thanks @flying-sheep! (#64)
# ggthemes 3.0.3
- Bugfix: remove `lintr` tests that broke with new `testthat`.
# ggthemes 3.0.2
- Bugfix: export `ggthemes_data()`
# ggthemes 3.0.1
- Bugfix: Remove border around legends in `theme_gdocs()`.
Thanks SandyMuspratt! Pull request #53.
- Bugfix: Remove border around legends in `theme_calc()`.
- Bugfix: Add colour and fill values to `theme_foundation()`. This restores
its behavior to version 2.2.1. Fixes Issue #56.
# ggthemes 3.0.0
- For `geom_tufteboxplot()` and `GeomTufteboxplot`, option `median.type`
supports only `line` and `point` options. Added option `whisker.type`
which allows for whiskers to be specified by lines or points.
- Changed default stat for `geom_tufteboxplot()` to `stat_fivenumber()`.
- Added `theme_base()` and `theme_par()`
- Removed `scale_(x|y)_tufte()`. See issue #49
- `theme_foundation()` rewritten. Removed `use_sizes` argument.
- Import rather than depend on `ggplot2`
- Update geoms, scales, and themes to ggplot >= 2.0.0
# ggthemes 2.2.1
- bugfix: fix R CMD check notes due to change in how it handles non-base
default packages:
- bugfix: fix bad URLs
# ggthemes 2.2.0
- Added `theme_map()` from @hrbrmstr
# ggthemes 2.1.1
- bugfix: use title case in package title; refer to ggplot2 in title
- bugfix: fix non-escaped URLs in colorblind.R
- bugfix: fix broken URL in few.R
- bugfix: remove non-ascii characters in shapes.R
- bugfix: use `requireNamespace()` instead of `require()`
# ggthemes 2.1.0
- New theme and scale based on Highcharts JS: `scale_*_hc()`, `theme_hc()`.
Thanks jbkunst!
# ggthemes 2.0.0
- New options for `geom_tufteboxplot()`. `median.type` takes values "point",
"box", or "line". Option `usebox` is no longer supported, and equivalent to
`median.type="box"`. Thanks weitzner! Issue #13, PR #19.
- All theme functions have `base_size` and `base_family` as first two arguments.
This affects `theme_economist_white()`, `theme_excel()`,
`theme_pander()`, `theme_solid()`, and `theme_tufte()`. Thanks ptoche! Issue #25.
- `theme_pander()`: Options `ff` and `fs` are deprecated; use
`base_family` and `base_size` options instead, respectively.
# ggthemes 1.9.0
- added vignette
- added themes / scales based on factory defaults of pander package:
`pander_palette()`, `scale_color_pander()`, `scale_fill_pander()`,
`theme_pander()`. Thanks daroczig.
- added additional fill and gradient color scales: `scale_fill_fivethirtyeight()`,
`scale_colour_gradient_tableau()`, `scale_fill_gradient_tableau()`,
`scale_fill_continuous_tableau()`, `scale_colour_gradient2_tableau()`,
`scale_fill_gradient2_tableau()`. Thanks bowerth.
# ggthemes 1.8.0
- added themes and color scale from fivethirtyeight.com: `theme_fivethirtyeight()`, `fivethirtyeight_pal()`, `scale_color_fivethirtyeight()`
# ggthemes 1.7.0
- added a new breaks algorithm: `scales_extended_range_breaks()`, `extended_range_breaks()`
- added scales which implement the breaks algorithm: `scale_x_tufte()`, `scale_y_tufte()`
- added new label format: `smart_digits()`, `smart_digits_format()`
# ggthemes 1.6.1
- fix bug in `theme_wsj()` (issue #17)
# ggthemes 1.6.0
- added `theme_solid()`
# ggthemes 1.5.1
- fix failures in R CMD check
# ggthemes 1.5.0
- added alternative Solarized theme: `theme_solarized_2()`
- `theme_solarized()`: adjusted the colors
- added LibreOffic Calc themes and palettes: `theme_calc()`, `calc_pal()`, `scale_fill_calc()`, `scale_colour_calc()`, `cacl_shape_pal()`, `scale_shape_calc()`
- added Google Docs themes and palettes: `theme_gdocs()`, `gdocs_pal()`, `scale_fill_gdocs()`, `scale_colour_gdocs()`
- fixed some examples
# ggthemes 1.4.0
- fix bug in default palettes of `scale_colour_excel()` and `scale_fill_excel()`.
# ggthemes 1.3.4
- added Tableau sequential colour palettes: `tableau_seq_gradient_pal()`, `scale_colour_gradient_tableau()`, `scale_fill_gradient_tableau()`.
- added Tableau diverging colour palettes: `tableau_div_gradient_pal()`, `scale_colour_gradient2_tableau()`, `scale_fill_gradient2_tableau()`.
- `tableau_colour_pal()`: added palette "cyclical
# ggthemes 1.3.3
- fix issue #11: error with fonts and `theme_wsj()` in Windows
# ggthemes 1.3.1
- `bank_slopes()` returns y/x aspect ratio to be compatible with `coord_fixed()`
- improved documentation
# ggthemes 1.3.0
- renamed `theme_excel2003()` to `theme_excel()`
- replace `scale_fill_excel2003()` and `scale_fill_excel10()` with `scale_fill_excel()`
- replaced `scale_colour_excel2003()` and `scale_colour_excel10()` with `scale_colour_excel()`
- replaced `excel2003_pal()` and `excel10_pal()` with `excel_pal()`
- renamed `theme_base()` to `theme_foundation()`
# ggthemes 1.2.0
- added colorblind scales: `colorblind_pal()`, `scale_*_colorblind()`.
# ggthemes 1.1.0
- added Wall Street Journal themes, palettes, scales: `theme_wsj()`, `wsj_pal()`,
`scale_colour_wsj()`, and `scale_fill_wsj()`.
- added function `bank_slopes()` : methods for determining the optimal slope
ratio.
- added `theme-foundation()`: a theme designed to be easy to extend into new
themes.
- added NEWS file
ggthemes/data/ 0000755 0001762 0000144 00000000000 13432642576 013002 5 ustar ligges users ggthemes/data/canva_palettes.rda 0000644 0001762 0000144 00000011075 13273732051 016456 0 ustar ligges users ‹ uZk¯Çqe$‚IñqII¶‚8YÄߘ~w)Yv É„®dù[ÐOÞ
÷q½R×?Ä?7È™ÙéÚÛ#
HqöÑ]]uêÔ©šýþË¿ò‡}øàÁƒ|øá>øÿüÕøëŸüêÁ¯ñÿ'ÑoÞùÿ¹õ«|8ä=>ø¯þžõ=ê£ßgÖõ¶HÞåéÖv!9rë’W®YÃu¾D5Ý
¡ƒ5Ó-÷‚ >Ý-4×ÍRsÆüt«H"M·Á+%ª•^
˻f
Õ)¦»º†µœïsHÂÖ;Ë…lÖè:dÝ©3ʨP—Ô^ùjV”©äö,¦.¶þÈÁzY-.E^oe0RÖ5lHÿcZpAH'I® éÝ‘4NÓ¶]£(®d=KñÚ˜
¹R’–5÷]ˆÝL¾ð|ÊÚtÕŽØ)ÛÕ%Spªk±®:Á8AÒ”,™eö¶ByÁ?¤µäS&zÏ9iJ“´`¶ÅGa¡#ü1üWŒ–ÆŽ:Íb¬ãNT;XÖJ;X±Â¶hîgòõ"™J1á"i‚r„
Z›·Ž$¶*dÊAÀp¨µ!ax—œQ–
±ÖIE`òŒ@ÎÑæmpÉEÂþ
'¦Ál$1§Ö,ƒ>jô¸ZUHÀÔV§Ÿnkv1ˆ·É…Ná*Èçu׿‹g!ÏgžŠ¯k8î}¬GË •”7kHëLªžG’BäHÁ¬HÔ¬ïT‹ub"gÑšgFjTH1ÄYthÖ@±e‰l\bôô6GB’42ŠB ‘˜PÔÅÙoÈÁµå-ŸïA¼äÖR*(^vDK•\Dn}ZdŽºff±NÎF”®bÌ3Vº–ǰ4d9±3’P’¾ $pšO‹1º«kÔN²qQ:pÁkÏb
S¼fUÒÌR.L>w5³“½óš¼õ€fÍ—¤¢ðÕ`MpfÁvmÞr}‘ÚB:PÒIÙ2â)Û|AÅ%ìoxdDzwHA§]à¡ÅX4‰ª6ã½%õ¥ÍgôŸŠŽN”0Gñ$aBÉæú)EåÛ¸ «
µ#›@ަ4pÙ÷X%[;¨NT,u§> Gu!¸°Å©`dcTš·ÆS1f”‚mÖHV^$t!÷x½¨è]˧}T¨ó"&_BÍNDž%MëS¤TàDKõMða‹"ª1§`gêË™©ºŽ
—„`õ¤PöI¶8-.xÂ2PRÙ^ØÁ2iE
Ú»¶Vvè# ŠD'qU³‚ét]#ºÄâL\¸d¤ëëe¢ NAY"ñ¬òr¦c>µÞfîœ M–h:´ e¦Þ¢ùJŒ[N@¥¸S¤o.ÊØâCu:ŒqÏé=@ã!U;€u-çxÍ"IøˆZÔ¨HJ'º×rŒžà=„Ð$÷¹4ÄÅ>†dÚ¸0ÍiÎÒHÊ^.AuÅ4ÇZí`•¾î„ØeÙLÚ™”<·:¢‡®·Â†
#zÍR™dJ¹6ïÁ·õ–'щ™>
†ÒICƽÞu:ZžmnuEµ%Ú!¢êÓÚ çª<£œãä(=9‹¦3õÖfètD"gt!”t9h¾DªGcL)ȇºÓ–Ç Rw
Ó„?’Ž:Ô|q&ØØâÔ1§ ¢ŽyAa[< “ò
LËAÜu„©²‚ßê÷ú¨l¤áí,‡CŠzâ¤xí—p*¼b3q1J÷-Ú´†O¨KõKJDÚe›ÄÌl‹yN
½/,Íßk©ÒQ£oùú³É"â #D¨fIhè™>‰HY7føžë>¸ºÅ*¥ S4°nT; šÕ¾cif~š”’’Ì àv¸ê ´²O¥LŽéU¦FR|¨^&6|j;”vRú«ZÙO²ƒCamÏ¢ŠÓ¶: ” ½æNYeÉÁ£þpšö‹Å ÍÞ…>
ðÖ
IgI\ºÐâBÆ•Toáï¨[|p
D¾$€":0E©¨èÑLu²‹E£H„`L!“Ú
ÓI!GæpŠþІŽ<y护ì³âŒ†)!&I:G¤·«ÄU¤É\Ûúªk×( 7 E\Õ,!L ª€¡ÝUmîwýب"ÀfãÈX·ô™PÍbAÕæœe€I2ï3‘4(ŽŠ°\–Ãtµ±CC
ÖO•â¢3ä™| Û'W“·¨¯¤3 0¢¡,èÜΑ¾å1tŸØrÙ {Ñ¥ÆVc‘ØúÃK§QÓµ’oúŽ¥ú4;gffã1'€H%ITÞeReµkøpÑÀ¡„“ò[L0´ú€ò¬þÈÄ0*Ôì:c >xß„¶>íÛoÛtš\SN.uIaú«Y#ÃI0±¯uôYRpÐZöÞ´ú£Ë] CÏÑ“ùºa†Ä6xdæYaÖt2h‚ê»sdl‡ŠŽ«µ£» UZ#ó D¤U Ì̵£Ït°Þõ‰Ê-ñÇ©r4ùbb&SE¥û«Â¶
@ÆT+¶Í9£4t&-)¿ÙEKÜcQ°l{fg4o/?8ÛÏ%ê’>jÓæ
›¥â)e$ÅÐG)ýS´œœ9'2páâYA@ëN¥·-®“š‘z+7´FÉ”#i3mÎy&÷¥•d’E‡«~ÉE:-*§Åi¬ Ï‘¹‘è1«k@™™¹·:y2ÉOJGÂA ƒ&'E÷ïÚºAÇhÃ∞%NG€3µá2_К](ûVÌ-4uËAÆDG†2èÄ,†& ºBSù6_t0žä~ÑQ—‰BÇh|‹SÔ[Mô‡ÎÚ{ TÒGKýÕú´ôcÖÛN2EF‚IòÈÏæþa}{–,4é,FÆ2«ZôW³FŸd³‹KZc>ÑpÉ^ÏðGPZ(ZÉ.Ê/ldŽR‡Njí°,P1©bY)bGx=Wž™ó˘2y&î%š *y¡ÎH»+™›yæéÐz%Bä6„D¥fvé¯ö,@å$LQ^<ÒÊÈä\£Ëjûàxú Ì3:nš>›Ú³™ßxèNÑ@´ÐV$9’s1Æ0£ùDGK6æè”ê/Ò‰×ë½™YNÉZ"žÒ–€» çˆç9¥ÖQH0•àd~Z\ÈdìßñØO‹šœK^"Ý˯D6šþÒ
¦Ìüu+Á¡ûÞŒTJWŸfŽn9H:™ ù9k
¡$gU&S<æ8Ÿáõ{ºÐ¹˜ 5f:âq!Çf~cÄú‹ ZØŠöt~
aafê~ TKeÑs‰?X@ò·73©‰0î‚ÐQy\wà–ƒ˜BA!l‡:B®'¿éàèõfž$ic!ÓMHò3Œ 2¯wVt|æYÉ…