Bird
Raised Fist0
R Programmingprogramming~20 mins

Scatter plots (geom_point) in R Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Scatter Plot Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of basic scatter plot code
What will be the output of this R code using ggplot2?
R Programming
library(ggplot2)
data <- data.frame(x = 1:5, y = c(2, 3, 5, 7, 11))
ggplot(data, aes(x = x, y = y)) + geom_point()
AAn error because geom_point() requires a color aesthetic
BA line plot connecting points (1,2), (2,3), (3,5), (4,7), (5,11)
CA bar chart showing y values for x from 1 to 5
DA scatter plot with points at coordinates (1,2), (2,3), (3,5), (4,7), (5,11)
Attempts:
2 left
💡 Hint
geom_point() creates scatter plots by plotting points at given x and y coordinates.
🧠 Conceptual
intermediate
1:30remaining
Understanding aesthetics in geom_point
Which option correctly describes the role of the aes() function inside ggplot() when creating a scatter plot with geom_point()?
Aaes() defines how variables map to visual properties like x and y positions of points
Baes() sets the size of the plot window
Caes() adds titles and labels to the plot
Daes() changes the color of the plot background
Attempts:
2 left
💡 Hint
Think about what aes() does with data variables in ggplot2.
🔧 Debug
advanced
2:00remaining
Identify the error in this scatter plot code
What error will this R code produce?
R Programming
library(ggplot2)
data <- data.frame(x = 1:3, y = c(4, 5, 6))
ggplot(data, aes(x = x, y = y)) + geom_point(color = "blue")
AError: object 'color' not found
BSyntaxError: unexpected end of input due to missing closing parenthesis
CNo error, plot will show blue points
DError: geom_point() requires a size argument
Attempts:
2 left
💡 Hint
Check if all parentheses are properly closed.
❓ Predict Output
advanced
2:30remaining
Effect of mapping color inside aes() vs outside
What is the difference in output between these two ggplot2 codes?
R Programming
library(ggplot2)
data <- data.frame(x = 1:4, y = c(2, 4, 6, 8), group = c('A', 'B', 'A', 'B'))

# Code 1:
ggplot(data, aes(x = x, y = y, color = group)) + geom_point()

# Code 2:
ggplot(data, aes(x = x, y = y)) + geom_point(color = 'red')
ABoth codes color points by group
BCode 1 colors points by group; Code 2 colors all points red
CCode 1 colors all points red; Code 2 colors points by group
DBoth codes color all points red
Attempts:
2 left
💡 Hint
aes() maps data variables to aesthetics; setting color outside aes() applies a fixed color.
🚀 Application
expert
2:30remaining
Count of points plotted with filtering in geom_point
Given this code, how many points will be shown in the scatter plot?
R Programming
library(ggplot2)
data <- data.frame(x = 1:6, y = c(3, 5, 7, 9, 11, 13))
ggplot(data, aes(x = x, y = y)) + geom_point(data = subset(data, y > 7))
A3 points
B0 points
C4 points
D6 points
Attempts:
2 left
💡 Hint
Look at the subset condition y > 7 and count how many rows satisfy it.

Practice

(1/5)
1. What does the geom_point() function do in ggplot2?
easy
A. It adds a line connecting data points.
B. It creates a bar chart with grouped bars.
C. It creates a scatter plot showing points for data pairs.
D. It summarizes data with a boxplot.

Solution

  1. Step 1: Understand the purpose of geom_point()

    The function geom_point() is used in ggplot2 to add points to a plot, which is the basis of a scatter plot.
  2. Step 2: Identify the plot type created

    Scatter plots show the relationship between two numeric variables using dots, which matches what geom_point() does.
  3. Final Answer:

    It creates a scatter plot showing points for data pairs. -> Option C
  4. Quick Check:

    geom_point() = scatter plot points [OK]
Hint: Remember: geom_point() means dots on a scatter plot [OK]
Common Mistakes:
  • Confusing geom_point() with geom_line()
  • Thinking geom_point() creates bar charts
  • Mixing up scatter plots with boxplots
2. Which of the following is the correct syntax to create a scatter plot with height on the x-axis and weight on the y-axis using ggplot2?
easy
A. ggplot(data) + geom_point(height, weight)
B. ggplot(data) + geom_point(aes(x = weight, y = height))
C. ggplot(data) + geom_point(x = height, y = weight)
D. ggplot(data) + geom_point(aes(x = height, y = weight))

