移动轴标签ggplot

Tyl*_*ker 14 r ggplot2

我在ggplot2中生成了一个事实图表,x轴标签(底部)略微触及了比例值(当我绘制到.pdf设备时它变得更糟).如何将轴标签向下移动?

DF<-structure(list(race = structure(c(3L, 1L, 3L, 2L, 3L, 1L, 2L, 
2L, 2L, 3L, 2L, 1L, 3L, 3L, 3L, 3L, 2L, 1L, 2L, 3L), .Label = c("asian", 
"black", "white"), class = "factor"), gender = structure(c(1L, 
1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 
2L, 2L, 2L), .Label = c("female", "male"), class = "factor"), 
    score = c(0.0360497844302483, 0.149771418578119, 0.703017688328021, 
    1.32540102136392, 0.627084455719946, -0.320051801571444, 
    0.852281028633536, -0.440056896755573, 0.621765489966213, 
    0.58981396944136, 1.95257757882381, 0.127301498272644, -0.0906338578670778, 
    -0.637727808028146, -0.449607617033673, 1.03162398117388, 
    0.334259623567608, 0.0912327543652576, -0.0789977852804991, 
    0.511696466039959), time1 = c(75.9849658266583, 38.7148843859919, 
    54.3512613852158, 37.3210772390582, 83.8061071736856, 14.3853324033061, 
    79.2285735003004, 31.1324602891428, 22.2294730114138, 26.427263191766, 
    40.5529893144888, 19.2463281412667, 8.45085646487301, 97.6770352620696, 
    61.1874163107771, 31.3727683430548, 99.4155144857594, 79.0996849438957, 
    21.2504885323517, 94.1079332400361)), .Names = c("race", 
"gender", "score", "time1"), class = "data.frame", row.names = c(NA, 
-20L))


require(ggplot2)
p <- ggplot(DF, aes(score, time1, group=gender))
p + geom_point(aes(shape=19)) + facet_grid(race~gender) + scale_x_continuous('BLAH BLAH') + 
scale_y_continuous('Some MOre Of theat Good Blahing') 
Run Code Online (Sandbox Code Playgroud)

在我的数据中,BLAH BLAH正在触摸数字.我需要它向下移动.怎么样?

Pra*_*ani 23

您可以使用以下方法调整x轴标题的位置:

+ opts(axis.title.x = theme_text(vjust=-0.5))
Run Code Online (Sandbox Code Playgroud)

使用-0.5"垂直对齐"参数,直到它适合您/您的显示设备.

  • 记住opts和theme_text这些天已被弃用.你应该使用theme(axis.title.x = element_text(vjust = -0.5)) (63认同)
  • 由于至少ggplot 2.0.0 vjust参数已被[margin](https://github.com/tidyverse/ggplot2/issues/1435)取代.可以为顶部(t),右侧(r),底部(b)和左侧(l)指定边距,以垂直和水平定位文本.因此,要向下移动文本,您将使用`theme(axis.title.x = element_text(margin = margin(t = 20))`. (10认同)
  • 是否有等效的方法可以改变水平位置,同时保留文本的排列?hjust 似乎改变了文本对齐方式,我只想改变位置。 (2认同)

Eco*_*Tom 10

这是一个简单的解决方法,基于此处提供的答案

只需添加一个换行符;\n, 在坐标区标题的开头;xlab("\nYour_x_Label")(或者最后,如果您需要移动 y 标签)。

它不像 Eduardo 在评论中的建议那样提供那么多的控制;theme(axis.title.x = element_text(vjust=-0.5)),或使用margin,但它要简单得多!