Wie kann ich den Streifentext von facet_grid-Plots bearbeiten?

100

Ich frage mich, wie ich die Größe von Streifentext in facettierten Plots ändern kann. Meine Frage ähnelt einer Frage zu Handlungstiteln , aber ich befasse mich speziell mit der Bearbeitung nicht des Handlungstitels, sondern des Textes, der in Facettentiteln (strip_h) erscheint.

Betrachten Sie als Beispiel den mpg-Datensatz.

    library(ggplot2) 
    qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)

Die resultierende Ausgabe erzeugt einige Facettentitel, die nicht in den Streifen passen.

Ich denke, es muss eine Möglichkeit geben, gridmit dem Streifentext umzugehen. Aber ich bin immer noch ein Neuling und war mir aus dem gridAnhang in Hadleys Buch nicht sicher , wie ich es genau machen soll. Außerdem hatte ich Angst, wenn ich es falsch machen würde, würde es meine Waschmaschine kaputt machen, da ich glaube, dass alle Technologien durch The Force verbunden sind :-(

Vielen Dank im Voraus.

briandk
quelle

Antworten:

133

Sie können ändern strip.text.x(oder strip.text.y) unter Verwendung von theme_text(), zum Beispiel

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      opts(strip.text.x = theme_text(size = 8, colour = "red", angle = 90))

Update: für ggplot2 Version> 0.9.1

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))
rcs
quelle
+1 Sehr schön. Gibt es eine Möglichkeit, auch die Annotation der x-Achse zu verbessern?
George Dontas
Danke rcs. Ich bin mit gd047, und vielleicht sollte das eine separate Frage sein? Was Sie bemerken, ist das Gedränge der wichtigsten x-Werte, denke ich. Es sollte eine Möglichkeit geben, die Werte der Hauptmarkierungen für die x- und y-Achse manuell festzulegen, aber ich kann mich nicht erinnern, was es ist :-(
briandk
@ gd047:axis.text.x=theme_text(...)
rcs
1
Links in diesem Q sollten etwas informativ sein: stackoverflow.com/questions/2258784/list-of-ggplot2-options
Roman Luštrik
6

Ich denke, im Beispiel ist das mpgÄndern des Drehwinkels und der Schriftgröße in Ordnung, aber in vielen Fällen finden Sie sich möglicherweise mit Variablen wieder, die ziemlich lange Beschriftungen haben, und es kann (im wahrsten Sinne des Wortes) zu einem Schmerz im Nacken werden, gedrehte lange Beschriftungen zu lesen .

Zusätzlich (oder ergänzend) zum Ändern von Winkeln und Größen formatiere ich normalerweise die Beschriftungen der Faktoren neu, die definieren, facet_gridwann immer sie auf sinnvolle Weise aufgeteilt werden können.

Normalerweise, wenn ich eine dataset$variablemit Zeichenfolgen habe, die so aussieht

c("median_something", "aggregated_average_x","error","something_else")

Ich mache einfach:

reformat <function(x,lab="\n"){ sapply(x, function(c){ paste(unlist(strsplit(as.character(c) , split="_")),collapse=lab) }) }

[Vielleicht gibt es bessere Definitionen von, reformataber zumindest funktioniert diese gut.]

dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab='\n')

Und nach dem Facettieren sind alle Etiketten gut lesbar:

ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)
G Chalancon
quelle
1
Vielleicht ist so etwas besser: Levels (Birds $ Effect) <- gsub ("", "\ n", Levels (Birds $ Effect))
dca