Choisir entre qplot () et ggplot () dans ggplot2 [fermé]

98

Je commence à utiliser le grand ggplot2package pour le traçage en R, et l'une des premières choses que je me demande avant chaque tracé est "bien, vais-je utiliser qplotou ggplot?"

Je comprends que cela qplotfournit une syntaxe plus simple tout en ggplotpermettant un maximum de fonctionnalités et de flexibilité, mais quelle est la fonction que vous utilisez le plus et avez-vous des cas d'utilisation précis pour chacune? Utilisez-vous principalement qplotet ggplotuniquement pour des parcelles complexes ou utilisez-vous à ggplotchaque fois?

Merci pour vos commentaires !

Juba
la source

Réponses:

81

Quant à moi, si qplot et ggplot sont disponibles, le critère dépend de savoir si les données sont stockées dans data.frame ou dans des variables séparées.

x<-1:10
y<-rnorm(10)

qplot(x,y, geom="line") # I will use this
ggplot(data.frame(x,y), aes(x,y)) + geom_line() # verbose

d <- data.frame(x, y)

qplot(x, y, data=d, geom="line") 
ggplot(d, aes(x,y)) + geom_line() # I will use this

Bien sûr, les graphiques plus complexes nécessitent ggplot (), et je stocke généralement les données dans data.frame, donc d'après mon expérience, j'utilise rarement qplot.

Et cela semble bon de toujours utiliser ggplot (). Bien que qplot sauve la saisie, vous perdez beaucoup de fonctionnalités.

kohske
la source
2
Accepté, même si chaque réponse est utile, merci à tous!
juba
Excellente question et une superbe réponse.
d8aninja
superbe réponse en effet merci
Homam Bahrani
17

Je suis nouveau sur R mais j'ai juste pensé à partager ça.

 a <- c(1,2,3)

 b <- c(2,3,4)

 x <- qplot(a,b)

 y <- ggplot(data.frame(a,b), aes(a,b)) +geom_line()

Si je change la valeur des variables a et b, puis trace x, il prendra en compte les valeurs modifiées alors que y ne le ferait pas. Ainsi, lors du script, il serait bon d'utiliser ggplot comme si vous utilisiez qplot, tous les graphiques seront égaux aux dernières références fournies à qplot.

anishek
la source
11

Je pense que cela dépend de la fréquence et dans quel but vous avez l'intention d'utiliser ggplot2.

J'utilise principalement ggplot2 pour les graphiques dans les publications. Cela signifie que j'ai tendance à avoir besoin des fonctionnalités les plus avancées et que je n'ai donc jamais pris la peine d'en savoir plus qplot. De plus, comme j'ai environ quatre publications par an, je n'utilise pas suffisamment ggplot2 pour être vraiment à l'aise avec la syntaxe et donc me concentrer sur un seul aspect semble optimal.

Cependant, si vous obtenez de nouveaux ensembles de données chaque semaine, vous êtes probablement intéressé à explorer rapidement les ensembles de données et à produire un graphique de bonne qualité. Dans ce cas, apprenez les deux. Vous aurez suffisamment de pratique avec la syntaxe et vous gagnerez (éventuellement) du temps avec qplot.

csgillespie
la source
8

Juba, j'ai trouvé que l'on peut utiliser qplot pour la plupart des besoins de tracé de base. C'est suffisamment simple, et les valeurs par défaut assez raisonnables, que mes étudiants de premier cycle l'utilisent exclusivement et qu'ils puissent produire d'excellentes parcelles avec une expérience limitée. Et le tracé créé par qplot [p <- qplot (etc)] peut être modifié par n'importe laquelle des commandes complètes fournies par ggplot2, ce qui est pratique (ils sont tous stockés de la même manière, peu importe comment ils ont été créés). Donc, personnellement, j'utilise qplot pour presque tout, et j'enregistre ggplot pour l'intérieur des fonctions.

Bryan Hanson
la source
5
  • qplot est le choix le plus simple si vous avez affaire à des vecteurs d'entrée
  • ggplot nécessite un data.frame comme structure de données d'entrée.

Lorsque vous souhaitez produire un histogramme, qplot n'a besoin que du vecteur d'occurrences

#rnorm 
x <- rnorm(10)

#ggplot2 package: qplot
qplot(x, geom="histogram")

#ggplot2: using straight ggplot (requires conversion to data.frame)
ggplot(data.frame(x), aes(x)) + geom_histogram()
natbusa
la source
3

Une autre variante de ma part: je l'utilise qplotlorsque je tape directement dans la console et ggplotlorsque j'écris des scripts. Mais après avoir constaté à maintes reprises que je voulais recréer une intrigue que j'avais tapée dans la console 15 minutes plus tôt, je les écris presque toutes dans un script maintenant - j'utilise donc ggplot presque tout le temps.

(Intéressant de voir la diversité des réponses!)

Matt Parker
la source