使用ggplot2将右侧的轴标签对齐

时间:2016-05-27 16:11:22

标签: r graph graphics ggplot2

考虑以下

d = data.frame(y=rnorm(120), 
               x=rep(c("bar", "long category name", "foo"), each=40))

ggplot(d,aes(x=x,y=y)) + 
    geom_boxplot() + 
    theme(axis.text.x=element_text(size=15, angle=90))

plot with poorly aligned labels

x轴标签由标签的中心对齐。是否可以在右侧自动对齐,以便每个标签都在图表的正下方?

2 个答案:

答案 0 :(得分:22)

这正是hjustvjustggplot参数的用途。它们分别控制水平和垂直对齐,范围从0到1.有关理由及其值(What do hjust and vjust do when making a plot using ggplot?)的详细信息,请参阅此问题。

要获得标签,您可以使用:

  • hjust = 0.95(在标签和轴之间留一些空格)
  • vjust = 0.2(在这种情况下将它们置于中心位置)
ggplot(d,aes(x=x,y=y)) + geom_boxplot() + 
       theme(axis.text.x=element_text(size=15, angle=90,hjust=0.95,vjust=0.2))

enter image description here

答案 1 :(得分:10)

或者,翻转轴,您的客户会感谢您并减少颈部疼痛(此外,我发现大多数箱形图更易于使用此方向解释):

ggplot(d, aes(x = x, y = y)) +
  geom_boxplot() + 
  coord_flip()

Plot