Skip to content
R for the Rest of Us: A Statistics-Free Introduction comes out June 25th. Or you can read the online version today. Check it out →
R for the Rest of Us Logo

Setting x and y Scales

This lesson is locked

Get access to all lessons in this course.

If the video is not playing correctly, you can watch it in a new window

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")
			
penguin_bill_length_by_island <-
	penguins |>
	drop_na(bill_length_mm) |>
	group_by(island) |>
	summarize(mean_bill_length = mean(bill_length_mm))
			
# Setting x and y Scales --------------------------------------------------

# Adjusting our x and y axes is similar. 
# Remember that the x and y axes are considered an aesthetic properties 
# in the same way color and fill are.

# We adjust our x and y axes using the scale_ set of functions. 
# The exact function you use depends on your data. 
# For example, you would use scale_y_continuous() 
# if you have continuous data on the y axis.

# The limits argument sets the minimum and maximum values that display.

ggplot(data = penguin_bill_length_by_island,
       mapping = aes(x = island,
                     y = mean_bill_length,
                     fill = island)) +
  geom_col() +
  scale_y_continuous(limits = c(0, 50))

# The breaks argument determines which axis labels show up.

ggplot(data = penguin_bill_length_by_island,
       mapping = aes(x = island,
                     y = mean_bill_length,
                     fill = island)) +
  geom_col() +
  scale_y_continuous(limits = c(0, 50),
                     breaks = c(0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50))

# If we want to change the x axis labels, we'd need to use 
# the labels argument in scale_x_discrete() because that data is categorical. 

ggplot(data = penguin_bill_length_by_island,
       mapping = aes(x = island,
                     y = mean_bill_length,
                     fill = island)) +
  geom_col() +
  scale_y_continuous(limits = c(0, 50),
                     breaks = c(0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50)) +
  scale_x_discrete(labels = c("Biscoe Island", 
                              "Dream Island",
                              "Torgersen Island"))

Your Turn

# Load Packages -----------------------------------------------------------

library(tidyverse)

# Import Data -------------------------------------------------------------

penguins <- read_csv("penguins.csv")

# Setting x and y Scales --------------------------------------------------

# Copy the code for the last bar chart you made
# Update it so that the y axis goes from 0 to 200

# YOUR CODE HERE

# Copy the code you just wrote
# Update it so that it has breaks on the y axis at 0, 40, 80, 120, and 160

# YOUR CODE HERE

Have any questions? Put them below and we will help you out!

You need to be signed-in to comment on this post. Login.

Maria Montenegro

Maria Montenegro

April 8, 2024

Hello! What does the c mean in the functions? example: limits= c(0,50). Wondering if it stands for something specific that can help me remember why it goes there, it doesn't seem intuitive to me.

I am also wondering if there is a way to edit breaks that is more efficient than entering the values one by one. Is there a way to specify what in excel is called the axis' units?

David Keyes

David Keyes Founder

April 8, 2024

The c() function combines multiple values. I think of it as "combine" in my head (though I'm not sure that's what its developers would actually call it). In this case, it means combine 0 and 50 so that 0 is the low value and 50 is the high value. Does that help?