Setting color and fill Scales
This lesson is called Setting color and fill Scales, part of the Fundamentals of R course. This lesson is called Setting color and fill Scales, part of the Fundamentals of R course.
Transcript
Click on the transcript to go to that point in the video. Please note that transcripts are auto generated and may contain minor inaccuracies.
View code shown in video
# Load Packages -----------------------------------------------------------
library(tidyverse)
# Import Data -------------------------------------------------------------
penguins <- read_csv("penguins.csv")
# Setting color and fill Scales -------------------------------------------
# We can change the color or fill scale using a scale function.
# The function scale_color_manual() allows us to manually specify colors to use.
ggplot(data = penguins,
mapping = aes(x = bill_length_mm,
y = bill_depth_mm,
color = island)) +
geom_point() +
scale_color_manual(values = c("orange", "dodgerblue", "green"))
# We can also use built-in palettes.
# The scale_color_viridis_d() function (the d means it works with discrete data)
# is a great way to get colorblind-friendly palettes.
ggplot(data = penguins,
mapping = aes(x = bill_length_mm,
y = bill_depth_mm,
color = island)) +
geom_point() +
scale_color_viridis_d()
# The scale_color_viridis_d() function also has several built-in palettes.
# You can use them as follows.
ggplot(data = penguins,
mapping = aes(x = bill_length_mm,
y = bill_depth_mm,
color = island)) +
geom_point() +
scale_color_viridis_d(option = "A")
ggplot(data = penguins,
mapping = aes(x = bill_length_mm,
y = bill_depth_mm,
color = island)) +
geom_point() +
scale_color_viridis_d(option = "H")
# There are many other built-in palettes. Just type scale_color_ and RStudio
# will autocomplete some other options for you.
# We can use scale_fill_viridis_d() for the fill aesthetic property.
ggplot(data = penguin_bill_length_by_island,
mapping = aes(x = island,
y = mean_bill_length,
fill = island)) +
geom_col() +
scale_fill_viridis_d()
Your Turn
# Load Packages -----------------------------------------------------------
library(tidyverse)
# Import Data -------------------------------------------------------------
penguins <- read_csv("penguins.csv")
# Setting color and fill Scales -------------------------------------------
# Take your scatterplot that you just made and add a scale using scale_color_manual().
# You can find a list of all colors you can use here:
# https://www.datanovia.com/en/blog/awesome-list-of-657-r-color-names/
# YOUR CODE HERE
# Now update the last bar chart you made by manually specifying colors of the bars
# YOUR CODE HERE
# Update your bar chart using the scale_fill_viridis_d() function instead of
# scale_fill_manual()
# YOUR CODE HERE
Learn More
The PDF shown in the video has gone missing, but you can see a list of all named colors here.
There are a lot of other packages that give you color/fill palettes you can work with. See especially the paleteer package, which is a meta palette package, give you access to palettes from many other packages.
Have any questions? Put them below and we will help you out!
Course Content
34 Lessons
1
The Grammar of Graphics
04:39
2
Scatterplots
03:46
3
Histograms
05:47
4
Bar Charts
06:37
5
Setting color and fill Aesthetic Properties
02:39
6
Setting color and fill Scales
05:40
7
Setting x and y Scales
03:09
8
Adding Text to Plots
07:32
9
Plot Labels
03:57
10
Themes
02:19
11
Facets
03:12
12
Save Plots
02:57
13
Bring it All Together (Data Visualization)
06:42
You need to be signed-in to comment on this post. Login.
Shadi Mahmoodi • October 13, 2023
Hi David, the link to the pdf is no longer working. Would you please post an updated one? thx
David Keyes Founder • October 13, 2023
Gah, it went missing! I just added a new link to a different website with that same info.
Dalton Bailey • March 27, 2024
Is there a way to save a custom color palette in RStudio? Say I want to use my company's branded colors, but don't want to have to type in the hex code each time.
David Keyes Founder • March 27, 2024
Yes, absolutely!
I recorded a video to show you how this works. I showed you a simple way to do this plus a more complicated way using custom functions.
You can find the code that I use in the video here.
Let me know if this helps!
Dalton Bailey • March 27, 2024
This is a perfect answer to what I was wondering. I was not looking forward to typing in hex codes each time I wanted to make some branded visuals. Thanks so much!
David Keyes Founder • March 27, 2024
Glad it was helpful! And, at the risk of overwhelming you, I'll mention that, if you want to go to the next level, you can create a custom package that has these custom functions. That way, you load your package and then have access to your custom functions.
We regularly do this for clients. See, for example, the
omni
package. This is obviously way more advanced than what I demonstrated, but I thought you might enjoy seeing what's possible.