medavis6 medavis6 - 2 months ago 16
R Question

Expand Categorical x-axis in ggplot

I can't figure out how to use

expand()
within
scale_x_discrete()
to expand a categorical x-axis so that placing a label to the right of points won't be off of the plot.

I know that if x was numeric, I could simply adjust the max limit of x so that the points all shift to the left. However, I cannot figure out how to do this with a categorical variable. I don't even care if the expanded variable label is "". I just need more space to the right of the last categorical variable on the x axis.

Here is example data that could be used to illustrate how to successfully do this:

data(iris)

library(ggplot2)
ggplot(data = iris, aes(x = Species, y = Sepal.Width)) +
geom_jitter()


Thanks for any and all help, and please don't hesitate to ask any clarification questions!

EDIT: Plot for easy visual explanation

enter image description here

Answer

You could just append a blank level to the existing levels of your categorical variable, as in:

data(iris)

levels(iris$Species) <- c(levels(iris$Species),'') # add blank level

library(ggplot2)
ggplot(data = iris, aes(x = Species, y = Sepal.Width)) +
  geom_jitter() +
  scale_x_discrete(drop=FALSE) # don't drop unused blank level

enter image description here