2010-09-29 20 views
3

Je voudrais créer 10 parcelles qui ont des données différentes, mais avec le même aspect optique. Par exemple, je voudrais changer la couleur de la grille pour chaque parcelle. Ceci pourrait être effectué en ajoutantggplot2: Utiliser les options pour plusieurs parcelles

+ opts(panel.grid.major = theme_line(colour = "white") 

à chaque définition de placette. Cependant, quand je décide maintenant de changer la couleur d'arrière-plan pour dire "grey25", je devrais modifier chaque parcelle individuellement. Cela semble beaucoup trop de travail. ;)

Alors, je pensais faire quelque chose comme

opt1 <- '+ opts(panel.grid.major = theme_line(colour = "white")' 

puis définissent chaque parcelle comme

pl_x <- pl_x + opt1 
pl_y <- pl_y + opt1 
... 

Autres options (marges, polices, échelles, ...) pourraient alors être ajoutées à opt1. Cependant, cela ne fonctionne pas (message d'erreur lorsque vous essayez d'imprimer pl_x). Quelqu'un sait peut-être comment accomplir ce que je voudrais faire?

J'ai aussi joué avec theme_set et theme_update, mais qui ont donné lieu aucun de mes parcelles de travail plus à moins que je complètement redémarré R.

Répondre

3

Vous ne devez pas ajouter le signe +.

opt <- opts(panel.grid.major = theme_line(colour = "white")) 

pl_x <- pl_x + opt 

Bien que cela ne fonctionne pas:

opt <- opts(...) + scale_y_continuous(..) 

Cela fait:

opt <- opts(...) 
syc <- scale_y_continuous(...) 
pl_x <- pl_x + opt + syc 

Et grâce à l'exemple de Hadley, cela fonctionne aussi:

opt <- list(opts(...),scale_y_continuous(...)) 

Remarque: Depuis la version 0.9.2 opts a été replace par theme.

+0

Parfait! Toujours une bonne idée de réellement penser r-code vraiment à travers ...;) – donodarazao

+0

ggplot2 syntaxe est si flexible que cela le rend presque plus compliqué. J'ai trouvé ces petites gemmes avec des essais et des erreurs. –

+2

Pour le second exemple, faites une liste: 'opt <- list (opts (...), scale_y_continuous (...))' – hadley

Questions connexes