2017-09-06 2 views
1

La fonction que je demande est juste pour la commodité pendant la programmation. L'ajout de couches dans ggplot2 avec l'opérateur "+" est génial. L'ajout de couches au milieu revient simplement à ajouter une autre ligne de code. Cependant, si je veux essayer d'ajouter un calque après la dernière ligne, je dois ajouter un "+" à la dernière ligne et si je veux enlever à nouveau ce calque, je dois aussi enlever le "+":Fonction qui retourne simplement l'intrigue

ggplot(df, aes(x,y,...)) + 
    geom_X(...) +  # after this line, I can easily add layers 
    ... + 
    layer_Z(...)  # to add a layer after here, I have to modify also this line 

Je cherche une fonction ggidentity() qui retourne juste l'intrigue elle-même pour l'utiliser comme une dernière ligne par défaut, donc je peux facilement ajouter plus de lignes, comme dans

ggplot(df, aes(x,y,...)) + 
    geom_X(...) +  # after this line, I can easily add layers 
    ... + 
    layer_Z(...) +  # now it's easy to add layers after this line 
    ggidentity()  # this doesn't change anything in the plot 

Je l'ai essayé avec une fonction simple

identity <- function(x) x 

qui fonctionne bien avec magrittr-package (et améliore mon flux de travail dans l'analyse exploratoire des données), mais pas avec ggplot2.

+0

Tournez 'ggidentity()' 'dans la liste()'? – lukeA

Répondre

3

Je pense que nous avons besoin geom_blank(), par exemple:

library(ggplot2) # ggplot2_2.2.1 

ggplot(mtcars, aes(wt, mpg)) + 
    geom_point() + 
    geom_blank() # The blank geom draws nothing