Des données en image : quels outils de datavisualisation ?

Produire des graphiques esthétiques ou interactifs

Sommaire

L’adage est connu : une image vaut mille mots. On pourrait aussi affirmer que la chimie, comme la physique, sont des sciences visuelles (1). Esquisse de schéma réactionnel dans un cahier de laboratoire, courbes de traction dans un article ou encore spectres d’absorption sont autant de techniques de datavisualisation. 

Si la mise en forme des données permet de communiquer efficacement un résultat, les chercheurs ou leurs étudiants bénéficient rarement d’une formation en datavisualisation.

Nous vous proposons ici une série d’outils permettant d’enrichir vos articles ou présentations.

Python

Il existe en Python une multitude de librairies pour créer des graphiques esthétiques et interactifs. Certaines sont génériques c’est à dire qu’elles permettent de créer un grand nombre de graphiques différents utilisables dans plusieurs contextes, d’autres ont été créées spécifiquement pour une discipline. 

Focus sur Matplotlib

Matplotlib est une des librairies graphiques Python les plus connues. Elle permet de prendre le contrôle sur chaque paramètre graphique (lignes, axes, couleurs, polices…) afin d’avoir le meilleur rendu possible. Créé en 2003, Matplotlib est parfois délaissé au profit de plotly, outil plus récent issu de la librairie JavaScript du même nom, plotly.js, elle-même reposant sur la célèbre librairie JavaScript d3.js, dont on a un aperçu ici. L’un des avantages de plotly repose sur sa syntaxe légère, ce qui permet de créer de bons graphiques avec seulement quelques lignes de code, facilement intégrables à un notebook Jupyter (voir aussi l’article ici) via des widgets. La librairie permet également de créer bon nombre de graphiques en 3D assez exclusifs.

Pour les librairies disciplinaires, on peut citer ASE’s GUI, une interface utilisateur permettant de manipuler et visualiser des molécules et objets atomiques. Elle est également utilisée pour réaliser différents types de calculs et transferts dans différents formats : traj, xyz, pdb, cube et bien d’autres disponibles ici. Il s’agit d’un module faisant partie d’un ensemble d’outils Python pour la  simulation atomique : ASE. Par ailleurs, en plus du module ase-gui, matplotlib est également cité dans la partie sur la visualisation.

R

R permet de créer des graphiques dans sa fonction de base. En revanche, il existe un certains nombres de packages différents qu’on peut lui ajouter afin d’améliorer et varier la représentation de ses données. Le package le plus connu en R pour la dataviz est incontestablement ggplot2 (qui existe également en Python sous le nom de ggplot), qui lui est entièrement dédié.  Il permet de réaliser pratiquement n’importe quel type de graphique personnalisable. Vous pourrez retrouver la documentation ici. Ggplot2 est un outil extrêmement puissant, mais il faudra bien comprendre son fonctionnement et notamment la philosophie du grammar of graphics, qui peut être déroutante aux premiers abords par rapport à l’outil R de base.

Focus sur R-Shiny

Un autre outil intéressant pour visualiser ses données sur R est R-Shiny. Ce package permet de créer des applications web directement depuis l’environnement RStudio. Il est ainsi possible de publier facilement sur une page web un ou des graphiques, du texte et d’autres types de contenu. Ces applications peuvent également être intégrées à un document R Markdown. Pour obtenir un aperçu des possibilités de R-Shiny, vous pouvez vous rendre sur la galerie ici. Si vous êtes un peu perdu dans le choix d’un outil de visualisation pour vos données, vous pouvez vous rendre sur ce site, qui vous aidera grâce à différents filtres et un schéma en réseaux à décider du graphique le plus adapté. Le site regorge de ressources expliquant comment réaliser des graphiques via R et Python grâce à différentes librairies (dont ggplot2 et plotly). Vous trouverez également un tutoriel sur l’utilisation de R Markdown pour réaliser des documents comprenant des graphiques interactifs.

Ressources utiles

Cabanski, Christopher, et al. « Can Graphics Tell Lies? A Tutorial on How To Visualize Your Data: Tutorial on How To Visualize Your Data ». Clinical and Translational Science, vol. 11, nᵒ 4, juillet 2018, p. 371‑77, doi:10.1111/cts.12554.

Weiss, Charles J. « Scientific Computing for Chemists: An Undergraduate Course in Simulations, Data Processing, and Visualization ». Journal of Chemical Education, vol. 94, nᵒ 5, mai 2017, p. 592‑97, doi:10.1021/acs.jchemed.7b00078.

Parish, Chad M., et Philip D. Edmondson. « Data Visualization Heuristics for the Physical Sciences ». Materials & Design, vol. 179, octobre 2019, p. 107868. ScienceDirect, doi:10.1016/j.matdes.2019.107868.

Chen, Chun-houh, et al. Handbook of data visualization. Springer, 2008.

Cours sur Ggplot 2 et Shiny élaboré par Colin Bousige, chargé de recherche CNRS, Laboratoire des Multimatériaux et des Interfaces, Université de Lyon 1.

Cours sur Ggplot2 mis en ligne sur un site dédié à R, auquel contribuent des chercheurs issus de disciplines variées (sciences politiques, économie, sociologie etc.)

Librarie Python pour la chimie computationnelle. 

Galerie de graphiques avec R

  1. Wu, Hsin-Kai, et Priti Shah. « Exploring Visuospatial Thinking in Chemistry Learning ». Science Education, vol. 88, nᵒ 3, mai 2004, p. 465, doi:10.1002/sce.10126.