Pour tracer avec R, dois-je apprendre ggplot2 ou ggvis? Je ne veux pas nécessairement apprendre les deux si l’un d’eux est supérieur à quelque égard que ce soit. Pourquoi la communauté R continue de créer de nouveaux packages avec des fonctionnalités qui se chevauchent? Le billet de blog d’introduction ne mentionne pas un mot pourquoi ggvis est créé étant donné quun package de traçage sophistiqué ggplot2 existe déjà.

Commentaires

  • ggvis est une bouilloire de poisson entièrement différente . La vraie alternative est entre ggplot et lattice .
  • Je pense que la réponse dépend de ce que vous ‘ après. Si vous ‘ recherchez des tracés statiques avancés, vous ‘ voudrez apprendre ggplot2. Pour la visualisation Web, pensez à ggvis.

Réponse

Commencez par ggplot2. Il crée des tracés statiques.

Outre les tracés statiques, ggvis peut également être utilisé pour créer des tracés interactifs. ous avez appris la syntaxe de ggplot2, alors la syntaxe pour ajouter de linteractivité pour créer des tracés ggivs suivra naturellement.

Commentaires

  • Ceci est inexact (peut-être cétait exact au moment de la rédaction). ggvis peut certainement être utilisé pour créer des graphiques statiques. Le fait quil permette également des tracés interactifs est une caractéristique, pas une limitation. Un exemple simple de tracé statique: library('ggvis'); mtcars %>% ggvis(~wt, ~mpg) %>% layer_points(fill = ~factor(cyl))

Answer

Je veux développer un peu la réponse de Dianne Cook. Comme elle la dit, ggplot2 sert à créer des graphiques statiques, ggvis est destiné aux graphiques interactifs. Il y a un tas dimplications à cela:

Type de fichier La sortie ggvis est en HTML, y compris les fichiers CSS et javascript. Ggvis ne produit pas naturellement des fichiers image ordinaires. Ggplot2 génère des images ordinaires, qui peuvent alors être incorporé dans HTML ou pdf ou gif ou envoyé par e-mail, ou quoi que ce soit dautre. ggvis, si vous voulez envoyer le fichier par e-mail, vous «recompressez un répertoire de fichiers HTML à afficher dans un navigateur.

Animation Une conséquence de cela est que si vous voulez créer une animation, vous pouvez faire le images dans ggplot2 et les fusionner, mais il ny a pas de moyen naturel de le faire avec ggvis. ggvis agissant de manière interactive animera « en direct », mais ce sont différents types danimation. Sil y a plus de choses par image que ggvis peut traiter , vous ne pouvez pas contourner ce problème (du moins de manière naturelle) en générant les images et en créant le film en arrière-plan. De même, lutilisateur ne peut pas télécharger un film ou un fichier gif à partir de ggvis pour le rejouer.

En ce moment, dans mon projet actuel, je suis passé de ggplot2 à ggvis car ggplot2 était bien trop lent pour une animation interactive. Mais, jaimerais aussi que lutilisateur, après avoir joué avec les paramètres, puisse cliquer sur « OK » et télécharger un film danimation fluide à pleine vitesse de ce quil a fait. Je nai pas compris comment faire cela en utilisant ggvis, mais ce serait du gâteau en utilisant ggplot2.

Vitesse ggvis est beaucoup, beaucoup, beaucoup plus rapide que ggplot2, en particulier lors du changement de données. Chaque tracé ggplot2 a une seconde ou quelques délais. ggvis en a environ une seconde lorsque vous créez le tracé pour la première fois, après quoi la modification des données est transparente – ggvis peut être lié « de manière réactive » aux données afin quil se mette à jour chaque fois que les données changent. Avec ggplot2, lensemble de lintrigue va être redessiné.

