Si quand vous entendez parler de graphiques R, vous pensez à la fonction plot, difficile à paramétrer avec un rendu que vous n’oseriez pas présenter, alors cet article est fait pour vous. Parce que ça c’était avant. Il existe maintenant des librairies qui permettent de faire facilement des graphiques beaucoup plus visuels. Je vous parle de 3 packages : ggplot2, plotly et gganimate (qui permet de faire des GIF animés).
***** ggplot2 *****
ggplot2 est très connu sur R. Il permet de faire rapidement de nombreux graphiques avec des visuels avancés. De ce fait il existe beaucoup d’exemples et de tutoriels. Vous pouvez par exemple regarder ce tutoriel très complet ou cette fiche recap.
***** plotly *****
Plotly c’est à la fois un outil de Dataviz disponible en ligne et une librairie disponible sur R et Python. Vous pourrez créer des graphiques interactifs et les partager en ligne.
Vous trouverez des tutoriels pour faire tous les types de graphiques (j’ai même découvert certains types de graphiques que je ne connaissais pas comme les OHLC charts) :
- Les classiques : Scatter plot, line plot, bar chart, pie chart, …
- Les résultats statistiques : Error bars, boxplot, histogram, …
- Les scientifiques : Contour plots, heatmaps, …
- Les résultats financiers : Times series, …
- Les cartes : Bubble Maps, ScatterMapBox, …
- Les graphiques 3D
- Les graphiques multi-axes
Plotly permet à l’utilisateur d’interagir avec les graphiques une fois créés pour zoomer sur des résultats par exemple ou pour lire une valeur spécifique sur un graphique.
Autre possibilité, vous pouvez le coupler avec Shiny pour ajouter des curseurs et autres contrôles pour permettre à de futurs utilisateurs.
***** gganimate *****
Si vous avez envie d’aller plus loin vous pourriez être tenté de faire un graphique animé sous forme de GIF. Attention quand même à ne pas en faire un mauvais usage. Il faut que la problématique s’y prête bien et qu’il y ait une certaine évolution dans les données. On va éviter de commencer à mettre des GIF dans toutes les restitutions. Le package qui vous permettra de faire ça c’est gganimate et vous pouvez suivre ce tutoriel.
Il y a un peu plus de travail pour y parvenir.
- D’abord pour installer gganimate, vous allez devoir passer par la librairie devtools
- Ensuite vous allez devoir télécharger un outil qui permet de convertir le graphique en gif : ImageMagick, que vous pouvez télécharger ici.
- Pour finir il faudra surement modifier le PATH sous R pour lui indiquer l’emplacement de ImageMagick
Perso j’ai une petite préférence pour Plotly qui donne un résultat vraiment pro et moderne sans trop d’efforts.
Si vous voulez tester, voici mon code R :
#***** Chargement des librairies ***** library(ggplot2) library(plotly) library(devtools) devtools::install_github("dgrtwo/gganimate") library(gganimate) library(animation) # ***** Mise à jour du PATH pour ImageMagick magickPath <- shortPathName("C:\\Program Files\\ImageMagick-7.0.6-Q16\\magick.exe") ani.options(convert=magickPath) # ***** Création d'un dataset avec des dates fictives ***** data1=diamonds[sample(nrow(diamonds[diamonds$price<=6000,]),100),] data1=cbind(data1,'2013') colnames(data1)=c('carat','cut','color','clarity','depth','table','price','x','y','z','annee') data2=diamonds[sample(nrow(diamonds[diamonds$price<=10000,]),100),] data2=cbind(data2,'2014') colnames(data2)=c('carat','cut','color','clarity','depth','table','price','x','y','z','annee') data3=diamonds[sample(nrow(diamonds[diamonds$price<=12000,]),100),] data3=cbind(data3,'2015') colnames(data3)=c('carat','cut','color','clarity','depth','table','price','x','y','z','annee') data4=diamonds[sample(nrow(diamonds[diamonds$price<=15000,]),100),] data4=cbind(data4,'2016') colnames(data4)=c('carat','cut','color','clarity','depth','table','price','x','y','z','annee') data=rbind(data1,data2,data3,data4) # ***** scater plot avec ggplot2 ***** ggplot(data=data,aes(x=data$carat,y=data$price, color=data$carat))+geom_point(shape=19)+scale_colour_gradientn(colours=rainbow(3)) #***** scater plot avec plotly ***** plot_ly(data,x=data$carat, y=data$price, color=data$carat, size=data$carat, text=paste("Clarity : ",data$clarity)) #***** GIF animé avec gganimate ***** p <- ggplot(data, aes(x=data$carat,y=data$price, color=data$carat,size=data$price, frame=data$annee)) + geom_point(shape=19) gganimate(p, width=2, height=2,"Mon_graphique_GIF.gif")
Bonjour,
Merci pour cet article.
Il est également possible de réaliser des graphiques élégants avec la libraire Chart.js.
Plus d’infos sur : tutuchan
Les graphiques sont similaires à ceux réalisés avec plotly. Idéal pour des graphiques interactifs en ligne. Personnellement, je l’utilise surtout pour générer des radars 😉
A bientôt
Super, merci 🙂 Effectivement ça a l’air pratique pour les radars et les line charts sont très jolis aussi.
La bibliothèque « Highchartr » fait aussi des visualisations interactives intéressantes. Ca peut représenter une bonne alternative à Plotly.
http://jkunst.com/highcharter/index.html
Je ne connaissais pas mais effectivement c’est très sympa aussi. C’est top tout ce qui existe, maintenant il faut juste connaitre les bons packages 🙂
Merci pour vos commentaires