2012-11-27 4 views
7

Ich verwende ggplot2, um ein Streudiagramm zu generieren. Ich habe den Titel zu einer Variablen gemacht, wie kann ich die Schriftgröße ändern? Der Code ist als die folgende:Wie ändert man die Schriftgröße des Plottitels, wenn der Titel eine Variable in ggplot2 ist?

library("ggplot2") 
plotfunc <- function(x){ 
    x + 
    geom_point() + 
    geom_smooth(se = FALSE, method = "lm", color = "blue", size = 1) + 
    opts(title = plottitle, 
      axis.title.x = theme_text(size = 8, colour = 'black'), 
     axis.title.y = theme_text(size = 8, colour = 'black', angle = 90)) 
} 

plottitle <- "This is Title" 
p <- ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width)) 
plotfunc(p) 

I

versucht
opts(title = plottitle (size = 10),... 

aber es ist ein Fehler aufgetreten:

Error in opts(title = plottitle(size = 10), 
axis.title.x = theme_text(size = 8, : could not find function "plottitle" 

Es wird als Funktion erkannt wurde, das war nicht das, was ich will. Was soll ich tun? Vielen Dank.

+0

Ich habe versucht, Ihr Beispiel auszuführen, aber ich habe nicht die 'Label' Funktion, die Sie verwenden, auch sollten Sie in Erwägung ziehen, eine 'require (ggplot2)'. Wenn Ihr Beispiel tatsächlich reproduzierbar ist, ist es viel einfacher für uns, Ihnen zu helfen. –

Antwort

1

Sie stellen ein „(“ als der nächste Nicht-Leerzeichen nach plottitle so der Dolmetscher beschlossen, es muss eine Funktion sein

.... opts(title=plottile, size=10) 

Dies war die lange Liste der Erwärmung Nachrichten Versuchen.

Warning messages: 
1: 'opts' is deprecated. 
Use 'theme' instead. 
See help("Deprecated") 
2: 'theme_text' is deprecated. 
Use 'element_text' instead. 
See help("Deprecated") 
3: 'theme_text' is deprecated. 
Use 'element_text' instead. 
See help("Deprecated") 
4: In opts(title = plottitle, axis.title.x = theme_text(size = 8, colour = "black"), : 
    Setting the plot title with opts(title="...") is deprecated. Use labs(title="...") or ggtitle("...") instead. 
+0

Ich habe 'opts (title = plottitle, size = 10) + opts (axis.title.x = theme_text (size = 8, color = 'schwarz'), axis.title.y = theme_text (size = 8, color = 'black', angle = 90)) 'Es ist ein Fehler aufgetreten:' Fehler: "size" ist kein gültiger Name für das Designelement' – Autumn

+0

Noch ein Fehler und keiner, der von Ihrem Code abzusehen war. Außerdem bekomme ich beim Ausführen des Codes nur Warnungen über die veraltete Verwendung von Optionen, aber ich bekomme diesen Titel in der Handlung. –

8

Wenn entscheidet sich() funktioniert immer noch für Sie dann eine alte Version von ggplot2 Sie verwenden. der neuere Befehl ist Thema(). In jedem Fall, dass Sie nicht wollen, die ein setzen ctual Titellabel in setzt oder Thema - Labors()

plotfunc <- function(x){ 
    x + 
    geom_point() + 
    geom_smooth(se = FALSE, method = "lm", color = "blue", size = 1) + 
    theme(axis.title.x = element_text(size = 8, colour = 'black'), 
     axis.title.y = element_text(size = 8, colour = 'black', angle = 90))+ 
    labs(title='this', x='that', y='the other')+ 
    theme_bw() 
} 

## plottitle <- "This is Title" 
p <- ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width)) 
plotfunc(p) 

enter image description here

+1

FYI - wenn Sie 'theme()' stuff vor 'theme_bw()' übergeben, wie Sie oben tun, haben Ihre 'size = 8' Optionen keine Wirkung. 'theme_bw()' ist eine Voreinstellung, die 'theme()' -Einstellungen überschreibt (eine Anmerkung dazu in meiner Antwort unten hinzugefügt). Versuchen Sie, zu 'size = 2' zu wechseln und Sie werden keine Änderungen bemerken. 'Theme_bw() +' vor 'theme (...)' wird funktionieren; es wird zuerst das Preset anwenden, und dann werden 'theme (...)' argumente die Einstellungen von 'theme_bw()' überschreiben, wo anwendbar. – Hendy

6

Lächerlich spät Antwort, aber ich glaube nicht, die vorhandenen Antworten die eigentliche Frage gerichtet:

I made the title into a variable, how can I change the font size?

Dies funktioniert für mich und ist in der aktualisierten ggplot Syntax (theme() vs. opts()):

library(ggplot2) 
plotfunc <- function(x){ 
    x + 
    geom_point() + 
    geom_smooth(se = FALSE, method = "lm", color = "blue", size = 1) + 
    labs(title = plottitle) + 
    ### pay attention to the ordering of theme_bw() vs. theme() 
    theme_bw() + 
    theme(plot.title = element_text(size = 20), 
      axis.title.x = element_text(size = 12), 
      axis.title.y = element_text(size = 8)) 

} 

plottitle <- "This is Title" 
p <- ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width)) 
plotfunc(p) 

ich folgendes:

ggplot theme(plot.title)

Eine Notiz über meine theme_bw() Kommentar: versuchen, die oben ausgeführt, sondern setzen theme_bw() zuletzt, nach dem theme(plot.title, ...) Bit, wie in Stephen Hendersons Antwort oben. Sie werden feststellen, dass keine der Schriftgrößen wirksam wird. Dies liegt daran, dass theme_bw() eine Voreinstellung ist, die verschiedene benutzerdefinierte theme() Optionen überschreibt, wenn Sie sie nach dem Hinzufügen übergeben.

Nur eine knifflige Sache, auf die man achten sollte; Ich habe es nur wegen der Verwendung von theme_bw() viel gelernt und hämmerte meinen Kopf gegen die Wand versuchen, herauszufinden, warum andere theme() Optionen nicht funktionierten, bevor es realisiert wurde, war nicht meine ggplot Syntax schließlich, aber die Reihenfolge meiner Einstellungen. Erhielt Liebe Codierung :)

Auch hier ist the full list of options können Sie an theme() als Referenz für das, was Sie zwicken können und wie.

Verwandte Themen