Style & Apparence Les tracés ggplot2 semblent un peu plus agréable, à première vue, que les graphiques ggvis. Les graphiques ggplot2 sont assez élégants. Les graphiques ggvis sont plus simples, mais ils grandissent sur moi. Il existe également des extensions pour ggplot2, comme les paquets xkcd et wesanderson, où il ny a pas danalogue pour ggvis. Les graphiques ggplot2 semblent tous avoir été créés par la même personne (lauteur de ggplot2) et cela se fatigue après un certain temps.

Complétude Il existe des types de tracés que vous pouvez créer dans ggplot2 que ggvis ne prend pas en charge, au moins jusque là. Par exemple, il ny a pas délément de tracé « tapis » dans ggvis. Jai vu un ou deux choroplèthes créés avec ggvis, mais il ny a pas encore de support intégré naturel. Ggplot2 a des coordonnées polaires (cest-à-dire des graphiques à secteurs) , ggvis ne le fait pas. Également manquant dans ggvis (et disponible dans ggplot2 ou dans une extension ggplot2): boîtes à moustaches; tracés de courbes de niveau; cartes de chaleur naturelles; diagrammes de corrélation naturelle; tracés de points; tracés de violon; tracés de réseau; dendrogrammes. Bien sûr, je suis sûr certaines personnes très intelligentes peuvent créer tout cela dans ggvis, mais je ne suis pas si malin.

Annotations ggplot2 a un très beau cadre dannotation, peut-être sous-utilisé, contrairement à ggvis.

Sous-graphes & Facettes ggplot2 a un très joli , mais peut-être plutôt limitée, caractéristique de « facettage ». Vous pouvez également combiner plusieurs tracés ggplot2 à laide du package grid. Pour linstant, vous ne pouvez pas faire non plus avec ggvis. Les tracés ggvis ne peuvent pas être combinés en une seule image (car ce ne sont pas des images, ce sont des pages Web en direct), et il ne prend en charge aucun type de facettage ou de sous-tracé. Ceci est censé être dans le pipeline.

Flexibilité visuelle ggplot2 veut que chaque intrigue se ressemble, ce qui signifie que lauteur préfère stylistiquement. Il y a pas moyen, par exemple, davoir un tracé avec plusieurs axes y dans ggplot2. ggvis peut. ggvis est beaucoup plus flexible que ggplot2. Il est beaucoup plus facile de faire des choses comme masquer les légendes, combiner plusieurs légendes en une seule, utiliser différentes échelles pour différentes éléments sur le même tracé, etc.

Personnalisation profonde Si vous voulez créer, disons, un nouvelle échelle intelligente, ce nest pas trop difficile de faire ça dans ggplot2 (bien que ce soit assez déroutant). Il ne semble pas y avoir de moyen de faire beaucoup de ça dans ggvis. Peut-être que ce nest tout simplement pas encore.

Séries chronologiques ggplot2 naime pas tracer des séries chronologiques. Il peut , mais il ne veut pas . En fait, aucun d’eux ne le veut; les deux insistent pour être alimentés en données dans un data.frame, et ils ne peuvent pas gérer xts ou objets de zoo. Ils nont pas non plus de fonctionnalités intégrées pour découper une série chronologique. Mais ggvis ne se bat pas contre la série chronologique aussi durement que ggplot2. Cest en partie parce quil est si rapide de mettre à jour les données dans un tracé ggvis, je suppose. Si vous voulez tracer une série temporelle, vous devrez battre lun ou lautre en soumission, mais ggvis est beaucoup moins passif-agressif à ce sujet .

Ont-ils la même syntaxe? En quelque sorte … Il y a « beaucoup de choses en commun entre eux , et apprendre à penser dans le style de l’un aidera à s’adapter au style de l’autre. En particulier, les deux sont conçus pour que tous les appels de tracé soient acheminés l’un dans l’autre sur une seule ligne de Le principal avantage de ceci est quil rend le débogage et le profilage vraiment difficiles, et rend fondamentalement les fonctionnalités de débogage / profilage dans des choses comme Rstudio inutiles. En dehors de cela, elles sont syntaxiquement très différentes. Certaines choses difficiles dans ggplot2 sont faciles dans ggvis. Certaines choses qui sont faciles dans ggplot2 sont impossibles dans ggvis. Et vice versa. (Jai une petite préférence pour la façon dont ggvis fait les choses, ce que je trouve plus facile à comprendre.)

