Skip to content

Instantly share code, notes, and snippets.

@benmarwick
Last active March 30, 2024 08:00
Show Gist options
  • Star 72 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save benmarwick/8b95b8fb226986bd86a47ad92e0017f2 to your computer and use it in GitHub Desktop.
Save benmarwick/8b95b8fb226986bd86a47ad92e0017f2 to your computer and use it in GitHub Desktop.
I can never remember how to rotate the x-axis labels with ggplot2: theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
# Adapted from https://stackoverflow.com/a/7267364/1036500 by Andrie de Vries
# This is it: theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
library(ggplot2)
td <- expand.grid(
hjust=c(0, 0.5, 1),
vjust=c(0, 0.5, 1),
angle=c(0, 45, 90),
text="text"
)
td$angle_exp <-
with(td,
ifelse(angle == 0, "angle = 0",
ifelse(angle == 45, "angle = 45",
"angle = 90")))
,
ggplot(td, aes(x=hjust,
y=vjust)) +
geom_point(colour = "red",
size = 5) +
geom_text(aes(label=text,
angle=angle,
hjust=hjust,
vjust=vjust),
size = 5) +
facet_grid(~angle_exp) +
scale_x_continuous(breaks=c(0, 0.5, 1),
expand=c(0, 0.2)) +
scale_y_continuous(breaks=c(0, 0.5, 1),
expand=c(0, 0.2)) +
theme_minimal(base_size = 18) +
ggtitle("To rotate x-axis label text 90 degrees we use:\ntheme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))")
@benmarwick
Copy link
Author

image

@ChrisBeeley
Copy link

Ha! Me neither! Thanks for this, it's a real time saver

@centeio
Copy link

centeio commented Jan 10, 2019

Thanks!! So useful.

@Maddocent
Copy link

I look this up on Google, maybe once a week ;-), thanks for the help!

@prerit912
Copy link

I think it's because the names are not so intuitive. ( I also in the group, can't remember it, I can try to by heart it) :P

@briglo
Copy link

briglo commented Jul 4, 2019

as a github newb, i am proud to give you my first star :) thanks for this

@joelnitta
Copy link

I visit this probably once a week. best.gist.ever.

@SAbhaya
Copy link

SAbhaya commented Aug 8, 2019

Thanks.

@maggiesuero
Copy link

I guess this gist never gets old. It's great!!! Thank you very much

@idot
Copy link

idot commented Jan 26, 2021

There is an alternative since 3.3.0: stackoverflow

guides(x=guide_axis(angle = 90))

the h/v-just are set automatically sensibly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment