Bird
Raised Fist0
R Programmingprogramming~10 mins

Legend control in R Programming - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Legend control
Create plot object
↓
Add data layers
↓
Add legend control
↓
Customize legend appearance
↓
Render plot with legend
This flow shows how to build a plot step-by-step, add a legend control, customize it, and then display the final plot.
Execution Sample
R Programming
library(ggplot2)

p <- ggplot(mtcars, aes(x=wt, y=mpg, color=factor(cyl))) +
  geom_point() +
  labs(color='Cylinders')

print(p)
This code creates a scatter plot of car weight vs. mileage, colors points by cylinder count, adds a legend title, and displays the plot.
Execution Table
StepActionEvaluationResult
1Load ggplot2 librarylibrary(ggplot2)ggplot2 functions available
2Create ggplot object with mtcars dataggplot(mtcars, aes(x=wt, y=mpg, color=factor(cyl)))Plot object with aesthetics set
3Add points layergeom_point()Points layer added to plot
4Add legend label for colorlabs(color='Cylinders')Legend title set to 'Cylinders'
5Print plotprint(p)Plot rendered with legend showing cylinder groups
6EndNo more commandsExecution stops
💡 All plot components added and plot displayed with legend control
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
pNULLggplot object with aestheticsggplot + points layerggplot + points + legend labelFinal plot object ready to render
Key Moments - 3 Insights
Why does the legend appear automatically without extra code?
Because ggplot2 automatically creates legends for mapped aesthetics like color, as shown in execution_table step 2 and 3.
How do we change the legend title?
By using labs(color='Cylinders') as in step 4, which sets the legend label for the color aesthetic.
What happens if we don't call print(p)?
The plot won't display in some environments; print(p) in step 5 triggers rendering.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the state of variable 'p' after step 3?
APlot object with legend label set
BPlot object with points layer added
CNULL
DPlot rendered on screen
💡 Hint
Check variable_tracker column 'After Step 3' for 'p'
At which step is the legend title set to 'Cylinders'?
AStep 2
BStep 5
CStep 4
DStep 3
💡 Hint
Look at execution_table row with action 'Add legend label for color'
If we skip step 5 (print(p)), what happens?
APlot object is created but not displayed
BError occurs
CPlot is rendered anyway
DLegend disappears
💡 Hint
Refer to key_moments answer about print(p) necessity
Concept Snapshot
Legend control in R ggplot2:
- Map aesthetics like color to data for automatic legends
- Use labs(color='Title') to set legend title
- Add layers (geom_point) to build plot
- Call print() to render plot with legend
- Legend updates automatically with mapped aesthetics
Full Transcript
This example shows how to control legends in R using ggplot2. First, we load the library. Then, we create a plot object mapping weight and mileage, coloring points by cylinder count. Adding geom_point adds the data points. Using labs(color='Cylinders') sets the legend title. Finally, print(p) renders the plot with the legend visible. The legend appears automatically because ggplot2 creates legends for mapped aesthetics. The legend title is customized with labs(). Without print(), the plot won't display in some environments. This step-by-step trace helps understand how legend control works in R plotting.

Practice

(1/5)
1. What is the main purpose of the legend() function in R plotting?
easy
A. To explain the meaning of colors or symbols used in the plot
B. To change the plot background color
C. To add titles to the plot axes
D. To save the plot as an image file

Solution

  1. Step 1: Understand the role of legend in plots

    A legend helps viewers understand what different colors or symbols represent in a plot.
  2. Step 2: Identify the function purpose

    The legend() function in R adds this explanatory box to the plot.
  3. Final Answer:

    To explain the meaning of colors or symbols used in the plot -> Option A
  4. Quick Check:

    legend() explains plot symbols/colors [OK]
Hint: Legend explains plot symbols and colors clearly [OK]
Common Mistakes:
  • Confusing legend() with title() or axis labeling functions
  • Thinking legend() changes plot colors
  • Assuming legend() saves plots
2. Which of the following is the correct syntax to add a legend at the top right corner with labels "A" and "B" in R?
easy
A. legend(topright, labels = c("A", "B"))
B. legend("topright", legend = c("A", "B"))
C. legend(position = "topright", c("A", "B"))
D. legend(c("A", "B"), position = "topright")

Solution

  1. Step 1: Recall legend() function syntax

    The first argument is the position as a string, then legend= specifies labels.
  2. Step 2: Check each option

    legend("topright", legend = c("A", "B")) uses correct syntax: legend("topright", legend = c("A", "B")). Others misuse argument names or order.
  3. Final Answer:

    legend("topright", legend = c("A", "B")) -> Option B
  4. Quick Check:

    Correct legend() syntax = legend("topright", legend = c("A", "B")) [OK]