Bogues ggvis en a encore pas mal. Parfois, il se comporte bizarrement. Parfois, cependant, les tracés disparaissent au hasard pour des raisons qui prennent des heures à être contournées et qui nont que très peu de sens. Les développeurs ladmettent librement, ggvis nest pas encore prêt pour la production. Si vous faites face à une complexité, vous découvrirez qu’ils ne plaisantent pas.

The Bottom Line: Lapprentissage du tracé intermédiaire dans chacun prend environ 16 heures. Donc, de manière réaliste, vous allez probablement apprendre les deux.

Commentaires

  • Excellente comparaison
  • Quest-ce quun ggvis, un treillis ou un rgl plus rapide? (pour les grands ensembles de données)
  • +1 article fantastique. Je suis daccord avec tout ici basé sur mes expériences avec les deux jusquà présent.
  • Bonjour, Et ggvis vs rcharts?
  • TIME SERIES: ggplot2 gagne définitivement avec lextension ggfortify. Consultez cette excellente documentation à ce sujet: rpubs.com/sinhrks/basics .

Réponse

Je pense que le message qui apparaît après library(ggvis) est explicite:

LAPI ggvis évolue actuellement rapidement. Nous vous recommandons vivement de ne pas vous fier à cela pour la production, mais nhésitez pas à lexplorer. Si vous rencontrez un bogue clair, veuillez déposer un exemple reproductible minimal à https://github.com/rstudio/ggvis/issues . Pour les questions et autres discussions, veuillez utiliser https://groups.google.com/group/ggvis .

Par rapport à ggplot2, ggvis manque toujours de certaines fonctionnalités et de certains polish (aucun moyen dajouter un titre à un graphique par exemple, les titres des axes se chevauchant avec des étiquettes de graduation, et il y en a plus, la facettisation nest pas prise en charge, etc.) Dautre part, la syntaxe ggvis semble un peu plus propre et linteractivité est vraiment géniale.

Daprès ma propre expérience, ggvis est un must si vous créez une application brillante. Ensuite, les avantages davoir un moteur de traçage de graphiques convivial pour le Web et R lemportent largement sur les lacunes quil présente actuellement.

Si vous voulez faire des graphiques statiques pour lexploration de données, alors ggplot2 est une bibliothèque mature avec beaucoup de fonctionnalités intéressantes et avec une communauté dutilisateurs saine et de nombreuses ressources pour apprendre.

La philosophie derrière les deux packages est similaire, donc les compétences peuvent être transférées assez facilement dun package à un autre.

Réponse

La communauté R ne cesse de proposer de nouveaux packages (qui se chevauchent souvent) pour diverses raisons:

1) Quelquun veut changer quelque chose ou ajouter quelque chose qui nest pas disponible dans un paquet existant, mais une grande partie se chevauche (doù beaucoup de paquets qui font de la régression)

2) Quelquun écrit un package comme devoir

3) Ecrire des packages est amusant (si vous aimez ce genre de chose)

4) Ils ne savent pas que le package original existe

Commentaires

  • Concernant lexemple spécifique et votre point 4: ggvis est écrit par les mêmes personnes que ggplot2. Le point important ici est que lutilisation de ggplot2 est si répandue quil est devenu impossible dimplémenter des changements sans casser un grand nombre de codes existants / packages dépendants.
  • Ce type de réinvention de packages préexistants est-il destiné à se passe-t-il comme les récessions économiques dans les sociétés capitalistes?
  • @Peter: En tant quétranger à R, cela me semble être un commentaire honnête mais (le plus inhabituel) vous ne ‘ t réponds à la question!
  • @NickCox Jai répondu à lune des questions qui sont dans la question. :-).
  • @Peter Point très juste. Une référence croisée à stats.stackexchange.com/questions/58966/… est donc à mon avis pertinente.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *