97 votes

Choix entre qplot() et ggplot() dans ggplot2

Je commence à utiliser le grand ggplot2 pour le traçage dans R, et l'une des premières choses que je me demande avant chaque traçage est "Bien, est-ce que j'utiliserai qplot ou ggplot ?"

Je comprends que qplot fournit une syntaxe plus simple tandis que ggplot permet 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 d'elles ? Utilisez-vous principalement qplot et ggplot uniquement pour les parcelles complexes, ou utilisez-vous ggplot chaque fois ?

Merci pour vos commentaires !

80voto

kohske Points 30437

Pour ma part, si qplot et ggplot sont tous deux disponibles, le critère dépend du fait que les données soient stockées dans un 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, un tracé plus complexe nécessite ggplot(), et je stocke généralement les données dans data.frame, donc dans mon expérience, j'utilise rarement qplot.

Et il semble bon de toujours utiliser ggplot(), car l'utilisation de qplot ne fait qu'économiser votre type mais perd de nombreuses fonctionnalités.

17voto

user1514287 Points 273

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

 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 et que je trace ensuite x, il tiendra compte des valeurs modifiées alors que y ne le fera pas. Ainsi, lors de la création de scripts, il serait bon d'utiliser ggplot car si vous utilisez qplot, tous les graphiques seront égaux aux dernières références fournies à qplot.

11voto

csgillespie Points 20349

Je pense que cela dépend de la fréquence et de l'objectif de l'utilisation de 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 jamais pris la peine d'en apprendre davantage sur 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 il me semble donc optimal de me concentrer sur un seul aspect.

Cependant, si vous recevez de nouveaux ensembles de données chaque semaine, vous êtes probablement intéressé par une exploration rapide des ensembles de données. et produire une intrigue 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 .

8voto

Bryan Hanson Points 2415

Juba, j'ai trouvé que l'on peut utiliser qplot pour la plupart des besoins de base en matière de traçage. Il est suffisamment simple, et les valeurs par défaut sont raisonnables, pour que mes étudiants de premier cycle l'utilisent exclusivement et qu'ils puissent produire d'excellents tracés 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 je garde ggplot pour l'intérieur des fonctions.

5voto

natalinobusa Points 136
  • qplot est le choix le plus simple si vous traitez des vecteurs d'entrée.
  • ggplot requiert un data.frame comme structure de données d'entrée.

Lorsque vous voulez 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()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X