Scatterplots
This lesson is called Scatterplots, part of the R in 3 Months (Spring 2025) course. This lesson is called Scatterplots, part of the R in 3 Months (Spring 2025) 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")
# Scatterplots ------------------------------------------------------------
# We use geom_point() to make a scatterplot.
ggplot(data = penguins,
mapping = aes(x = bill_length_mm,
y = bill_depth_mm)) +
geom_point()
Your Turn
# Load Packages -----------------------------------------------------------
library(tidyverse)
# Import Data -------------------------------------------------------------
penguins <- read_csv("penguins.csv")
# Scatterplots ------------------------------------------------------------
# Make a scatterplot that shows flipper length on the x axis and body mass on the y axis.
# YOUR CODE HERE
Learn More
Claus Wilke talks about scatterplots in Chapter 12 of his book Fundamentals of Data Visualization. Michael Toth also has a long blog post about all of the ins and outs of making scatterplots in ggplot.
You can also find examples of code to make scatterplots on the Data to Viz website , the R Graph Gallery website , and in Chapter 5 of the R Graphics Cookbook.
Have any questions? Put them below and we will help you out!
Course Content
127 Lessons
1
Welcome to Getting Started with R
00:57
2
Install R
02:05
3
Install RStudio
02:14
4
Files in R
04:33
5
Projects
07:54
6
Packages
02:38
7
Import Data
05:24
8
Objects and Functions
03:16
9
Examine our Data
12:50
10
Import Our Data Again
07:11
11
Getting Help
07:46
12
Week 1 Live Session (Spring 2025)
1:03:11
1
Welcome to Fundamentals of R
01:36
2
Update Everything
02:45
3
Start a New Project
02:16
4
The Tidyverse
03:34
5
Pipes
04:15
6
select()
07:25
7
mutate()
04:25
8
filter()
10:05
9
summarize()
05:59
10
group_by() and summarize()
05:54
11
arrange()
02:07
12
Create a New Data Frame
03:58
13
Bring it All Together (Data Wrangling)
07:29
14
Week 2 Project Assignment
09:39
15
Week 2 Coworking Session (Spring 2025)
16
Week 2 Live Session (Spring 2025)
1:03:24
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
14
Week 3 Project Assignment
03:30
15
Week 3 Coworking Session (Spring 2025)
16
Week 3 Live Session (Spring 2025)
1:02:31
1
Downloading and Importing Data
10:32
2
Overview of Tidy Data
05:50
3
Tidy Data Rule #1: Every Column is a Variable
07:43
4
Tidy Data Rule #3: Every Cell is a Single Value
10:04
5
Tidy Data Rule #2: Every Row is an Observation
04:42
6
Week 6 Coworking Session (Spring 2025)
7
Week 6 Live Session (Spring 2025)
1:02:38
1
Best Practices in Data Visualization
03:44
2
Tidy Data
02:25
3
Pipe Data into ggplot
09:54
4
Reorder Plots to Highlight Findings
03:37
5
Line Charts
04:17
6
Use Color to Highlight Findings
09:16
7
Declutter
08:29
8
Add Descriptive Labels to Your Plots
09:10
9
Use Titles to Highlight Findings
08:14
10
Use Annotations to Explain
07:09
11
Week 9 Coworking Session (Spring 2025)
12
Week 9 Live Session (Spring 2025)
59:09
1
Advanced Markdown
06:43
2
Tables
18:36
3
Advanced YAML and Code Chunk Options
05:53
4
Inline R Code
04:42
5
Making Your Reports Shine: Word Edition
04:30
6
Making Your Reports Shine: PDF Edition
06:11
7
Making Your Reports Shine: HTML Edition
06:06
8
Presentations
10:12
9
Dashboards
05:38
10
Websites
06:43
11
Publishing Your Work
04:38
12
Quarto Extensions
05:50
13
Parameterized Reporting, Part 1
10:57
14
Parameterized Reporting, Part 2
05:11
15
Parameterized Reporting, Part 3
07:47
16
Week 12 Coworking Session (Spring 2025)
17
Week 12 Live Session (Spring 2025)
57:01
You need to be signed-in to comment on this post. Login.
Leo Gutknecht-Gmeiner • March 25, 2024
I would assume that all rows with NA in either of the variables will have to be dropped...
David Keyes Founder • March 25, 2024
Yup!
Patricia A Spencer • March 26, 2024
Is this how I would drop na? Thanks
David Keyes Founder • March 26, 2024
Yes, that works! However, if you omit the
drop_na()
line, you'll get the same thing (try it out and see!) because ggplot will only add points for rows that have observations for bothflipper_length_mm
andbody_mass_g
.Patricia A Spencer • March 26, 2024
Thanks, David!
Lilly Kennedy • April 23, 2024
My ggplot is not automatically configuring the right "zoom" of the scatterplot, it has values down to -1000. How do I fix that?
Libby Heeren Coach • April 23, 2024
Hi, Lilly! In this R project (fundamentals-v2), David is using a file called
penguins.csv
which already had the -999 values cleaned so that they're NA values. If you're using thepenguins_data.csv
file from previous lessons, you'd need to clean those -999 values before plotting. The video where he shows how he cleaned those values is here in the week 1 video called Import Our Data Again.Derrick Watsala • June 13, 2024
In other words, the scatter plot will still be generated even if there NAs in the variables to be plotted?
David Keyes Founder • June 13, 2024
Yes, exactly!
Greg Regaignon • March 6, 2025
Using this code: ggplot(data = penguins, mapping = aes(x = flipper_length_mm, Y = body_mass_g + geom_point()))
it seems to run in the Console window, but then in the Plots tab at bottom right, I don't get points in a scatterplot. I get a sort of graph image with "flipper_length_mm" on the x axis and values for the range of flipper lengths, and then faint vertical lines, but no label or values on the y axis, and no horizontal lines to make a proper graph image.
Greg Regaignon • March 6, 2025
Fixed it. One parenthesis was in the right place, and I had a Y instead of a y.
Greg Regaignon • March 6, 2025
one parenthesis in the wrong place
Greg Regaignon • March 6, 2025
one parenthesis in the wrong place