2016-01-06 4 views
5

Spesso utilizzo il tema theme_hc() (dal pacchetto ggthemes) nei grafici ggplot2, combinato con scale_colour_pander() o scale_fill_pander(). Voglio creare una funzione personalizzata ora chiamata myTheme che combina queste tre funzioni in una sola.Crea la funzione ggplot2 personalizzata che combina tema e colore

ho provato la seguente

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() 

Ma a quanto pare R valuta questo primo all'interno della funzione e dà un errore: 'Errore: Non so come aggiungere scale_colour_pander() per un oggetto tema'.

Poi ho provato

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() 

che restituisce: 'Errore: Non so come aggiungere o ad un complotto'

C'è un modo per ottenere l'effetto desiderato o devo continuare combinando i singoli comandi?

+5

prova 'lista (theme_hc(), scale_colour_pander(), scale_fill_pander())' – baptiste

+0

Questo funziona! Puoi aggiungerlo come risposta? – takje

+1

takje, Sono un po 'nuovo a SO (commenti) ma penso che la tua richiesta di aggiungere la risposta necessaria per includere @baptiste per lui per ottenere il messaggio (cioè senza dover ricontrollare per caso). – steveb

risposta

5

la tecnica standard è di avvolgere quegli elementi in un elenco,

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