2016-07-28 12 views
1

Ich lese diesen question und diese anderen question Kampf \n und expression in ggplot2 Achsenbeschriftungen verwenden, aber es scheint, es nicht für den Titel (oder für Multi-Line-Ausdrücke) funktioniert.mehrzeilige `Ausdruck()` in ggplot2 Titel

Meine ursprüngliche Handlung folgt:

ggplot(data = fig3, aes(x=crude_beta_time6, y=vidD_beta_time6)) + 
    geom_point(shape=18, size=5, color="gray60") + xlab("Coefficients of the crude model") + 
    ylab(bquote("Coefficients of the total 25(OH)D"[3]~"adjusted model")) + 
    theme_bw(base_size = 17) + theme(
     panel.grid.major = element_line(color = "gray20", size = 0.3, linetype = "dashed"), 
     panel.grid.minor = element_line(color = "gray40", size = 0.3, linetype = "dashed") 
    ) + ggtitle(expression(paste("(B) Coefficients of the crude model vs the total 25(OH)", D[3]," adjusted model (0h vs 6h)", sep=""))) 

enter image description here

Aber der Titel ist zu lang, so habe ich versucht, zwei Bruchlinien, die in der genannten Frage empfohlen atop Befehl zu setzen: ein zwischen vs und die und die zweite zwischen Modell und (0h vs 6h).

ggplot(data = fig3, aes(x=crude_beta_time6, y=vidD_beta_time6)) + 
    geom_point(shape=18, size=5, color="gray60") + xlab("Coefficients of the crude model") + 
    ylab(bquote("Coefficients of the total 25(OH)D"[3]~"adjusted model")) + 
    theme_bw(base_size = 17) + theme(
     panel.grid.major = element_line(color = "gray20", size = 0.3, linetype = "dashed"), 
     panel.grid.minor = element_line(color = "gray40", size = 0.3, linetype = "dashed") 
    ) + ggtitle(expression(atop(paste("(B) Coefficients of the crude model vs\nthe total 25(OH)", D[3]," adjusted model\n(0h vs 6h)", sep="")))) 

Und ich dieses seltsame Verhalten des Titels:

enter image description here

Wie kann ich eine dreizeilige und zentriert Titel dachte einen Ausdruck?

UPDATE:

Benutzer Shirin Glander vorgeschlagen, um die Ränder des Grundstücks, um zu aktualisieren, um mehr Platz für den Titel zu machen. Folgt den bereitgestellten Code:

ggplot(data = fig3, aes(x=crude_beta_time6, y=vidD_beta_time6)) + 
geom_point(shape=18, size=5, color="gray60") + xlab("Coefficients of the crude model") + 
ylab(bquote("Coefficients of the total 25(OH)D"[3]~"adjusted model")) + 
theme_bw(base_size = 17) + theme(
    panel.grid.major = element_line(color = "gray20", size = 0.3, linetype = "dashed"), 
    panel.grid.minor = element_line(color = "gray40", size = 0.3, linetype = "dashed")) + 
ggtitle(expression(atop(paste("(B) Coefficients of the crude model vs\nthe total 25(OH)", D[3]," adjusted model\n(0h vs 6h)", sep="")))) + 
theme(plot.margin=unit(c(4,0,0,0),"cm")) 

Die Ergebnisse dieses Code mehr Platz für den Titel tragen, aber der Titel ist nicht Eigentum gezeigt:

enter image description here

Antwort

0

Sie müssen die oberen Ränder zu erhöhen. Außerdem funktioniert Expression nicht gut mit Zeilenumbrüchen. Versuchen Sie folgendes:

ggplot(data = fig3, aes(x=crude_beta_time6, y=vidD_beta_time6)) + 
geom_point(shape=18, size=5, color="gray60") + xlab("Coefficients of the crude model") + 
ylab(bquote("Coefficients of the total 25(OH)D"[3]~"adjusted model")) + 
theme_bw(base_size = 17) + theme(
    panel.grid.major = element_line(color = "gray20", size = 0.3, linetype = "dashed"), 
    panel.grid.minor = element_line(color = "gray40", size = 0.3, linetype = "dashed") 
) + ggtitle(expression(atop("(B) Coefficients of the crude model vs", "the total 25(OH)" ~ D[3] ~ "adjusted model (0h vs 6h)"))) + 
theme(plot.margin=unit(c(4,0,0,0),"cm")) 

Ich habe einfach theme(plot.margin=unit(c(4,0,0,0),"cm")) und entfernt den Einfügen-Befehl innerhalb expression(). Sie können neue Zeilen in Ausdruck durch "," festlegen.

+0

Danke für Ihre Antwort, aber, für mich hat es nicht funktioniert. Ich habe die Fragen mit einem anderen Bild der erhaltenen Ergebnisse aktualisiert. Während die Ränder mehr oder weniger richtig eingestellt sind, werden die Titel nicht richtig angezeigt. – carlesh