Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 201839

Set a document-persistent ggplot2 color theme

$
0
0

I would like to define a color palette for every plot built in a markdown document. In essence this would overwrite the default choices.

There are several very old answers -- thanks for the links here and here suggested by @dww -- that solve for old versions (specifically calling out a solution on 0.8.2 when the modern release several major releases ahead, currently at 3.2.x).

I'll illustrate the closest use case, setting themes. In the case of general purpose themes, this is trivial: rather than appending + theme_minimal() on every plot, I can instead set the theme which persists across all plots.

library(ggplot2) 

d <- diamonds[sample(1:nrow(diamonds), 1000), ]

## without theming 
ggplot(d, aes(x=carat, y=price, color=clarity)) + 
  geom_point() + 
  theme_minimal() # must set this theme call for every plot 

## setting theme 
theme_set(theme_minimal())

ggplot(d, aes(x=carat, y=price, color=clarity)) + 
  geom_point()    # plot in theme, for all subsequent plots

Is there a similar, modification that exists to set the color palette throughout? For example, a theme-based replacement for calling,

ggplot(d, aes(x=carat, y=price, color=clarity)) + 
  geom_point() + 
  scale_color_brewer(palette='Set2') # requesting a global option to set this for all plots

The linked solution that does not depend on old versions instead overloads the entire ggplot function. That seems risky.

ggplot <- function(...) ggplot2::ggplot(...) + scale_color_brewer(palette = 'Set1')

Viewing all articles
Browse latest Browse all 201839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>