Lesson 4

Enhancing Data Visualizations with ggplot2: A Guide to Styling in R

Topic Overview

Welcome! In today's lesson, we are diving into styling plots. Styling is crucial to make plots visually attractive and insightful. We will delve into various aspects of plot style with R's ggplot2, enhancing the aesthetics of our plots as we progress. Let's get started!

Basic Plot

In ggplot2, each plot can be styled differently. Here's an example with a basic line plot:

R
1library(ggplot2) 2x = c(1, 2, 3, 4, 5) 3y = c(1, 4, 9, 16, 25) 4df = data.frame(x, y) 5plot <- ggplot(df, aes(x = x, y = y)) + geom_line()

Adjusting Colors and Line Types

Have you ever wanted to change these defaults? Fortunately, ggplot2 allows you to do just that with the color and linetype parameters:

R
1plot <- ggplot(df, aes(x = x, y = y)) + 2geom_line(color = "red", linetype = "dashed")

Voila! Our line is now red and dashed!

The fun part is that ggplot2 offers many color options (like 'green', 'blue', 'cyan', etc.) and line types (like 'solid', 'dotted', 'dashed', etc.). This flexibility allows you to create personalized and differentiated line plots.

Adding Markers

Markers can significantly enhance your plot's aesthetics and readability by highlighting the data points. With ggplot2, we can add markers using the geom_point function and the shape parameter:

R
1plot <- ggplot(df, aes(x = x, y = y)) + 2geom_line(color = "red", linetype = "dashed") + 3geom_point(shape = 1)

Commonly used markers include 1 (circle), 4 (cross), 8 (star), 15 (filled square), 18 (plus), and more.

Adding Titles, Labels, and Legends

Good labels make plots easy to understand. Let's add a title, x-label, y-label, and a legend to our plot to make it more self-explanatory:

R
1plot <- ggplot(df, aes(x = x, y = y)) + 2geom_line(color = "red", linetype = "dashed") + 3labs(title = "Square Numbers", x = "Numbers", y = "Squares")

Our plot now carries much more information!

Setting Axes Limits and Ticks

You may want to focus on a particular region in your plot. ggplot2 lets us limit the ranges shown on the x- and y-axes using scale_x_continuous and scale_y_continuous. Additionally, it allows us to set the ticks using breaks. Let's try them out:

R
1plot <- ggplot(df, aes(x = x, y = y)) + 2geom_line(color = "red", linetype = "dashed", aes(linetype = "Dashed Line")) + 3labs(title = "Square Numbers", x = "Numbers", y = "Squares") + 4scale_x_continuous(limits=c(2, 5), breaks=c(2, 3, 4, 5)) + 5scale_y_continuous(limits=c(4, 25), breaks=seq(4, 25, 5))
  • limits: Specifies the range of the axis. For example, limits=c(2, 5) restricts the x-axis to values between 2 and 5, while limits=c(4, 25) restricts the y-axis to values between 4 and 25.

  • breaks: Defines where ticks are placed. For example, breaks=c(2, 3, 4, 5) places ticks at 2, 3, 4, and 5 on the x-axis. breaks=seq(4, 25, 5) places ticks at 4, 9, 14, 19, and 24 on the y-axis.

Our plot now displays squares of numbers from 2 to 5.

Lesson Summary and Practice

Congratulations! You've mastered plot styling with ggplot2 and R and learned how to customize multiple aspects of your visuals. The exercises that follow will reinforce your understanding and expertise in R data visualization. Are you ready to proceed? We certainly are. Let's dive into the practice problems!

Enjoy this lesson? Now it's time to practice with Cosmo!

Practice is how you turn knowledge into actual skills.