InseeFrLab / utilitR

Source of the utilitR French R documentation
https://book.utilitr.org/
Other
75 stars 57 forks source link

[Fiches thématiques] Fiche sur les graphiques #35

Closed linogaliana closed 3 years ago

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 3, 2020, 16:12

Cette issue ouvre la discussion sur la fiche Faire des graphiques avec R. Je vois trois questions:

Quelles ressources externes mobiliser?

Quelles recommandations et quel contenu?

J'ai deux questions sur le contenu de la fiche:

J'ai pour ma part une préférence marquée pour esquisse, car cet add-in fournit immédiatement le code ggplot2, contrairement à ggformula qui implique d'apprendre une autre syntaxe.

Quel jeu de données pour les exemples?

Veut-on des données en français? Ou un jeu de données fourni par défaut (diamonds, iris)?

linogaliana commented 3 years ago

In GitLab by @gillesfidani on Apr 4, 2020, 12:16

@oliviermeslin :

de mon côté, légère préférence pour ggformula, pour son approche "douce" de la grammaire graphique en ligne de commandes.

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 4, 2020, 12:26

Je ne suis pas vraiment surpris :smile:

Pour ma part, je trouve que la syntaxe ggplot est déroutante au début, et que c'est embrouillant pour les débutants de leur faire apprendre une seconde syntaxe avant de faire vraiment du ggplot. On va voir ce qu'en pensent les autres.

linogaliana commented 3 years ago

In GitLab by @ggenin on Apr 4, 2020, 14:01

Bonjour, je suis habituée à ggformula. Après, si la COPS préfère exquisse, je ne suis pas contre, je m'adapterai.

Pour les données, je préfère une ou des tables Insee. Cela a l'intérêt que le résultat sera parlant. Je viens de refaire la table Estel départements pour la rendre plus cohérente. 1,6 Mo. L"avantage, c'est qu'on peut la merger avec ma table population, puisqu'on a les depts et/ou régions.

D'autre part, la carto, on l'aborde ici ou ailleurs ?

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 4, 2020, 14:06

@ggenin: une fiche cartographie est prévue, qui ira en binôme avec la fiche données spatiales qui est déjà écrite (en version 0).

linogaliana commented 3 years ago

In GitLab by @RLesur on Apr 4, 2020, 15:56

Mon opinion : pourquoi ne faudrait-il choisir qu'un seul package (j'ai toujours eu du mal à comprendre cet objectif) ? Ca ne me choque pas que certaines personnes utilisent ggformula et d'autres ggplot2.

Il ne faut pas oublier que ggformula rajoute une couche de sucre syntaxique au dessus de ggplot2 qui lui même est du sucre syntaxique au dessus des graphiques de base.

Quand on voit que ggplot2 est en Depends de ggformula, ce serait un non sens de dire "on n'utilise que ggformula et pas ggplot2". L'inverse n'est pas vrai.

Quand à esquisse, c'est simplement un addin d'aide à ggplot2. Même raisonnement que pour ggformula.

linogaliana commented 3 years ago

In GitLab by @RLesur on Apr 4, 2020, 15:58

Emettre des recommandations sur les packages de carto est à mon sens la question la plus difficile...

linogaliana commented 3 years ago

In GitLab by @gillesfidani on Apr 4, 2020, 16:02

c'est aussi mon avis. C'est pourquoi je pense qu'il faut mentionner les 2 packages dans la doc. Par contre, je ne sais pas s'il faut montrer leur fonctionnement. Si vous pensez que c'est nécessaire, pour esquisse, ça va donner du boulot à @oliviermeslin qui va devoir se taper la conversion d'un gif en images animées pour la version pdf d'utilitR (le pauvre).

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 4, 2020, 17:11

Je me rends compte que mes messages précédents n'étaient pas clairs, et que je suis d'accord avec vous. Je ne suis pas du tout dans l'idée de ne recommander qu'un seul package, mais de proposer un nombre réduit d'outils qui répondent à la grande majorité des usages et aux niveaux des agents.

J'avais en tête la structure suivante pour la fiche graphiques:

Je retiens de cet échange qu'on pourrait présenter les trois (esquisse, ggformula et ggplot2), mais ça risquerait de faire une fiches un peu longue. Ou alors on peut faire deux fiches: 1/ Découvrir les graphiques en R (esquisse, ggformula), et 2/ Faire des graphiques avec ggplot2.

linogaliana commented 3 years ago

In GitLab by @ggenin on Apr 4, 2020, 18:47

