📖 Scenario: You are a data analyst who wants to visualize the relationship between two variables in a small dataset. You will create a simple scatter plot using ggplot() and aes() from the ggplot2 package in R.
🎯 Goal: Build a scatter plot using ggplot() and aes() to map variables to the x and y axes.
📋 What You'll Learn
Create a data frame called data with two numeric columns: height and weight with exact values
Create a ggplot object using ggplot() with data as the data source
Use aes() inside ggplot() to map height to the x-axis and weight to the y-axis
Add geom_point() to display the points
Print the plot object to display the scatter plot
💡 Why This Matters
🌍 Real World
Creating visualizations helps understand data patterns and relationships quickly, which is useful in reports and presentations.
💼 Career
Data analysts and scientists use ggplot2 to create clear and attractive charts to communicate insights effectively.
Progress0 / 4 steps
1
Create the data frame
Create a data frame called data with two columns: height containing the values 150, 160, 170, 180, 190 and weight containing the values 65, 70, 75, 80, 85.
R Programming
Hint
Use data.frame() with height = c(...) and weight = c(...) to create the data.
2
Create the ggplot object with aes()
Create a variable called plot and assign it the result of ggplot() with data as the data source and aes() mapping height to x and weight to y.
R Programming
Hint
Use ggplot(data, aes(x = height, y = weight)) and assign it to plot.
3
Add points to the plot
Add geom_point() to the plot object to show the data points. Update plot by adding + geom_point().
R Programming
Hint
Add + geom_point() to the ggplot call to show points.
4
Display the plot
Print the plot object to display the scatter plot.
R Programming
Hint
Use print(plot) to show the plot.
Practice
(1/5)
1. What is the main purpose of the aes() function in ggplot()?
easy
A. To add titles and labels to the plot
B. To map data columns to visual properties like x and y axes
C. To create the plot background color
D. To save the plot as an image file
Solution
Step 1: Understand the role of aes()
The aes() function defines how data columns are linked to visual elements like axes or colors.
Step 2: Compare options with aes() purpose
Only To map data columns to visual properties like x and y axes correctly describes mapping data columns to x and y axes, which is the main use of aes().
Final Answer:
To map data columns to visual properties like x and y axes -> Option B
Quick Check:
Mapping data columns = A [OK]
Hint: Remember: aes() sets data to axes or colors [OK]
Common Mistakes:
Thinking aes() adds titles or labels
Confusing aes() with saving or styling functions
Assuming aes() creates plot background
2. Which of the following is the correct syntax to start a scatter plot with ggplot() using data frame df and mapping x to column age and y to column height?
easy
A. ggplot(df, aes(x = age, y = height)) + geom_point()
B. ggplot(aes(x = age, y = height), df) + geom_point()
C. ggplot(df) + aes(x = age, y = height) + geom_point()
D. ggplot(df, geom_point(aes(x = age, y = height)))
Solution
Step 1: Recall correct ggplot() syntax
The correct syntax is ggplot(data, aes(...)) + geom_* where data is first, then aes() inside ggplot.
Step 2: Check each option
ggplot(df, aes(x = age, y = height)) + geom_point() matches the correct order and usage. The other options misuse argument order or place aes() outside ggplot().
Final Answer:
ggplot(df, aes(x = age, y = height)) + geom_point() -> Option A
Quick Check:
Data first, then aes() inside ggplot() = B [OK]
Hint: Put data first, then aes() inside ggplot() [OK]
Common Mistakes:
Swapping data and aes() arguments
Calling aes() outside ggplot()
Putting geom_point() inside ggplot() arguments
3. What will be the output of this R code?
library(ggplot2)
df <- data.frame(x = 1:3, y = c(4, 5, 6))
ggplot(df, aes(x = x, y = y)) + geom_point()
medium
A. A scatter plot with points at (1,4), (2,5), and (3,6)
B. A bar chart showing counts of x values
C. An error because geom_point() is missing arguments
D. A line plot connecting points (1,4), (2,5), and (3,6)
Solution
Step 1: Understand the code components
The code creates a data frame with x and y values, then plots points using geom_point() which draws scatter points.
Step 2: Identify the plot type and points
geom_point() creates scatter points at coordinates from x and y columns: (1,4), (2,5), (3,6).
Final Answer:
A scatter plot with points at (1,4), (2,5), and (3,6) -> Option A
Quick Check:
geom_point() draws scatter points = D [OK]
Hint: geom_point() plots points at mapped x,y coordinates [OK]
Common Mistakes:
Confusing geom_point() with geom_bar() or geom_line()
Expecting a line plot instead of points
Thinking geom_point() needs extra arguments
4. Identify the error in this code snippet:
ggplot(mtcars, aes(x = mpg, y = hp))
geom_point()
medium
A. aes() should be outside ggplot()
B. Incorrect column names mpg and hp
C. geom_point() cannot be used with mtcars dataset
D. Missing + operator between ggplot() and geom_point()
Solution
Step 1: Check how layers are added in ggplot2
Layers like geom_point() must be added with a + operator after ggplot().
Step 2: Review the code for missing +
The code calls ggplot() and then geom_point() on a new line without +, causing an error.
Final Answer:
Missing + operator between ggplot() and geom_point() -> Option D
Quick Check:
Use + to add layers in ggplot2 = C [OK]
Hint: Add + between ggplot() and geoms to avoid errors [OK]
Common Mistakes:
Forgetting the + operator between layers
Thinking aes() must be outside ggplot()
Assuming dataset columns are incorrect without checking
5. You want to create a scatter plot using ggplot() with data frame df that has columns time, score, and group. You want points colored by group. Which code correctly achieves this?
hard
A. ggplot(df) + aes(x = time, y = score, color = group) + geom_point()
B. ggplot(df, aes(x = time, y = score)) + geom_point(color = group)
C. ggplot(df, aes(x = time, y = score, color = group)) + geom_point()
D. ggplot(df, geom_point(aes(x = time, y = score, color = group)))
Solution
Step 1: Understand how to map color by a data column
Color mapping must be inside aes() so ggplot knows to use data values for color.
Step 2: Check each option for correct color mapping
ggplot(df, aes(x = time, y = score, color = group)) + geom_point() correctly maps color inside aes() in ggplot(). ggplot(df, aes(x = time, y = score)) + geom_point(color = group) sets color outside aes(), causing an error. ggplot(df) + aes(x = time, y = score, color = group) + geom_point() incorrectly treats aes() as a layer. ggplot(df, geom_point(aes(x = time, y = score, color = group))) incorrectly nests geom_point() inside ggplot().
Final Answer:
ggplot(df, aes(x = time, y = score, color = group)) + geom_point() -> Option C
Quick Check:
Map color inside aes() in ggplot() = A [OK]
Hint: Put color inside aes() to map by data column [OK]
Common Mistakes:
Setting color outside aes() causing fixed color
Adding aes() as a layer with +
Putting geom_point() inside ggplot() arguments
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.