Using R: setting a colour scheme in ggplot2
[This article was first published on R – On unicorns and genes, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Note to self: How to quickly set a colour scheme in ggplot2.
Imagine we have a series of plots that all need a uniform colour scale. The same category needs to have the same colour in all graphics, made possibly with different packages and by different people. Instead of hard-coding the colours and the order of categories, we can put them in a file, like so:
library(readr) colours <- read_csv("scale_colours.csv") # A tibble: 5 x 2 name colour 1 blue #d4b9da 2 red #c994c7 3 purple #df65b0 4 green #dd1c77 5 orange #980043
Now a plot with default colours, using some made-up data:
x <- 1:100 beta <- rnorm(5, 1, 0.5) stroop <- data.frame(x, sapply(beta, function(b) x * b + rnorm(100, 1, 10))) colnames(stroop)[2:6] <- c("orange", "blue", "red", "purple", "green") data_long <- pivot_longer(stroop, -x) plot_y <- qplot(x = x, y = value, colour = name, data = data_long) + theme_minimal() + theme(panel.grid = element_blank())
Now we can add the custom scale like this:
plot_y_colours <- plot_y + scale_colour_manual(limits = colours$name, values = colours$colour)
To leave a comment for the author, please follow the link and comment on their blog: R – On unicorns and genes.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.