Hint: First argument is position string, use legend= for labels [OK]
Common Mistakes:
  • Omitting quotes around position
  • Using wrong argument names like labels instead of legend
  • Passing labels before position
3. What will be the output of the following R code?
plot(1:3, col = c("red", "green", "blue"), pch = 16)
legend("bottomleft", legend = c("Red", "Green", "Blue"), col = c("red", "green", "blue"), pch = 16)
medium
A. A plot with colored points but legend shows empty boxes
B. A plot with default black points and no legend
C. A plot with three points colored red, green, blue and a legend at bottom left showing these colors with filled circles
D. Syntax error due to missing parameters

Solution

  1. Step 1: Understand plot() parameters

    Points 1,2,3 are plotted with colors red, green, blue and filled circle symbol (pch=16).
  2. Step 2: Understand legend() parameters

    Legend placed at bottom left with matching labels, colors, and symbols (filled circles).
  3. Final Answer:

    A plot with three points colored red, green, blue and a legend at bottom left showing these colors with filled circles -> Option C
  4. Quick Check:

    plot colors and legend match correctly [OK]
Hint: Legend colors and symbols must match plot points [OK]
Common Mistakes:
  • Assuming legend uses default black color
  • Forgetting to set pch in legend
  • Confusing legend position strings
4. Identify the error in this R code snippet that tries to add a legend:
plot(1:5, col = 1:5, pch = 15)
legend("top", labels = c("One", "Two", "Three", "Four", "Five"), col = 1:5, pch = 15)
medium
A. The argument 'labels' should be 'legend' in the legend() function
B. The position 'top' is invalid in legend()
C. The colors 1:5 are not valid color codes
D. pch = 15 is not a valid plotting character

Solution

  1. Step 1: Check legend() argument names

    The correct argument for labels is 'legend', not 'labels'. Using 'labels' causes no legend to appear.
  2. Step 2: Verify position and other parameters

    Position 'top' is valid, colors 1:5 are valid R colors, pch=15 is a valid filled square symbol.
  3. Final Answer:

    The argument 'labels' should be 'legend' in the legend() function -> Option A
  4. Quick Check:

    Use legend=, not labels= in legend() [OK]
Hint: Use legend= for labels inside legend() [OK]
Common Mistakes:
  • Using 'labels' instead of 'legend' argument
  • Thinking 'top' is invalid position
  • Confusing color codes with integers
5. You want to create a plot with two groups of points: group A in red circles and group B in blue triangles. How do you add a legend that clearly shows these groups with correct symbols and colors?
hard
A. legend("topright", legend = c("Group A", "Group B"), col = c(1, 2), pch = c(16, 17))
B. legend("topright", labels = c("Group A", "Group B"), colors = c("red", "blue"), symbols = c(1, 2))
C. legend("topright", legend = c("Group A", "Group B"), color = c("red", "blue"), pch = c("circle", "triangle"))
D. legend("topright", legend = c("Group A", "Group B"), col = c("red", "blue"), pch = c(1, 2))

Solution

  1. Step 1: Identify correct legend arguments

    Use 'legend' for labels, 'col' for colors, and 'pch' for symbols (numeric codes).
  2. Step 2: Match symbols and colors to groups

    Red circles use pch=1, blue triangles use pch=2, colors as "red" and "blue" strings.
  3. Step 3: Check options

    legend("topright", legend = c("Group A", "Group B"), col = c("red", "blue"), pch = c(1, 2)) uses correct argument names and values. legend("topright", labels = c("Group A", "Group B"), colors = c("red", "blue"), symbols = c(1, 2)) uses wrong argument names. legend("topright", legend = c("Group A", "Group B"), color = c("red", "blue"), pch = c("circle", "triangle")) uses invalid pch values. legend("topright", legend = c("Group A", "Group B"), col = c(1, 2), pch = c(16, 17)) uses numeric colors 1 and 2 which are black and red, not blue.
  4. Final Answer:

    legend("topright", legend = c("Group A", "Group B"), col = c("red", "blue"), pch = c(1, 2)) -> Option D
  5. Quick Check:

    Correct legend args and matching colors/symbols [OK]
Hint: Use legend=, col= colors, pch= numeric symbols [OK]
Common Mistakes:
  • Using wrong argument names like labels or colors
  • Using string names for pch instead of numbers
  • Using numeric colors that don't match intended colors
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