Pourquoi les 3 syntaxes de graphiques ? Je fais tout avec ggformula, hormis les radars et la carto. Qui ne se font pas non plus avec ggplot2. Si on s'adresse à des débutants, autant choisir une syntaxe, la plus facile de préférence. Si on n'arrive pas à faire certains graphes avec elle, alors on verra. On aura déjà couvert les 90% des cas, ce qui n'est pas mal. Quel intérêt a-t-on de proposer ggplot2 plutôt que l'un des 2 autres ? Pourquoi pas alors montrer aussi les graphes de Rbase ? J'en connais des adeptes.

linogaliana commented 3 years ago

In GitLab by @RLesur on Apr 4, 2020, 19:54

@ggenin Quand tu parles de 3 syntaxes, je n'ai pas bien suivi car dans l'échange, j'en vois 2 (ggformula et ggplot2).

Sur ta proposition de ne présenter principalement que ggformula, je me pose une seule question : ça placerait l'Insee dans une situation très atypique par rapport à l'ensemble des utilisateurs de R (= le reste du monde). Il faut bien voir que ggformula n'a pas une grosse base d'utilisateurs en comparaison de ggplot2 et de plus, ggformula n'a qu'un seul mainteneur. Si un utilisateur de l'Insee a un problème avec ggformula, bon courage pour trouver de l'aide dans la communauté R : personne ne connaît et n'utilise ce package à part quelques profs et leurs étudiants.

Je pense que stratégiquement, c'est un choix très délicat : faire reposer la maintenance des graphiques de l'Insee sur un prof perdu au fin fond des Etats-Unis, ça me paraît un poil risqué. A moins que l'Insee ne soit prêt à assurer la maintenance de ce package au cas où il soit abandonné.
Bref, même si le package est sympa, j'aurais tendance à l'éviter pour ces raisons (je l'ai d'ailleurs déconseillé à mon boulot).

ggplot2 a pour avantage sa communauté d'utilisateurs, il ne faut pas négliger cet aspect. C'est le package le plus populaire pour faire des graphiques en R. Il y a des dizaines de tutoriels/cours/documentations. Tu pourras toujours trouver quelqu'un pour t'aider sur ggplot2 et quand à la maintenance, il y a largement moins d'inquiétudes à avoir que sur ggformula. Franchement, ce serait très étrange de ne pas le présenter dans une documentation qui porte sur la réalisation de taches courantes.

Enfin, pour les graphiques R-base, la question peut effectivement se poser notamment en lien avec les packages de carto (même si on peut faire de la carto avec ggplot2). En effet, tmap et cartography ont des syntaxes proches des plots de R-base. Mais ça, ça dépend de ce que vous retiendrez pour les cartes.

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 5, 2020, 13:33

Je suis d'accord avec Romain sur la comparaison de ggplot2 et ggformula. Il me semble que la popularité de ggplot2 et le grand nombre de ressources sur ce package lui donnent un gros avantage (décisif de mon point de vue). Ceci dit, ça n'interdit évidemment pas aux agents d'utiliser ggformula plutôt que ggplot2 s'ils préfèrent faire comme ça.

Je m'interroge plutôt sur la façon dont on veut familiariser les agents avec ggplot2: via esquisse, via ggformula, ou en présentant directement la syntaxe ggplot2.

linogaliana commented 3 years ago

In GitLab by @linogaliana on Apr 6, 2020, 06:52

Je pense que stratégiquement, c'est un choix très délicat : faire reposer la maintenance des graphiques de l'Insee sur un prof perdu au fin fond des Etats-Unis, ça me paraît un poil risqué. A moins que l'Insee ne soit prêt à assurer la maintenance de ce package au cas où il soit abandonné.
Bref, même si le package est sympa, j'aurais tendance à l'éviter pour ces raisons (je l'ai d'ailleurs déconseillé à mon boulot).

ggplot2 a pour avantage sa communauté d'utilisateurs, il ne faut pas négliger cet aspect. C'est le package le plus populaire pour faire des graphiques en R. Il y a des dizaines de tutoriels/cours/documentations. Tu pourras toujours trouver quelqu'un pour t'aider sur ggplot2 et quand à la maintenance, il y a largement moins d'inquiétudes à avoir que sur ggformula. Franchement, ce serait très étrange de ne pas le présenter dans une documentation qui porte sur la réalisation de taches courantes.

@RLesur a absolument raison sur ce point. Je ne comprends pas l'intérêt d'éviter la solution plébiscitée par l'ensemble de la communauté R. Je pense qu'il est fondamental de présenter ggplot2 sinon les agents ne pourront jamais acquérir l'autonomie nécessaire pour réaliser des tâches courantes en R. En plus, @RLesur a raison c'est très risqué à moyen terme.

Quant à la pédagogie? Est-ce plus dur d'expliquer

