Vous pensez que les graphiques R ne sont pas présentables?

3 librairies R à connaitre

lovelyanalytics_graphiquesR

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 *****

lovelyanalytics ggplot2.png

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 *****

lovelyanalytics 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 *****

#271_gganimateSi 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.

  1. D’abord pour installer gganimate, vous allez devoir passer par la librairie devtools
  2. 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.
  3. 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")

4 commentaires sur « Vous pensez que les graphiques R ne sont pas présentables? »

  1. 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 : http://tutuchan.github.io/chartjs/

    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

    Aimé par 1 personne

    1. 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

      J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

w

Connexion à %s