2016-01-06 9 views
5

Ich verwende oft das Theme_hc() Theme (aus dem Paket ggthemes) in ggplot2 Graphen, kombiniert mit scale_colour_pander() oder scale_fill_pander(). Ich möchte eine benutzerdefinierte Funktion namens myTheme erstellen, die diese drei Funktionen in einem vereint.Erstellen Sie benutzerdefinierte ggplot2 Funktion, die Thema und Farbe kombiniert

habe ich versucht, die folgenden

myTheme <- function(){ 
    theme_hc() + scale_colour_pander() + scale_fill_pander() 
} 
data <- data.frame(x=1:2,y=3:4) 
ggplot(data, aes(x=x, y=y)) + geom_point() + myTheme() 

Aber anscheinend wertet R dieses ersten innerhalb der Funktion und gibt eine Fehlermeldung: ‚Fehler: Sie wissen nicht, wie scale_colour_pander() zu einem Thema Objekt hinzufügen‘.

Dann habe ich versucht

myTheme <- function(){ 
    ggplot() + theme_hc() + scale_colour_pander() + scale_fill_pander() 
} 
data <- data.frame(x=1:2,y=3:4) 
ggplot(data, aes(x=x, y=y)) + geom_point() + myTheme() 

Welche zurückgibt: ‚Fehler: Sie wissen nicht, wie zu einem Grundstück hinzuzufügen o‘

Gibt es einen Weg, um die gewünschte Wirkung zu erzielen, oder soll ich halte die Kombination von die einzelnen Befehle?

+5

try 'Liste (theme_hc(), scale_colour_pander(), scale_fill_pander())' – baptiste

+0

Das funktioniert! Kannst du es als Antwort hinzufügen? – takje

+1

Takje, ich bin etwas neu zu SO (Kommentare), aber ich denke, Ihre Anfrage, um die Antwort hinzuzufügen, um @baptiste für ihn zu erhalten, um die Nachricht zu erhalten (d. H. Ohne Rückfrage). – steveb

Antwort

5

die Standardtechnik ist es, diese Elemente in einer Liste zu wickeln,

p + list(theme_hc() , scale_colour_pander() , scale_fill_pander()) 
Verwandte Themen