# ggformula
gf_point(mpg ~ hp, data = mtcars)

que

# ggplot2
ggplot(data = mtcars) + geom_point(aes(y = mpg, x = hp))

? Je n'en suis pas sûr, on est au même niveau d'abstraction, on a juste une formule dans un cas contre des options esthétiques dans l'autre.

S'il faut choisir, je préfère vraiment l'option esquisse: elle familiarise à ggplot2. Mon maître de stage à EDF a appris ggplot comme ça.

Mais il faut faire attention dans la présentation de la solution esquisse: ce n'est que pour découvrir la grammaire sur petites données ; il ne s'agit pas de tâtonner sur un graphique avec des données de plusieurs centaines de milliers de lignes

linogaliana commented 3 years ago

In GitLab by @ggenin on Apr 6, 2020, 08:23

Bon, je ne sais pas. ggplot, esquisse, ggformula, décidez-vous. Mais si on veut faire simple, il ne faut en montrer qu'une syntaxe, pas 3. Je disais ggformula parce que c'était préconisé par la COPS et sélectionné par le GT de la refonte de la formation R à la DG. Si on change les choix, OK, mais je crains qu'on retombe dans un truc où chacun il fait comme il veut et que donc les novices (les vrais, ceux qui veulent juste qu'on leur montre quel est le code qu'il faut utiliser sans devoir lire la doc en anglais sur internet) ne soient encore perdus.

Par ailleurs, ggformula ne tient qu'à un prof ? Qu'est-ce qui empêcherait une grosse boîte comme l'Insee de le prendre à sa charge le cas échéant ? Nous ne sommes pas non plus à l'abri que ggplot2 (ou 3) ne se mette à évoluer, ou même Rbase. Nous sommes bien déjà les seuls au monde à utiliser Beyond, voire à diffuser nos données en format XL alors que tous les autres le font en fichier plat (bémol : parmi ce que j'en ai vu). Et aussi nous avons à l'Insee une peur bleue à diffuser des données non confidentielles en interne.

linogaliana commented 3 years ago

In GitLab by @RLesur on Apr 6, 2020, 10:18

Je disais ggformula parce que c'était préconisé par la COPS

Il ne me semble pas que ce soit le cas. ggformula est au programme des packages qui doivent être instruits mais l'instruction n'a pas encore été menée. Pour moi, le COPS n'a pas encore validé ggformula mais je te laisse me corriger le cas échéant, @ggenin.

Mais si on veut faire simple, il ne faut en montrer qu'une syntaxe, pas 3.

C'est là où je ne suis pas d'accord. Pour moi, le sujet principal avec tous les langages open source, c'est d'apprendre aux utilisateurs à faire des choix raisonnés et pas de faire les choix à leur place.

Qui a-t-il de choquant à dire :

Faites votre choix, vous pouvez utiliser ggformula, vous le trouverez certainement plus simple mais sachez que si vous avez un problème avec, vous serez seuls au monde.
Vous pouvez également utiliser ggplot2 qui est à peine plus complexe et sachez que là, vous aurez des milliers d'utilisateurs à qui poser des questions et qui pourront vous aider.

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 6, 2020, 10:37

Je confirme les différentes remarques de @RLesur :

Sur le fond, j'ai une préférence marquée pour la solution esquisse + ggplot2 (qui correspond à ma pratique, je l'avoue). Ceci dit, je ne suis pas du tout opposé à ce qu'on fasse deux fiches:

linogaliana commented 3 years ago

In GitLab by @pierre-lamarche on Apr 6, 2020, 11:35

