Skip to content
R for the Rest of Us Logo

Fundamentals of R

Setting x and y Scales

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?

Acarilia Eduardo

Acarilia Eduardo • October 1, 2024

Why does the exercise asks the y- axis to be set to go to 200, and the code in the solution sets it to go to 200? Am I reading it wrong? Thanks

Gracielle Higino

Gracielle Higino Coach • October 1, 2024

Thanks for pointing that out, Acarilia! We fixed it and now the code shows the right value. 😉