2012-05-31 10 views
53

Gibt es eine einfache Möglichkeit, den Abstand zwischen dem Plottitel und dem darunter liegenden Plotbereich (der Box mit den Daten) zu vergrößern. Genauso würde ich es vorziehen, etwas Abstand zwischen dem Achsentitel und den Achsenbeschriftungen zu haben.ggplot2 Grundstücksränder?

Mit anderen Worten, gibt es eine Möglichkeit, "den Titel ein wenig nach oben zu bewegen, den Titel der y-Achse ein wenig nach links und den Titel der x-Achse etwas nach unten"?

+0

Sie können immer einige '" \ n "' Zeichen in die Titel einfügen, um neue Zeilen zu erzwingen. – joran

Antwort

72

Sie können die Plot-Margen mit plot.margin in theme() einstellen und dann Achsenbeschriftungen und Titel mit dem vjust Argumente von element_text() bewegen. Zum Beispiel:

library(ggplot2) 
library(grid) 
qplot(rnorm(100)) + 
    ggtitle("Title") + 
    theme(axis.title.x=element_text(vjust=-2)) + 
    theme(axis.title.y=element_text(angle=90, vjust=-0.5)) + 
    theme(plot.title=element_text(size=15, vjust=3)) + 
    theme(plot.margin = unit(c(1,1,1,1), "cm")) 

wird Ihnen etwas wie folgt aus:

enter image description here

Wenn Sie mehr Informationen über die verschiedenen theme() Parameter und ihre Argumente wollen, können Sie einfach ?theme an der R-Eingabeaufforderung eingeben.

+4

Danke! Ich war mir nicht sicher, was ich Grid :: Units zur Verfügung stellen sollte, damit dies für das Argument "plot.margin" funktioniert. Es stellt sich heraus, dass Sie eine Länge-4-Zahl für "Einheiten" angeben müssen. Schade, dass das 'x' Argument zu' units' nicht in irgendeiner Weise wiederverwendet wird. Wahrscheinlich kennst du das auch schon, aber es ist erwähnenswert, dass 'opts' in der neuesten Version von ggplot2 (0.9.2+) veraltet ist, ersetzt durch' theme', da 'theme_text' nun durch' element_text' ersetzt wird . –

+8

Die Reihenfolge der Kanten für plot.margin ist die Einheit (c (oben, rechts, unten, links), Einheiten), wenn jemand anderes die Zeit sparen möchte. – mightypile

+0

@mightypile Das ist gegenüber der Basis R! Gah! Warum???!??! –