Pour ma part, et pour faire suite à @oliviermeslin , je suis plutôt un utilisateur de la fonction brut de décoffrage plot. J'ai passé un peu de temps à investir pour en comprendre la mécanique. J'ai ensuite découvert ggplot2 mais je dois avouer que j'ai eu du mal à saisir la syntaxe (pas de motivation, puisque la fonction plot faisait ce que je voulais). Je comprends que ggplot2 permet de construire facilement des templates (là où plot demande des copiers-collers pénibles), mais idem, pas eu le courage ni l'usage d'investir. Au final, en ayant testé rapidement ce week-end le package esquisse, je penche beaucoup pour cet outil ; il a l'avantage de la simplicité pour le débutant (coût d'entrée nul ou presque), tout en donnant à l'utilisateur plus averti la possibilité de "sanctuariser" son style de graphique grâce au code généré et mis à disposition. Il me semble (au-delà de toute préférence liée aux habitudes et usages de chacun - encore une fois sur ce critère, je serais partisan de plot) que c'est la solution la plus directe, qui a l'avantage de ménager la nécessité de coder et reproduire, tout en donnant au néophyte un outil presse-bouton.

Au final, il me semble qu'on peut faire deux fiches, sur la base de la proposition de @oliviermeslin , en particulier pour sensibiliser l'utilisateur aux différentes possibilités, mais j'aurais tendance à préconiser de ne pas perdre trop d'énergie sur ce sujet, tant esquisse me semble rendre triviales toutes les questions de documentation et tutoriels.

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 6, 2020, 13:49

Gilles et moi sommes prêts à rédiger rapidement une introduction générale à ggplot2, en reprenant/adaptant les ressources existantes. Cela peut faire une première base de discussion, et cela ne préjuge en rien de ce que nous déciderons sur les autres points (esquisse, ggformula, plots de base ou pas...).

Est-ce que cela vous convient?

linogaliana commented 3 years ago

In GitLab by @pierre-lamarche on Apr 6, 2020, 13:58

+1 Ça me convient tout à fait !

linogaliana commented 3 years ago

In GitLab by @linogaliana on Apr 6, 2020, 14:02

+1 très bien

@gillesfidani sache que la collaboration avec Olivier c'est des ajouts de points virgules partout. T'es sûr de vouloir ça ?

linogaliana commented 3 years ago

In GitLab by @gillesfidani on Apr 6, 2020, 14:14

je me retire des assignee sur les conseils précieux de @linogaliana (merci beaucoup)

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 6, 2020, 14:37

Je; ne; comprends; pas;.

linogaliana commented 3 years ago

In GitLab by @ggenin on Apr 7, 2020, 16:11

2019_39642_DG75-D101.pdf

J'en étais restée sur ce doc. donc graphiques = ggformula.

Dans le doc suivant, il n'y a plus de graphiques. https://www.agora.insee.fr/cms/sites/sgi/home/aus-ls/comites.html#Packages%20en%20attente%20de%20passage%20(au%2029/01/2020)

Par ailleurs, quand on voit la tête de notre forum R à l'Insee, ce n'est pas engageant ! https://gforge.insee.fr/forum/forum.php?thread_id=2146&forum_id=1840&group_id=245

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 7, 2020, 16:37

@ggenin: j'avais pas ce document en tête. Comme tu peux le voir, ggformula était simplement inscrit à l'ODJ, mais pas validé. De toute façon, il n'y a pas beaucoup de recommandations à ce stade...

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 18, 2020, 14:28

La fiche graphiques a été mergée dans master, je ferme l'issue.

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Apr 18, 2020, 14:28

closed

linogaliana commented 3 years ago

In GitLab by @acazaubiel on Jul 3, 2020, 13:38

Bonjour à tous, (j'avais raté cette issue, ma foi !) Je marque ici quelques points que j'ai pu noter lors de ma lecture sur la fiche. Je vous laisse déterminer si c'est pertinent :smile_cat: Je pense qu'elle serait parfaite :

Personnellement, j'aime beaucoup le site r-graph-gallery qui permet de se rendre compte de la diversité des représentations possibles (tous les codes ne sont pas parfaits, mais c'est beau et ça donne des idées).

linogaliana commented 3 years ago

In GitLab by @acazaubiel on Jul 3, 2020, 13:39

reopened

linogaliana commented 3 years ago

In GitLab by @ggenin on Jul 3, 2020, 14:56

Je suis assez d'accord avec ce qui vient d'être écrit.

En rajoutant l'utilisation de données Insee qui serait plus parlant que iris.

Tout en étant un peu triste que ggformula ait été écarté d'emblée. ggformula a l'avantage de s'intègrer dans la logique dplyr qui avait été retenue par le GT formation R, d'avoir une syntaxe plus régulière, tout en reposant sur ggplot2.

Diagrammes en barres : geom_bar fait un comptage, geom_col affiche une valeur, les deux selon les modalités d'une colonne (caractère, factor).

linogaliana commented 3 years ago

In GitLab by @acazaubiel on Jul 7, 2020, 12:56

Pour prendre en compte les remarques de @ggenin, je retire ce que j'ai dit sur geom_bar.

J'ajouterais également un § sur les palettes de couleurs. On avait eu une discussion à ce propos, il me semble... Avec viridiset RBrewer principalement... mais si on a la charte graphique, c'est plus simple.

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Jul 7, 2020, 14:26

@acazaubiel : merci beaucoup pour ton message détaillé. Quelques petites réactions:

linogaliana commented 3 years ago

Je ferme cette issue puisque la fiche graphiques est présente depuis quelques temps déjà dans la doc.

S'il reste des points à résoudre, une nouvelle issue sera plus adéquate