Solution

  1. Step 1: Check the correct use of aes() inside geom_point()

    The aesthetics mapping aes() must specify which variables go on x and y axes inside geom_point().
  2. Step 2: Verify the order of variables

    The question asks for height on x-axis and weight on y-axis, so aes(x = height, y = weight) is correct.
  3. Final Answer:

    ggplot(data) + geom_point(aes(x = height, y = weight)) -> Option D
  4. Quick Check:

    Correct aes() syntax = ggplot(data) + geom_point(aes(x = height, y = weight)) [OK]
Hint: Always put aes(x=, y=) inside geom_point() [OK]
Common Mistakes:
  • Swapping x and y variables
  • Passing variables directly to geom_point() without aes()
  • Omitting aes() entirely
3. What will be the output of this R code?
library(ggplot2)
data <- data.frame(x = 1:3, y = c(4, 5, 6))
ggplot(data) + geom_point(aes(x = x, y = y))
medium
A. A scatter plot with points at (1,4), (2,5), and (3,6).
B. A line plot connecting points (1,4), (2,5), and (3,6).
C. An error because aes() is missing.
D. A bar chart showing counts of x.

Solution

  1. Step 1: Understand the data and mapping

    The data frame has x values 1, 2, 3 and y values 4, 5, 6. The aes() maps x to x-axis and y to y-axis.
  2. Step 2: Identify the plot type from geom_point()

    geom_point() creates a scatter plot with points at the specified coordinates.
  3. Final Answer:

    A scatter plot with points at (1,4), (2,5), and (3,6). -> Option A
  4. Quick Check:

    geom_point() plots points at (x,y) pairs [OK]
Hint: geom_point() plots points exactly at aes(x, y) coordinates [OK]
Common Mistakes:
  • Expecting a line plot instead of points
  • Thinking aes() is missing causes error here
  • Confusing bar chart with scatter plot
4. Identify the error in this code snippet:
ggplot(data) + geom_point(x = height, y = weight)
medium
A. Using ggplot() without data argument.
B. Missing aes() around x and y inside geom_point().
C. geom_point() cannot plot numeric data.
D. x and y should be swapped.

Solution

  1. Step 1: Check how aesthetics are passed to geom_point()

    In ggplot2, x and y mappings must be inside aes() to link variables to axes.
  2. Step 2: Identify the missing aes() call

    The code passes x and y directly to geom_point(), which is incorrect syntax.
  3. Final Answer:

    Missing aes() around x and y inside geom_point(). -> Option B
  4. Quick Check:

    Always use aes(x=, y=) inside geom_point() [OK]
Hint: Always wrap x and y in aes() inside geom_point() [OK]
Common Mistakes:
  • Passing x and y directly without aes()
  • Forgetting to provide data to ggplot()
  • Swapping x and y unnecessarily
5. You want to create a scatter plot of mpg vs hp from the built-in mtcars dataset, but only for cars with cyl equal to 6. Which code correctly does this?
hard
A. ggplot(subset(mtcars, cyl == 6)) + geom_point(aes(x = hp, y = mpg))
B. ggplot(mtcars) + geom_point(aes(x = hp, y = mpg), subset = cyl == 6)
C. ggplot(mtcars) + geom_point(aes(x = hp, y = mpg)) + filter(cyl == 6)
D. ggplot(mtcars) + geom_point(aes(x = hp, y = mpg)) + subset(cyl == 6)

Solution

  1. Step 1: Filter data before plotting

    To plot only cars with 6 cylinders, filter the data frame using subset(mtcars, cyl == 6).
  2. Step 2: Use filtered data in ggplot()

    Pass the filtered data to ggplot(), then add geom_point() with correct aesthetics.
  3. Final Answer:

    ggplot(subset(mtcars, cyl == 6)) + geom_point(aes(x = hp, y = mpg)) -> Option A
  4. Quick Check:

    Filter data first, then plot with geom_point() [OK]
Hint: Filter data before ggplot() to plot subsets [OK]
Common Mistakes:
  • Trying to filter inside geom_point() which is invalid
  • Using filter() without dplyr or outside ggplot()
  • Passing subset as argument to geom_point()
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard