Histogramme

Comment faire un histogramme dans R, Excel ou R++ ?

La visualisation des données est au cœur du sujet en data analytics. Car rien ne sert d’analyser les données si les résultats des analyses ne sont pas compris par votre audience. La présentation des résultats est donc essentielle.

Dans notre article précédent, nous avons expliqué comment transformer des données en résumé organisé sous forme de tableau croisé dynamique. Cela nous a permis d’obtenir des sommes, des effectifs ou des moyennes pour chaque variable de notre liste de données.

Mais lire un tableau de nombres prend du temps, surtout s’il est complexe. Et le lecteur peut par inadvertance manquer d’observer le chiffre clé et donc l’information que vous souhaitiez transmettre. Parfois il vaut donc mieux montrer un graphique illustrant ce tableau, car représenter visuellement les nombres importants souligne leurs différences de façon évidente et grâce à cet effet instantané, le message passe plus facilement (et plus rapidement).

Un des graphes les plus utilisés s’appelle l’histogramme. Il permet, à la base, de visualiser les effectifs d’une variable. Dans cet article, je vais donc vous expliquer comment créer un histogramme dans trois logiciels très utilisés : dans Excel, dans R et dans R++.

Qu’est-ce qu’un histogramme ?

Un histogramme est un graphe à deux axes (X et Y) dont le milieu est composé de rectangles disposés côte à côte.

  • Leur hauteur (sur l’axe vertical des Y) représente une quantité ou un effectif
  • Leur largeur est la base du rectangle (sur l’axe horizontal des X). Elle représente un intervalle si la variable X est numérique continue. Par exemple lorsqu’on observe la taille ou le poids des hommes ou des femmes de la population française.

Histogramme

La question des intervalles est importante à comprendre car avant de faire l’histogramme, il faudra tout d’abord créer les intervalles, puis calculer les effectifs de chaque intervalle.

Exemples d’intervalles de taille d’adulte, ici il y a 5 intervalles :  

Inférieure à 1m60 – de 1m60 à 1m70 – de 1m70 à 1m80 – de 1m80 à 1m90 – supérieure à 1m90

Deux points à retenir

Premier point, les intervalles peuvent être soit fermés à droite, soit à gauche : il faut choisir. En effet, dans l’exemple ci-dessus, quelqu’un qui mesure 1m60 précisément se situe dans quel intervalle ? De 1m50 à 1m60 ou bien de 1m60 à 1m70 ? Il nous faut décider. Si l’on décide que les intervalles sont

  1. ‘ouverts à droite’ -> ]1m60, 1m70] 1m60 n’est pas inclus
  2. ‘ouverts à gauche’ -> [1m60, 1m70[ 1m60 est inclus

Deuxième point. La taille des intervalles peut changer la courbe et gommer les différences. Il faut donc choisir le nombre d’intervalles avec prudence.

Capture histogramme R

Dans l’exemple ci-dessus, avec 3 intervalles on peut avoir 10 10 10 mais avec 6 on a : 5 5 9 1 4 6.

Ce petit travail à faire dépend du logiciel que vous utilisez. Dans Excel, il faut construire les intervalles à la main. Dans R, R va calculer le nombre d’intervalles tout seul et il en est de même pour R++.

Note

Quelques règles s’appliquent quant-à la construction d’un histogramme.

  • Tout d’abord, les rectangles doivent être collés les uns aux autres.
  • La taille de l’intervalle est également importante pour tracer le graphique. Si un intervalle est plus grand que les autres, la barre qui forme la base du rectangle est plus grande (le rectangle est plus étalé). Car en effet, c’est la surface du rectangle qui compte dans l’histogramme, et non pas uniquement sa hauteur. La surface de chaque rectangle doit être proportionnelle à la valeur que le rectangle représente.

Maintenant, je vais vous expliquer comment faire des histogrammes dans 3 outils : Excel, R et R++.

J’ai choisi ces outils car ils sont utilisés pour faire des statistiques à différents niveaux. Excel est très axé sur la customisation des graphes, R est plus utilisé pour les calculs statistiques précis et plus complexes (avec du code) et R++ est à mi-chemin avec la possibilité de faire des statistiques avec des graphiques customisables sans code.

Comment faire un histogramme dans Excel ?

Créer un histogramme est un jeu d’enfant dans Excel. Les options pour le modifier son apparence sont nombreuses, on peut y passer des heures… Vous allez adorer jouer avec les styles, les couleurs, les effets, etc. Mais il faut cependant ne pas se noyer dans la création esthétique et se concentrer sur une chose, la clarté !

Note

Faites attention au mot ‘histogramme’ dans Microsoft Excel, car ce mot est utilisé – à tort – pour tous les graphiques en rectangle. Et dans ces graphiques, c’est uniquement la hauteur – et non la surface du rectangle – qui représente la valeur en question, ce ne sont donc pas des histogrammes au sens que l’entendent les statisticiens !

Dans le cas présent, je ne considérerai que les histogrammes au sens statistique, ceux qui expriment donc la grandeur d’une valeur grâce à la surface du rectangle (et non la hauteur).

Créer un histogramme

Considérons la liste de données que nous avons utilisée lors du post précédent. Vous pouvez télécharger le fichier de données que j’ai utilisé ici [lien], ou prendre un exemple que vous avez déjà. Bien sûr, si vous choisissez notre exemple, il vous sera plus facile de vérifier que vous avez bien opéré la bonne commande.

Tableur

Nous allons créer un histogramme montrant le montant des ventes, c’est la variable ‘prix total’. Ceci va nous permettre de visualiser les montants des ventes les plus fréquents… Combien est-ce que les gens dépensent à chaque achat ?

Capture écran RStudio

Alors comment s’y prendre pour visualiser une variable numérique ?

Sélectionnez la colonne de la variable ‘Prix Total’ puis cliquez sur Insertion dans le menu horizontal et sélectionnez ‘Graphiques’.

Dans cette liste, il faut sélectionner la deuxième option « histogramme » (en bleu uni). En effet, la première ne nous intéresse pas car elle fait référence aux diagrammes en bâton (barplots) alors que la deuxième concerne les histogrammes tels que les statisticiens l’entendent !

Capture histogramme R

Ici Excel a choisi de représenter la variable ‘prix total’ en 6 intervalles égales incrémentées de 15 euros chacune.

Les montants d’achat les plus fréquents se situent entre 45 et 60 euros.

Pour ajouter un titre au graphique, double-cliquez sur le titre pour le modifier. En fait vous pouvez tout changer à votre guise et si quelque chose ne vous plait pas, faites Ctrl+Z pour revenir en arrière.

Pour obtenir les effectifs de chaque intervalle, vous devez cliquer sur le graphique, puis cliquer sur la croix verte et choisir la 4ème option : ‘Données des axes’.

Pour exporter l’histogramme, je vous conseille de cliquer à droite, puis faire ‘copier’ et ensuite cliquer à droite ‘collage spécial – image’ (icône avec un pinceau) à l’endroit où vous souhaitez insérer l’histogramme.

Dans Excel, on ne peut pas changer le nombre d’intervalles, ni choisir des intervalles ouverts à droite. Généralement les manipulations sont limitées. Il est alors plus précis/pratique d’utiliser le langage de statistiques R ou le logiciel R++.

Comment faire un histogramme dans R ?

Je reprends le même fichier de données (accessible ici [lien]) que j’importe dans le dataframe ‘df1’ grâce à la fonction read.csv.

Code R

Vous voyez donc les ventes d’accessoires par vendeur et par magasin dans le monde. Comme les histogrammes se font sur des variables numériques, il est important de résumer les types des variables de notre jeu de données. Utilisez la fonction str pour voir les types de toutes les variables et class pour voir le type d’une variable.

Code R

Dans ce jeu de données, nous pouvons donc faire des histogrammes sur 2 variables : Quantité et Prix Total, car elles sont toutes les deux integer, donc numériques.

Etudions la distribution de la variable prix.total qui va nous indiquer les fourchettes de dépenses par client. Nous utilisons alors la fonction hist pour créer l’histogramme :

Code R

Le graphique suivant apparaît dans une nouvelle fenêtre :

Capture histogramme R

Mais cet histogramme ne nous dit pas quels sont les intervalles utilisés !

Alors on peut aussi choisir les intervalles manuellement en indiquant les « breaks » que l’on souhaite :

Code R

Capture histogramme R

Ou alors, pour partager une valeur numérique en différents intervalles fixes, on utilise la fonction cut avec breaks=seq(mini, maxi, taille de chaque intervalle) :

Code R

Une fois la variable discrétisée en intervalles, vous voudrez voir les effectifs par intervalle (fonction table), comme suit :

Code R

Pour rendre l’histogramme plus joli, on peut utiliser les fonctions col pour la couleur, xlab et ylab pour les titres des axes, main pour le titre du graphique.

Code R

Capture histogramme R

Voilà, c’est tout pour l’instant pour les histogrammes dans R ! C’est un bon début… Vous pouvez en savoir plus (notamment sur les intervalles ouverts à gauche ou à droite) en lisant cet article sur Google https://mathsp.tuxfamily.org/spip.php?article289.

A noter aussi que dans ce post nous avons traité les histogrammes avec R de base (car il est suffisant pour les histogrammes), mais il existe un package qui s’appelle ggplot2 qui a beaucoup de succès pour fabriquer l’ensemble des graphiques dans R. Il a été créé par Hadley Wickham, un grand spécialiste des statistiques en langage R. La fonction pour l’histogramme est geom_histogram et aes pour le nom des axes.

On charge ggplot2 avec la fonction library :

Code R

On crée le graphique :

Code R
Capture histogramme R

Avec les fonctions binwidth et color/fill, on peut changer la largeur des colonnes (et donc les intervalles), ainsi que les couleurs.

Code R
Capture histogramme R

Et pour terminer, dernière partie sur la création d’histogrammes avec R++.

Comment faire un histogramme dans R++ ?

Dans R++, c’est très facile, car tous les histogrammes de toutes les variables sont produits automatiquement.

R++ est un logiciel statistique avec une interface issue de 3 ans de recherche en IHM, il est donc naturellement ‘user-friendly’, tout en étant relativement sophistiqué au niveau de l’étude statistique. Demandez un essai gratuit pour pouvoir vous entraîner !

Capture écran R++

Une fois le jeu de données importé (ici nous utilisons toujours le fichier ….), allez dans la section Gestion des données. Il suffit alors de cliquer sur le bouton et un graphique apparaît pour chaque variable. Il en est de même pour les tests statistiques avec le bouton où l’on peut observer un histogramme basé sur 2 variables.

Les histogrammes dans R++ sont montrés avec un style par défaut mais (pas de souci) il est possible de modifier chaque aspect du graphique très facilement.

Comment modifier votre histogramme ?

Lorsqu’un graphique vous intéresse, il faut cliquer sur la pellicule pour qu’elle apparaisse en bas de l’écran. Ensuite, glissez-déposez le graphe que vous voulez garder dans la pellicule. Dans l’Editeur de Graphiques, vous pouvez dès lors changer les axes, les marges, les couleurs et ajouter des commentaires ou des formes (comme des flèches par exemple).

Capture écran R++

Bien sûr, on peut augmenter ou diminuer très facilement le nombre d’intervalles, ce qui est essentiel lorsqu’on étudie la forme de la distribution d’une variable numérique. Cliquez sur Rectangles et Barres (à gauche de l’histogramme), puis sur Intervalles et Etiquettes.

Capture écran R++

Changez ensuite le nombre d’intervalles grâce à NClass et observez l’histogramme :

Capture écran R++

En somme dans R++, modifier un histogramme se fait sans code, comme dans MS Excel. Mais en un clic, vous pouvez visualiser tous les histogrammes de toutes les variables numériques. Là est la principale différence, c’est plus rapide et plus pratique.

En cliquant sur « Tout accepter», vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser son utilisation et contribuer à nos efforts de marketing. Pour plus d’informations sur les cookies que nous utilisons ou pour modifier vos préférences et vos paramètres, veuillez consulter notre politique de confidentialité.