Skip to content
R for the Rest of Us Logo

This lesson is locked

Get access to all lessons in this course.


Click on the transcript to go to that point in the video. Please note that transcripts are auto generated and may contain minor inaccuracies.

Your Turn

Use the expand argument within the scale_x_discrete() function to remove any gaps in your plot.

Learn More

To read more about the expand() function, check out the ggplot documentation website. As you may have picked up in the video, I often end up just playing around with the values here in order to find something that gives me what I want.

There is also a great cheatsheet by Christian Burkhardt showing how expand() works.

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

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

Abby Isaacson

Abby Isaacson

May 18, 2021

  1. I forgot to put in the "add" to the last line, but it seems to have worked fine? What's the add for? scale_x_discrete(expand = expansion(c(.1, .35)))

  2. When I added a fig.width = 10 code in my Rmd setup code, only this plot in Rmd turned TINY. It returns to normal size when I remove the code, but then it's cut off when I knit. Without cutoff, I can only really read this graph when I knit it. I didn't see yours turn small when you set the width!?

David Keyes

David Keyes

May 19, 2021

On #1, add is the name of the first argument and mult is the name of the second argument. You don't have to put the name, just as you don't have to put x and y within the aes() when creating a ggplot (the function assumes the first variable is your x variable and your second one is your y variable).

On #2, what happens if you also add a fig.height (e.g. fig.height = 10). Does that change anything?

I noticed when using both add and mult, I have change the nudge_x and nudge_y values within the geom_text. I see in this code, you are no longer using either and instead have gone to hjust. When is it "better" to nudge_x rather than hjust?

David Keyes

David Keyes

December 7, 2021

It's not necessarily better to use one or the other. To be honest, I mostly just play around with both nudge_x/nudge_y as well as the vjust/hjust arguments and see which one fits my needs best.