| .Rhistory | .Rhistory | ||||
| .RData | .RData | ||||
| .Rproj.user | .Rproj.user | ||||
| inst/doc |
| Package: ggpomological | Package: ggpomological | ||||
| Version: 0.1.1 | |||||
| Version: 0.1.2 | |||||
| Title: Pomological plot themes for ggplot2 | Title: Pomological plot themes for ggplot2 | ||||
| Description: Pomological plot themes and scales for ggplot2 (in progress) | Description: Pomological plot themes and scales for ggplot2 (in progress) | ||||
| Authors@R: person("Garrick", "Aden-Buie", , "g.adenbuie@gmail.com", c("aut", "cre")) | Authors@R: person("Garrick", "Aden-Buie", , "g.adenbuie@gmail.com", c("aut", "cre")) | ||||
| Imports: | Imports: | ||||
| magick, | magick, | ||||
| extrafont | extrafont | ||||
| Suggests: | |||||
| knitr, | |||||
| rmarkdown, | |||||
| dplyr, | |||||
| here | |||||
| VignetteBuilder: knitr |
| # ggpomological 0.1.1 | |||||
| # ggpomological 0.1 | |||||
| ## v0.1.2 | |||||
| * Copied README to `vignettes/ggpomological`. | |||||
| ## v0.1.1 | |||||
| * Do not mess with fonts as default values of `theme_pomological()`. Created `theme_pomological_fancy()` as wrapper with fancy font defaults instead. | * Do not mess with fonts as default values of `theme_pomological()`. Created `theme_pomological_fancy()` as wrapper with fancy font defaults instead. |
| chunk_output_type: console | chunk_output_type: console | ||||
| --- | --- | ||||
| ```{r setup, include=FALSE} | |||||
| knitr::opts_chunk$set(echo = TRUE, fig.width=8, fig.height=5) | |||||
| library(ggpomological) | |||||
| library(dplyr) | |||||
| ``` | |||||
| <!-- Links --> | |||||
| [rstudioconf]: https://www.rstudio.com/conference/ | |||||
| [t-aronatkins]: https://twitter.com/aronatkins | |||||
| [rsconf-slides]: https://github.com/rstudio/rstudio-conf/tree/master/2018/Fruit_For_Thought--Aron_Atkins | |||||
| [rsconf-video]: https://youtu.be/Ol1FjFR2IMU?t=5h21m15s | |||||
| [usda-pom]: https://usdawatercolors.nal.usda.gov/pom | |||||
| [t-pomological]: https://twitter.com/pomological | |||||
| [magick]: https://cran.r-project.org/web/packages/magick/index.html | |||||
| This package provides a ggplot2 theme inspired by the [USDA Pomological Watercolors collection][usda-pom] and by Aron Atkins's ([\@aronatkins][t-aronatkins]) [talk on parameterized RMarkdown][rsconf-video] at [rstudio::conf 2018][rstudioconf]. | |||||
| ```{r header-demo, echo=FALSE, message=FALSE, warning=FALSE} | |||||
| fruits <- c("Apple", "Apricot", "Banana", "Fig", "Cherry", "Kiwi", "Grape", "Mango", "Papaya", "Orange", "Peach", "Pear") | |||||
| readr::read_tsv("https://cs.joensuu.fi/sipu/datasets/Compound.txt", col_names = FALSE) %>% | |||||
| filter(X3 < 10) %>% | |||||
| mutate(X3 = sample(fruits, length(unique(X3)))[X3]) %>% | |||||
| { | |||||
| ggplot(., aes(x = X1, y = X2, color = X3)) + | |||||
| geom_point() + | |||||
| labs(x = "Space", y = "Time", | |||||
| color = "Fruit", title = "ggpomological") + | |||||
| scale_color_pomological() + | |||||
| theme_pomological_fancy() | |||||
| } %>% | |||||
| paint_pomological(res = 110) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/ggpomological.png") | |||||
| ``` | |||||
|  | |||||
| ^[U.S. Department of Agriculture Pomological Watercolor Collection. Rare and Special Collections, National Agricultural Library, Beltsville, MD 20705] | |||||
| ## Installation | ## Installation | ||||
| install.packages("devtools") | install.packages("devtools") | ||||
| devtools::install_github("gadenbuie/ggpomological") | devtools::install_github("gadenbuie/ggpomological") | ||||
| ``` | |||||
| ## Color Palette | |||||
| The colors for this theme were drawn from many images from the [USDA Pomological Watercolors collection][usda-pom], I chose just a few that I thought worked well together for color and fill scales | |||||
| ```{r} | |||||
| scales::show_col(ggpomological:::pomological_palette) | |||||
| ``` | |||||
| and a few colors for the plot background and decoration | |||||
| ```{r} | |||||
| scales::show_col(unlist(ggpomological:::pomological_base)) | |||||
| ``` | |||||
| I've also included a [css file](inst/pomological.css) with the complete collection of color samples. | |||||
| ## Setup theme and scales | |||||
| There are three theme-generating functions: | |||||
| - `theme_pomological()` sets the plot theme to be representative of the paper and styling of the watercolors and includes a paper-colored background, | |||||
| - `theme_pomological_plain()` has the same styling, just with a transparent (or white) background, | |||||
| - `theme_pomological_fancy()` has the paper-colored background and defaults to a fancy handwritten font ([Homemade Apple](https://fonts.google.com/specimen/Homemade+Apple/)). | |||||
| For color and fill scales, **ggpomological** provides `scale_color_pomological()` and `scale_fill_pomological()`. | |||||
| In the future, I might revisit this package to | |||||
| 1. Increase colors in discrete scale | |||||
| 2. Setup paired color scales. Lots of great color pairs in the extracted colors. | |||||
| 3. Set up continuous scale colors (we'll see...) | |||||
| ## Fonts | |||||
| A handwriting font is needed for the fully authentic pomological look, and I found a few from Google Fonts that fit the bill. | |||||
| - [Mr. De Haviland](https://fonts.google.com/specimen/Mr+De+Haviland) | |||||
| - [Homemade Apple](https://fonts.google.com/specimen/Homemade+Apple/) | |||||
| - [Marck Script](https://fonts.google.com/specimen/Marck+Script/) | |||||
| - [Mr. Bedfort](https://fonts.google.com/specimen/Mr+Bedfort/) | |||||
| Alternatively, use something like [calligrapher.com](https://www.calligraphr.com/) to create your own handwriting font! | |||||
| But fonts can be painful in R, so the base functions -- `theme_pomological()` and `theme_pomological_plain()` -- don't change the font by default. | |||||
| To opt into the full pomological effect, use `theme_pomological_fancy()` which is just an alias for `theme_pomological(base_family = "Homemade Apple", base_size = 16)`. | |||||
| ## Add paper background! | |||||
| **ggpomological** also provides a function named `paint_pomological` that uses the [`magick`][magick] package to add a pomological watercolor paper background and a subtle texture overlay. | |||||
| ## Demo! | |||||
| We'll need ggplot2 (loaded with **ggpomological**) and dplyr | |||||
| ```r | |||||
| library(ggpomological) | |||||
| library(dplyr) | |||||
| ``` | |||||
| **Warning**: If you don't have the [above fonts](#fonts) installed, you'll get an error message with a lot of warnings when running the below examples. Just replace `theme_pomological("Homemade Apple", 16)` with `theme_pomological()` for the basic theme without the crazy fonts. | |||||
| ### Basic iris plot | |||||
| ```{r plot-demo} | |||||
| # Base plot | |||||
| basic_iris_plot <- ggplot(iris) + | |||||
| aes(x = Sepal.Length, y = Sepal.Width, color = Species) + | |||||
| geom_point(size = 2) | |||||
| # Just your standard Iris plot | |||||
| basic_iris_plot | |||||
| # With pomological colors | |||||
| basic_iris_plot <- basic_iris_plot + scale_color_pomological() | |||||
| basic_iris_plot | |||||
| # With pomological theme | |||||
| basic_iris_plot + theme_pomological() | |||||
| # With transparent background | |||||
| basic_iris_plot + theme_pomological_plain() | |||||
| # Or with "fancy" pomological settings | |||||
| pomological_iris <- basic_iris_plot + theme_pomological_fancy() | |||||
| # Painted! | |||||
| paint_pomological(pomological_iris, res = 110) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-demo-painted.png") | |||||
| ``` | |||||
|  | |||||
| ### Stacked bar chart | |||||
| ```{r plot-bar-chart} | |||||
| stacked_bar_plot <- ggplot(diamonds) + | |||||
| aes(price, fill = cut) + | |||||
| geom_histogram(binwidth = 850) + | |||||
| xlab('Price (USD)') + | |||||
| ylab('Count') + | |||||
| ggtitle("ggpomological") + | |||||
| scale_x_continuous(label = scales::dollar_format()) + | |||||
| scale_fill_pomological() | |||||
| stacked_bar_plot + theme_pomological("Homemade Apple", 16) | |||||
| paint_pomological( | |||||
| stacked_bar_plot + theme_pomological_fancy(), | |||||
| res = 110 | |||||
| ) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-bar-chart-painted.png") | |||||
| # To include the vignette | |||||
| devtools::install_github("gadenbuie/ggpomological", build_vignettes=TRUE) | |||||
| ``` | ``` | ||||
|  | |||||
| ## Introduction | |||||
| ### Density Plot | |||||
| ```{r plot-density} | |||||
| density_plot <- mtcars %>% | |||||
| mutate(cyl = factor(cyl)) %>% | |||||
| ggplot() + | |||||
| aes(mpg, fill = cyl, color = cyl)+ | |||||
| geom_density(alpha = 0.75) + | |||||
| labs(fill = 'Cylinders', colour = 'Cylinders', x = 'MPG', y = 'Density') + | |||||
| scale_color_pomological() + | |||||
| scale_fill_pomological() | |||||
| density_plot + theme_pomological("Homemade Apple", 16) | |||||
| paint_pomological( | |||||
| density_plot + theme_pomological_fancy(), | |||||
| res = 110 | |||||
| ) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-density-demo-painted.png") | |||||
| ```{r readme, child = "vignettes/ggpomological.Rmd", out.dir="Readme_files/figure-gfm/"} | |||||
| ``` | ``` | ||||
|  | |||||
| ### Points and lines | |||||
| Data from the Texas Housing | |||||
| ```{r plot-full-bar-stack} | |||||
| big_volume_cities <- txhousing %>% | |||||
| group_by(city) %>% | |||||
| summarize(mean_volume = mean(volume, na.rm = TRUE)) %>% | |||||
| arrange(-mean_volume) %>% | |||||
| top_n(length(ggpomological:::pomological_palette)) %>% | |||||
| pull(city) | |||||
| full_bar_stack_plot <- txhousing %>% | |||||
| filter(city %in% big_volume_cities) %>% | |||||
| group_by(city, year) %>% | |||||
| summarize(mean_volume = mean(volume, na.rm = TRUE)) %>% | |||||
| ungroup %>% | |||||
| mutate(city = factor(city, big_volume_cities)) %>% | |||||
| ggplot() + | |||||
| aes(year, mean_volume, fill = city, group = city) + | |||||
| geom_col(position = 'fill', width = 0.9) + | |||||
| labs(x = 'City', y = 'Mean Volume', color = 'City') + | |||||
| theme(panel.grid.minor.x = element_blank()) + | |||||
| scale_fill_pomological() | |||||
| full_bar_stack_plot + theme_pomological("Homemade Apple", 16) | |||||
| paint_pomological( | |||||
| full_bar_stack_plot + theme_pomological_fancy(), | |||||
| res = 110 | |||||
| ) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-full-bar-stack-painted.png") | |||||
| ``` | |||||
|  | |||||
| ### One last plot | |||||
| Using my own handwriting and the `ggridges` package. | |||||
| ```{r plot-ridges} | |||||
| ridges_pomological <- ggplot(diamonds) + | |||||
| aes(x = carat, y = clarity, color = clarity, fill = clarity) + | |||||
| ggridges::geom_density_ridges(alpha = 0.75) + | |||||
| theme_pomological( | |||||
| base_family = 'gWriting', | |||||
| base_size = 20, | |||||
| base_theme = ggridges::theme_ridges() | |||||
| ) + | |||||
| scale_fill_pomological() + | |||||
| scale_color_pomological() | |||||
| paint_pomological(ridges_pomological, res = 110) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-ridges-painted.png") | |||||
| ``` | |||||
|  |
| ================ | ================ | ||||
| Garrick Aden-Buie | Garrick Aden-Buie | ||||
| <!-- Links --> | |||||
| This package provides a ggplot2 theme inspired by the [USDA Pomological | |||||
| Watercolors collection](https://usdawatercolors.nal.usda.gov/pom) and by | |||||
| Aron Atkins’s ([@aronatkins](https://twitter.com/aronatkins)) [talk on | |||||
| parameterized RMarkdown](https://youtu.be/Ol1FjFR2IMU?t=5h21m15s) at | |||||
| [rstudio::conf 2018](https://www.rstudio.com/conference/). | |||||
|  | |||||
| \[1\] | |||||
| ## Installation | ## Installation | ||||
| This package isn’t on CRAN, so you’ll need to use the devtools package | This package isn’t on CRAN, so you’ll need to use the devtools package | ||||
| install.packages("devtools") | install.packages("devtools") | ||||
| devtools::install_github("gadenbuie/ggpomological") | devtools::install_github("gadenbuie/ggpomological") | ||||
| # To include the vignette | |||||
| devtools::install_github("gadenbuie/ggpomological", build_vignettes=TRUE) | |||||
| ``` | ``` | ||||
| ## Introduction | |||||
| <!-- Links --> | |||||
| This package provides a ggplot2 theme inspired by the [USDA Pomological | |||||
| Watercolors collection](https://usdawatercolors.nal.usda.gov/pom) and by | |||||
| Aron Atkins’s ([@aronatkins](https://twitter.com/aronatkins)) [talk on | |||||
| parameterized RMarkdown](https://youtu.be/Ol1FjFR2IMU?t=5h21m15s) at | |||||
| [rstudio::conf 2018](https://www.rstudio.com/conference/). | |||||
| <!-- --> | |||||
| <!-- -->[^1] | |||||
| ## Color Palette | ## Color Palette | ||||
| The colors for this theme were drawn from many images from the [USDA | The colors for this theme were drawn from many images from the [USDA | ||||
| scales::show_col(ggpomological:::pomological_palette) | scales::show_col(ggpomological:::pomological_palette) | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| and a few colors for the plot background and decoration | and a few colors for the plot background and decoration | ||||
| basic_iris_plot | basic_iris_plot | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| ``` r | ``` r | ||||
| # With pomological colors | # With pomological colors | ||||
| basic_iris_plot <- basic_iris_plot + scale_color_pomological() | basic_iris_plot <- basic_iris_plot + scale_color_pomological() | ||||
| basic_iris_plot | basic_iris_plot | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| ``` r | ``` r | ||||
| # With pomological theme | # With pomological theme | ||||
| basic_iris_plot + theme_pomological() | basic_iris_plot + theme_pomological() | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| ``` r | ``` r | ||||
| # With transparent background | # With transparent background | ||||
| basic_iris_plot + theme_pomological_plain() | basic_iris_plot + theme_pomological_plain() | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| ``` r | ``` r | ||||
| # Or with "fancy" pomological settings | # Or with "fancy" pomological settings | ||||
| pomological_iris <- basic_iris_plot + theme_pomological_fancy() | pomological_iris <- basic_iris_plot + theme_pomological_fancy() | ||||
| # Painted! | # Painted! | ||||
| paint_pomological(pomological_iris, res = 110) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-demo-painted.png") | |||||
| paint_pomological(pomological_iris, res = 110) | |||||
| ``` | ``` | ||||
|  | |||||
| <!-- --> | |||||
| ### Stacked bar chart | ### Stacked bar chart | ||||
| stacked_bar_plot + theme_pomological("Homemade Apple", 16) | stacked_bar_plot + theme_pomological("Homemade Apple", 16) | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| ``` r | ``` r | ||||
| paint_pomological( | paint_pomological( | ||||
| stacked_bar_plot + theme_pomological_fancy(), | stacked_bar_plot + theme_pomological_fancy(), | ||||
| res = 110 | res = 110 | ||||
| ) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-bar-chart-painted.png") | |||||
| ) | |||||
| ``` | ``` | ||||
|  | |||||
| <!-- --> | |||||
| ### Density Plot | ### Density Plot | ||||
| density_plot + theme_pomological("Homemade Apple", 16) | density_plot + theme_pomological("Homemade Apple", 16) | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| ``` r | ``` r | ||||
| paint_pomological( | paint_pomological( | ||||
| density_plot + theme_pomological_fancy(), | density_plot + theme_pomological_fancy(), | ||||
| res = 110 | res = 110 | ||||
| ) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-density-demo-painted.png") | |||||
| ) | |||||
| ``` | ``` | ||||
|  | |||||
| <!-- --> | |||||
| ### Points and lines | ### Points and lines | ||||
| arrange(-mean_volume) %>% | arrange(-mean_volume) %>% | ||||
| top_n(length(ggpomological:::pomological_palette)) %>% | top_n(length(ggpomological:::pomological_palette)) %>% | ||||
| pull(city) | pull(city) | ||||
| ``` | |||||
| ## Selecting by mean_volume | |||||
| #> Selecting by mean_volume | |||||
| ``` r | |||||
| full_bar_stack_plot <- txhousing %>% | full_bar_stack_plot <- txhousing %>% | ||||
| filter(city %in% big_volume_cities) %>% | filter(city %in% big_volume_cities) %>% | ||||
| group_by(city, year) %>% | group_by(city, year) %>% | ||||
| full_bar_stack_plot + theme_pomological("Homemade Apple", 16) | full_bar_stack_plot + theme_pomological("Homemade Apple", 16) | ||||
| ``` | ``` | ||||
| <!-- --> | |||||
| <!-- --> | |||||
| ``` r | ``` r | ||||
| paint_pomological( | paint_pomological( | ||||
| full_bar_stack_plot + theme_pomological_fancy(), | full_bar_stack_plot + theme_pomological_fancy(), | ||||
| res = 110 | res = 110 | ||||
| ) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-full-bar-stack-painted.png") | |||||
| ) | |||||
| ``` | ``` | ||||
|  | |||||
| <!-- --> | |||||
| ### One last plot | ### One last plot | ||||
| scale_fill_pomological() + | scale_fill_pomological() + | ||||
| scale_color_pomological() | scale_color_pomological() | ||||
| paint_pomological(ridges_pomological, res = 110) %>% | |||||
| magick::image_write("Readme_files/figure-gfm/plot-ridges-painted.png") | |||||
| paint_pomological(ridges_pomological, res = 110) | |||||
| #> Picking joint bandwidth of 0.057 | |||||
| ``` | ``` | ||||
| ## Picking joint bandwidth of 0.057 | |||||
|  | |||||
| <!-- --> | |||||
| 1. U.S. Department of Agriculture Pomological Watercolor Collection. | 1. U.S. Department of Agriculture Pomological Watercolor Collection. | ||||
| Rare and Special Collections, National Agricultural Library, | Rare and Special Collections, National Agricultural Library, |
| BuildType: Package | BuildType: Package | ||||
| PackageUseDevtools: Yes | PackageUseDevtools: Yes | ||||
| PackageInstallArgs: --no-multiarch --with-keep.source | PackageInstallArgs: --no-multiarch --with-keep.source | ||||
| PackageRoxygenize: rd,namespace,vignette |
| *.html | |||||
| *.R |
| --- | |||||
| title: "ggpomological" | |||||
| author: "Garrick Aden-Buie" | |||||
| date: "`r Sys.Date()`" | |||||
| output: rmarkdown::html_vignette | |||||
| vignette: > | |||||
| %\VignetteIndexEntry{ggpomological} | |||||
| %\VignetteEngine{knitr::rmarkdown} | |||||
| %\VignetteEncoding{UTF-8} | |||||
| --- | |||||
| ```{r setup, include = FALSE} | |||||
| knitr::opts_chunk$set( | |||||
| collapse = TRUE, | |||||
| comment = "#>" | |||||
| ) | |||||
| knitr::opts_chunk$set(echo = TRUE, fig.width=8, fig.height=5) | |||||
| library(ggpomological) | |||||
| library(dplyr) | |||||
| ``` | |||||
| <!-- Links --> | |||||
| [rstudioconf]: https://www.rstudio.com/conference/ | |||||
| [t-aronatkins]: https://twitter.com/aronatkins | |||||
| [rsconf-slides]: https://github.com/rstudio/rstudio-conf/tree/master/2018/Fruit_For_Thought--Aron_Atkins | |||||
| [rsconf-video]: https://youtu.be/Ol1FjFR2IMU?t=5h21m15s | |||||
| [usda-pom]: https://usdawatercolors.nal.usda.gov/pom | |||||
| [t-pomological]: https://twitter.com/pomological | |||||
| [magick]: https://cran.r-project.org/web/packages/magick/index.html | |||||
| This package provides a ggplot2 theme inspired by the [USDA Pomological Watercolors collection][usda-pom] and by Aron Atkins's ([@aronatkins][t-aronatkins]) [talk on parameterized RMarkdown][rsconf-video] at [rstudio::conf 2018][rstudioconf]. | |||||
| ```{r ggpomological, echo=FALSE, message=FALSE, warning=FALSE} | |||||
| fruits <- c("Apple", "Apricot", "Banana", "Fig", "Cherry", "Kiwi", "Grape", "Mango", "Papaya", "Orange", "Peach", "Pear") | |||||
| readr::read_tsv("https://cs.joensuu.fi/sipu/datasets/Compound.txt", col_names = FALSE) %>% | |||||
| filter(X3 < 10) %>% | |||||
| mutate(X3 = sample(fruits, length(unique(X3)))[X3]) %>% | |||||
| { | |||||
| ggplot(., aes(x = X1, y = X2, color = X3)) + | |||||
| geom_point() + | |||||
| labs(x = "Space", y = "Time", | |||||
| color = "Fruit", title = "ggpomological") + | |||||
| scale_color_pomological() + | |||||
| theme_pomological_fancy() | |||||
| } %>% | |||||
| paint_pomological(res = 110) | |||||
| ``` | |||||
| `r knitr::include_graphics(here::here("Readme_files/pom-examples.jpg"))`^[U.S. Department of Agriculture Pomological Watercolor Collection. Rare and Special Collections, National Agricultural Library, Beltsville, MD 20705] | |||||
| ## Color Palette | |||||
| The colors for this theme were drawn from many images from the [USDA Pomological Watercolors collection][usda-pom], I chose just a few that I thought worked well together for color and fill scales | |||||
| ```{r} | |||||
| scales::show_col(ggpomological:::pomological_palette) | |||||
| ``` | |||||
| and a few colors for the plot background and decoration | |||||
| ```{r} | |||||
| scales::show_col(unlist(ggpomological:::pomological_base)) | |||||
| ``` | |||||
| I've also included a [css file](inst/pomological.css) with the complete collection of color samples. | |||||
| ## Setup theme and scales | |||||
| There are three theme-generating functions: | |||||
| - `theme_pomological()` sets the plot theme to be representative of the paper and styling of the watercolors and includes a paper-colored background, | |||||
| - `theme_pomological_plain()` has the same styling, just with a transparent (or white) background, | |||||
| - `theme_pomological_fancy()` has the paper-colored background and defaults to a fancy handwritten font ([Homemade Apple](https://fonts.google.com/specimen/Homemade+Apple/)). | |||||
| For color and fill scales, **ggpomological** provides `scale_color_pomological()` and `scale_fill_pomological()`. | |||||
| In the future, I might revisit this package to | |||||
| 1. Increase colors in discrete scale | |||||
| 2. Setup paired color scales. Lots of great color pairs in the extracted colors. | |||||
| 3. Set up continuous scale colors (we'll see...) | |||||
| ## Fonts | |||||
| A handwriting font is needed for the fully authentic pomological look, and I found a few from Google Fonts that fit the bill. | |||||
| - [Mr. De Haviland](https://fonts.google.com/specimen/Mr+De+Haviland) | |||||
| - [Homemade Apple](https://fonts.google.com/specimen/Homemade+Apple/) | |||||
| - [Marck Script](https://fonts.google.com/specimen/Marck+Script/) | |||||
| - [Mr. Bedfort](https://fonts.google.com/specimen/Mr+Bedfort/) | |||||
| Alternatively, use something like [calligrapher.com](https://www.calligraphr.com/) to create your own handwriting font! | |||||
| But fonts can be painful in R, so the base functions -- `theme_pomological()` and `theme_pomological_plain()` -- don't change the font by default. | |||||
| To opt into the full pomological effect, use `theme_pomological_fancy()` which is just an alias for `theme_pomological(base_family = "Homemade Apple", base_size = 16)`. | |||||
| ## Add paper background! | |||||
| **ggpomological** also provides a function named `paint_pomological` that uses the [`magick`][magick] package to add a pomological watercolor paper background and a subtle texture overlay. | |||||
| ## Demo! | |||||
| We'll need ggplot2 (loaded with **ggpomological**) and dplyr | |||||
| ```r | |||||
| library(ggpomological) | |||||
| library(dplyr) | |||||
| ``` | |||||
| **Warning**: If you don't have the [above fonts](#fonts) installed, you'll get an error message with a lot of warnings when running the below examples. Just replace `theme_pomological("Homemade Apple", 16)` with `theme_pomological()` for the basic theme without the crazy fonts. | |||||
| ### Basic iris plot | |||||
| ```{r plot-demo} | |||||
| # Base plot | |||||
| basic_iris_plot <- ggplot(iris) + | |||||
| aes(x = Sepal.Length, y = Sepal.Width, color = Species) + | |||||
| geom_point(size = 2) | |||||
| # Just your standard Iris plot | |||||
| basic_iris_plot | |||||
| # With pomological colors | |||||
| basic_iris_plot <- basic_iris_plot + scale_color_pomological() | |||||
| basic_iris_plot | |||||
| # With pomological theme | |||||
| basic_iris_plot + theme_pomological() | |||||
| # With transparent background | |||||
| basic_iris_plot + theme_pomological_plain() | |||||
| # Or with "fancy" pomological settings | |||||
| pomological_iris <- basic_iris_plot + theme_pomological_fancy() | |||||
| # Painted! | |||||
| paint_pomological(pomological_iris, res = 110) | |||||
| ``` | |||||
| ### Stacked bar chart | |||||
| ```{r plot-bar-chart} | |||||
| stacked_bar_plot <- ggplot(diamonds) + | |||||
| aes(price, fill = cut) + | |||||
| geom_histogram(binwidth = 850) + | |||||
| xlab('Price (USD)') + | |||||
| ylab('Count') + | |||||
| ggtitle("ggpomological") + | |||||
| scale_x_continuous(label = scales::dollar_format()) + | |||||
| scale_fill_pomological() | |||||
| stacked_bar_plot + theme_pomological("Homemade Apple", 16) | |||||
| paint_pomological( | |||||
| stacked_bar_plot + theme_pomological_fancy(), | |||||
| res = 110 | |||||
| ) | |||||
| ``` | |||||
| ### Density Plot | |||||
| ```{r plot-density} | |||||
| density_plot <- mtcars %>% | |||||
| mutate(cyl = factor(cyl)) %>% | |||||
| ggplot() + | |||||
| aes(mpg, fill = cyl, color = cyl)+ | |||||
| geom_density(alpha = 0.75) + | |||||
| labs(fill = 'Cylinders', colour = 'Cylinders', x = 'MPG', y = 'Density') + | |||||
| scale_color_pomological() + | |||||
| scale_fill_pomological() | |||||
| density_plot + theme_pomological("Homemade Apple", 16) | |||||
| paint_pomological( | |||||
| density_plot + theme_pomological_fancy(), | |||||
| res = 110 | |||||
| ) | |||||
| ``` | |||||
| ### Points and lines | |||||
| Data from the Texas Housing | |||||
| ```{r plot-full-bar-stack} | |||||
| big_volume_cities <- txhousing %>% | |||||
| group_by(city) %>% | |||||
| summarize(mean_volume = mean(volume, na.rm = TRUE)) %>% | |||||
| arrange(-mean_volume) %>% | |||||
| top_n(length(ggpomological:::pomological_palette)) %>% | |||||
| pull(city) | |||||
| full_bar_stack_plot <- txhousing %>% | |||||
| filter(city %in% big_volume_cities) %>% | |||||
| group_by(city, year) %>% | |||||
| summarize(mean_volume = mean(volume, na.rm = TRUE)) %>% | |||||
| ungroup %>% | |||||
| mutate(city = factor(city, big_volume_cities)) %>% | |||||
| ggplot() + | |||||
| aes(year, mean_volume, fill = city, group = city) + | |||||
| geom_col(position = 'fill', width = 0.9) + | |||||
| labs(x = 'City', y = 'Mean Volume', color = 'City') + | |||||
| theme(panel.grid.minor.x = element_blank()) + | |||||
| scale_fill_pomological() | |||||
| full_bar_stack_plot + theme_pomological("Homemade Apple", 16) | |||||
| paint_pomological( | |||||
| full_bar_stack_plot + theme_pomological_fancy(), | |||||
| res = 110 | |||||
| ) | |||||
| ``` | |||||
| ### One last plot | |||||
| Using my own handwriting and the `ggridges` package. | |||||
| ```{r plot-ridges} | |||||
| ridges_pomological <- ggplot(diamonds) + | |||||
| aes(x = carat, y = clarity, color = clarity, fill = clarity) + | |||||
| ggridges::geom_density_ridges(alpha = 0.75) + | |||||
| theme_pomological( | |||||
| base_family = 'gWriting', | |||||
| base_size = 20, | |||||
| base_theme = ggridges::theme_ridges() | |||||
| ) + | |||||
| scale_fill_pomological() + | |||||
| scale_color_pomological() | |||||
| paint_pomological(ridges_pomological, res = 110) | |||||
| ``` | |||||