Skip to content
baptiste edited this page Jul 9, 2011 · 22 revisions

Proposed themes and theme enhancements.

theme_minimal

minimalistic theme to maximize data/ink ratio, so as to focus more strongly on the data glyphs. It also serves to facilitate post-processing in graphic design software (Illustrator, Inkscape)

     theme_minimal <- function (base_size = 12, base_family = "") 
     {
         structure(list(axis.line = theme_blank(), axis.text.x = theme_text(family = base_family, 
             size = base_size * 0.8, lineheight = 0.9, vjust = 1), 
             axis.text.y = theme_text(family = base_family, size = base_size * 
                 0.8, lineheight = 0.9, hjust = 1), axis.ticks = theme_segment(colour = "black", 
                 size = 0.2), axis.title.x = theme_text(family = base_family, 
                 size = base_size, vjust = 1), axis.title.y = theme_text(family = base_family, 
                 size = base_size, angle = 90, vjust = 0.5), axis.ticks.length = unit(0.3, 
                 "lines"), axis.ticks.margin = unit(0.5, "lines"), 
             legend.background = theme_rect(colour = NA), legend.key = theme_rect(colour = NA), 
             legend.key.size = unit(1.2, "lines"), legend.key.height = NA, 
             legend.key.width = NA, legend.text = theme_text(family = base_family, 
                 size = base_size * 0.8), legend.text.align = NA, 
             legend.title = theme_text(family = base_family, size = base_size * 
                 0.8, face = "bold", hjust = 0), legend.title.align = NA, 
             legend.position = "right", legend.direction = "vertical", 
             legend.box = NA, panel.background = theme_rect(fill = "white", 
                 colour = NA), panel.border = theme_rect(fill = NA, 
                 colour = "grey90"), panel.grid.major = theme_line(colour = "grey90", 
                 size = 0.2), panel.grid.minor = theme_line(colour = "grey98", 
                 size = 0.5), panel.margin = unit(0.25, "lines"), 
             strip.background = theme_rect(fill = NA, colour = NA), 
             strip.text.x = theme_text(family = base_family, size = base_size * 
                 0.8), strip.text.y = theme_text(family = base_family, 
                 size = base_size * 0.8, angle = -90), plot.background = theme_rect(colour = NA), 
             plot.title = theme_text(family = base_family, size = base_size * 
                 1.2), plot.margin = unit(c(1, 1, 0.5, 0.5), "lines")), 
             class = "options")
     }

theme_fullframe

Maximize the plotting area so as to extend over the full viewport. Axis labels and titles are masked; this theme is therefore limited to special graphs such as images where full control over the image size is required (e.g. for alignment with other graphical elements).

     theme_fullframe <- function(){
     
       structure(list(legend.position = "none",
                      panel.background = theme_blank(),
                      panel.grid.major = theme_blank(),
                      panel.grid.minor = theme_blank(),
                      panel.margin = unit(0,"null"),
                      plot.margin = rep(unit(0,"null"),4),
                      axis.ticks = theme_blank(),
                      axis.text.x = theme_blank(),
                      axis.text.y = theme_blank(),
                      axis.title.x = theme_blank(),
                      axis.title.y = theme_blank(),
                      axis.ticks.length = unit(0,"null"),
                      axis.ticks.margin = unit(0,"null")), class = "options")
       
     }

Note: The ggplot2 wiki is no longer maintained, please use the ggplot2 website instead!

Clone this wiki locally