web-dev-qa-db-fra.com

déplacer les étiquettes d'axe ggplot

J'ai créé un graphe de faits dans ggplot2 et le libellé de l'axe x (en bas) touche légèrement les valeurs d'échelle (il empire lorsque je trace un graphe vers un périphérique .pdf). Comment déplacer l'étiquette d'axe vers le bas d'un smidge?

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') 

Dans mes données, BLAH BLAH touche les chiffres. J'ai besoin de ça pour descendre. Comment?

12
Tyler Rinker

Vous pouvez ajuster le positionnement du titre de l'axe des x en utilisant:

+ opts(axis.title.x = theme_text(vjust=-0.5))

Jouez avec le paramètre -0.5 "justification verticale" jusqu'à ce que cela vous convienne/votre afficheur.

21
Prasad Chalasani

Il s’agit d’une solution de contournement simple, basée sur la réponse fournie ici

Ajoutez simplement un saut de ligne; \n, au début du titre de vos axes; xlab("\nYour_x_Label") (Ou à la fin si vous devez déplacer votre étiquette y).

Cela n'offre pas autant de contrôle que la suggestion d'Eduardo dans les commentaires; theme(axis.title.x = element_text(vjust=-0.5)), ou utilisation de margin, mais c'est beaucoup plus simple!

1
EcologyTom