This is a small package containing functions for producing consistent documents and figures for scientific reports.
You can install pmthemes() from github with:
# install.packages("devtools")
devtools::install_github("petermacp/pmthemes")
The theme_pm()
function is the workhorse of the package, providing a
simple theme for scientific presentations and documents.
library(ggplot2)
library(palmerpenguins)
library(pmthemes)
ggplot(data = penguins, aes(x = flipper_length_mm, y = body_mass_g)) +
geom_point(aes(color = species,
shape = species),
size = 2) +
facet_grid(~species) +
scale_color_manual(values = c("darkorange","darkorchid","cyan4")) +
labs(title = "This is a test graph",
subtitle = "Showing theme_pm()",
caption = "Data from the palmerpenguins package") +
theme_pm()
#> Warning: Removed 2 rows containing missing values (geom_point).
The scale_colour_rail()
and scale_fill_rail()
functions are used to
define colour palettes for aesthetics specified in the scale name.
Much of the code for extracting colour palettes from images using a k-means clustering images was taken from: http://www.milanor.net/blog/build-color-palette-from-image-with-paletter/
There are seven different palettes, each based on a vintage British railway poster:
An example using the cornwall
palette.
library(ggplot2)
library(pmthemes)
ggplot(data = diamonds) +
geom_bar(aes(x = cut, fill = cut)) +
theme_pm() +
scale_fill_rail(palette="cornwall")
Here is the harrogate
palette.
library(ggplot2)
library(pmthemes)
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = cut)) +
theme_pm() +
scale_fill_rail(palette="harrogate")
…and the penzance
palette.
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = cut)) +
theme_pm() +
scale_fill_rail(palette="penzance")
The pmthemes
package will additionally install an R Markdown template
for writing scientific analysis report.
To use the package, run: library(pmthemes)
, then File/New File/R
Markdown/From template
. Then click on the Analysis template
file to
open a new R Markdown document.
You will need to modify the yaml header to provide your own information.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.