Tableau

Une première approche de l’outil d’analyse de données Tableau afin de visualiser un jeu de données d’exemple.

Crédit et licence

Ce TD est repris du cours OpenClassroom Réalisez un dashboard avec Tableau, créé par Nicolas Rangeon. Il est disponible selon la même licence que le document original : Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

Introduction

Tableau est un logiciel d’analyse et de visualisation de données proposé par Salesforce.

Dans le cadre de ce cours, vous pouvez télécharger Tableau sur le site de Tableau Softwares et l’utiliser en version d’évaluation pendant 14 jours. Vous avez aussi la possibilité de faire une demande de licence étudiante si vous souhaitez continuer d’utiliser Tableau après cela.

Préparer les données

Jeu de données

Créer une première feuille de calcul

Dans Tableau, l’entité de base s’appelle un Classeur (ou Workbook dans la version anglophone du logiciel). Un workbook contient au moins deux choses :

  • Une source de données
  • Une feuille de calcul

La source de données peut se présenter de différentes formes : vos données peuvent provenir d’un fichier, par exemple un fichier .csv, un fichier de tableur Excel .xls ou OpenOffice Calc .ods.

Un fichier n’est pas adapté à une actualisation régulière des données, contrairement à une base de données. Cela influera donc sur votre dashboard final. En effet, si vos données s’actualisent régulièrement, alors il faudra préférer une connexion à une base de données.

La feuille de calcul sert quant à elle à créer une visualisation à partir des données importées. Vous pouvez créer autant de feuilles que vous souhaitez, car une feuille correspond à une visualisation.

Ensuite, il vous sera possible de créer dans votre classeur trois autres types d’objets :

  • Des dashboards
  • Des stories
  • De nouvelles feuilles de calcul

Pour les créer, il faut utiliser les trois boutons sur la capture d’écran au-dessus.

Que ce soit dans un dashboard ou dans une story, vous ne pourrez y ajouter que les visualisations qui auront préalablement été créées dans les feuilles de calcul.

Découvrez les données sources

Téléchargez le jeu de données utilisé dans ce TD et composé de trois fichiers : impressions, clics et achats.

La table impressions

Chaque ligne correspond à une impression, c’est-à-dire à un affichage d'une publicité sur un site donné et sur l’écran d'un utilisateur donné.

Il contient 4 colonnes :

  1. timestamp est une date codée, qui est l’affichage de la publicité
  2. cookie_id permet d’identifier l’utilisateur qui a vu la publicité, chaque publicité étant liée à une campagne précise
  3. campaign_id est l’identifiant de la campagne marketing
  4. external_site_id indique le site sur lequel la publicité s’est affichée

Cette table contient 29 758 lignes, aussi appelées enregistrements.

La table clics

À la suite de l’affichage de ces publicités, certains utilisateurs cliquent dessus. La table clics enregistre la date et l’heure du clic dans timestamp, et l’utilisateur est repéré grâce à cookie_id.

C’est la colonne cookie_id qui nous permettra de faire le lien entre les différentes tables.

Elle contient 1 775 enregistreents, soit autant de clics.

La table achats

Enfin, la table achats indique chaque achat réalisé par un utilisateur ayant cliqué sur une publicité. On y retrouve le timestamp, l’identifiant utilisateur cookie_id, le produit acheté product_id, son genre gender, son département de résidence dept, le prix d’achat price et son âge age.

Importez les données dans Tableau

Importez les tables

Pour importer nos 3 tables, on clique sur source de données en bas à gauche, puis sur “Fichier texte”. Ouvrez le fichier impressions.csv.

On voit s’afficher sur l’écran central la table impressions :

Vous pouvez voir que les données ont bien été reconnues.

Réalisez les fusions nécessaires

Pour ajouter les autres tables, double-cliquez sur la table impression.

Ajoutez la table clics.csv, par exemple avec un glisser-déposer depuis le menu de gauche.

Comme on a deux tables, il faut les fusionner. En fin de compte, on veut une table dont chaque ligne représente une impression. Et pour chaque impression, on veut savoir si elle a abouti (ou non) à un clic.

Pour savoir quelles lignes de la table impressions correspondent aux lignes de la table clics, il nous faut un repère appelé une condition de jointure.

Pour cette condition de jointure, on va identifier une ou plusieurs colonnes de la table impressions qui contiennent les mêmes informations qu’une ou plusieurs colonnes de la table clics.

Ici, il y a une colonne qui donne les mêmes infos dans les 2 tables : la colonne cookie_id, car elle sert à identifier les utilisateurs.

Nous n’avons plus que 1 775 entrées ! Pourtant, il y a beaucoup plus de lignes dans impressions (29 758) que dans clics. Certaines lignes de impressions n’ont pas trouvé de correspondance dans clics.

Il s’agit tout simplement des cas où l’utilisateur n’a pas cliqué sur la publicité.

Nous allons donc changer la jointure pour une jointure externe gauche, car on veut que toutes les lignes de la table de gauche (impressions) apparaissent dans la table finale, même si elles n’ont pas trouvé de correspondance dans l’autre table :

Ajoutez la troisième table : achats

Importons enfin la table achats avec un autre glisser-déposer :

Malheureusement, la jointure que Tableau effectue par défaut n’est pas celle que l’on souhaite. Si une impression a abouti à un clic puis à un achat, je veux toutes ces informations sur une même ligne !

Je veux donc prendre la table qui résultait de notre première jointure (c’est-à-dire la table impressions jointe à la table clics), et joindre cette table résultante à la nouvelle table achats.

Pour corriger cela, il faut modifier la jointure : nous allons joindre la colonne cookie_id de achats à la colonne cookie_id de clics.

Voici le résultat final :

Convertissez les “timestamps” en dates

Dans l’état actuel, Tableau n’est pas au courant que les colonnes nommées timestamp représentent des dates. Sans une petite opération, il sera donc impossible de créer des graphiques avec des dates.

En regardant les colonnes timestamp, on voit des valeurs telles que “1 761 000 000”. Ces nombres sont censés représenter des dates. En fait, il s’agit du nombre de secondes écoulées entre la date en question et le 1er janvier 1970 : c’est une convention quand on code une date en timestamp.

Pour obtenir la date, on va donc effectuer un calcul sur la colonne, en cliquant sur “Créer un champ calculé” :

On va ajouter ces timestamps au 1er janvier 1970 grâce à la fonction dateadd, et il faut spécifier que l’unité est la seconde :

Une nouvelle colonne date_impression s’est ainsi créée. Faites cela avec les 2 autres colonnes timestamp, en les appelant date_clicet date_achat.

Changer le type d’une colonne

Sachez également que l’on peut changer le type des colonnes : ici, external_site_id est un identifiant codé par un nombre. Comme on ne fera pas de calcul sur ces nombres (car cela n’aurait aucun sens), on peut spécifier à Tableau qu’il s’agit en fait d’une chaîne de caractères :

Vous avez terminé l’importation des données, bravo !

Affichez des premiers indicateurs

L’interface de Tableau est très puissante, mais il faut la découvrir petit à petit et prendre le temps de s’y habituer. Pour cela, dans cette section nous allons créer des visualisations très simples.

Découvrez l’interface de la feuille de calcul

Maintenant que les données sont importées, cliquons sur la feuille de calcul Feuille 1 en bas de l’écran. Analysons la fenêtre :

Les dimensions et mesures en détail

Tout à gauche, il y a un volet appelé Données. En haut de ce volet s’affichent toutes les sources de données. Ici, nous n’en avons qu’une, nous l’avons appelée impressions+. Plus bas, nous trouvons les noms des colonnes de notre table impressions+.

Cependant, elles sont réparties en 2 catégories : dimensions et mesures.

Une colonne considérée comme dimension ne s’affichera pas de la même manière qu’une colonne mesure.

Tableau sépare les variables nominales (ou qualitatives), et les mesures des variables quantitatives.

Que mettre dans “Lignes” et “Colonnes” ?

Regardons maintenant en haut de l’écran. On y voit “Lignes” et “Colonnes” :

Ces notions de lignes et colonnes n’ont rien à voir avec la table que nous avons importée. Il s’agit des lignes et des colonnes de notre future visualisation.

Plaçons par exemple la variable campaign_id dans les Colonnes :

Placer campaign_id dans colonnes signifie que, quand on parcourra notre visualisation de gauche à droite, on parcourra toutes les valeurs de campain_id. Comme on le voit ci-dessus, il y a 3 campagnes en cours : la 1, la 2 et la 3.

Ajoutons maintenant une seconde dimension product_id :

Nous affichons horizontalement toutes les combinaisons de campaign_id / product_id qui existent dans notre jeu de données. La colonne null est présente car certains affichages de publicités (impressions) n’ont pas abouti à un achat, donc aucun produit n’est associé.

Pour le moment nous avons la structure du graphique, mais il n’est pas rempli (à la place nous y voyons des “Abc”). Faisons cela tout de suite !

Que mettre dans les cases de ce tableau ?

Une fois la structure posée, on remplit la visualisation à l’aide du cadre “Repères”.

Visualisons le prix d’achat (contenu dans la variable price). Pour cela, ajoutons cette mesure sur “Texte”, grâce à un glisser-déposer :

Les prix d’achat s’affichent alors dans le tableau. Nous pouvons rendre le tableau plus compact en mettant Product_id dans les Lignes plutôt que dans les Colonnes. Le résultat est le suivant :

Remarquez que l’étiquette verte price s’est transformée en SOMME(price). Ce sera toujours le cas quand vous placerez une mesure.

Pour comprendre cela, regardons la case du tableau correspondant à la campagne 1 et au produit 1 : sa valeur est de 1 770.

Les achats du produit 1 lors de la campagne 1 sont multiples. Pour la campagne numéro 1 et le produit 1, il y a donc plusieurs valeurs pour la variable price. Pour réduire plusieurs valeurs en une seule (ici 1 416), on en calcule la somme.

Mais on peut choisir une autre fonction d’agrégation : on pourrait calculer la moyenne des prix, le minimum ou le maximum. Laissons toutefois en somme.

Plutôt que d’afficher cette mesure en texte, on peut aussi l’afficher en échelle de couleurs en faisant glisser la variable sur le cadre “Couleurs”. On voit alors une visualisation plus graphique.

Essayez aussi de l’encoder avec la taille par exemple :

Et si nous mettions une mesure dans “Colonnes” ?

Jusqu’à maintenant, nous n’avions mis que des dimensions dans “Lignes” et “Colonnes” (product_id et campain_id). Que se passerait-il si nous mettions une mesure ?

Testons avec la variable price :

Ici, on garde exactement la même logique : en parcourant le graphique de gauche à droite, on parcoure toutes les valeurs possibles de la somme des prix, et ce pour chaque campagne.

Créez la visualisation du chiffre d’affaires

Il est temps maintenant de créer le premier graphique qui constituera notre tableau de bord final : celui indiquant le chiffre d’affaires. Créez une nouvelle feuille de calcul nommée “CA” et renommez la première feuille de calcul en “Ventes”.

Sur cette visualisation, il n’y a qu’un seul nombre : on n’a donc pas la notion de parcourir la visualisation de gauche à droite ou de bas en haut. On ne mettra donc rien dans “Colonnes” ni dans “Lignes”.

Le chiffre d’affaires se calcule par la somme de tous les achats. On veut afficher ce chiffre sous forme de texte, on place donc la variable price dans le cadre “Texte”, et l’on vérifie bien que la fonction d’agrégation soit SOMME :

On change le titre de la visualisation en double-cliquant sur le titre “CA” ; puis on change le style du texte avec un clic-droit “Formater”. Voici le résultat final :

Créez d’autres graphiques

Dans ce chapitre, nous allons explorer les possibilités de visualisation graphique de Tableau.

Créez la visualisation de l’âge en fonction du produit acheté

Commençons par créer une nouvelle feuille de calcul nommée “Âge”.

Définissez la structure de la visualisation

Nous souhaitons avoir les identifiants de produits sur l’axe horizontal et les âges sur l’axe vertical. Plaçons donc ces champs respectifs dans Colonnes et Lignes.

Cependant, ce n’est pas la somme des âges qui nous intéresse, mais plutôt la moyenne des âges par produit. On le modifie donc :

Ainsi, on voit que le produit 1 est acheté par des personnes de 65 ans en moyenne :

Améliorez les repères

On pourrait également afficher le prix moyen d’achat par produit grâce à une échelle de couleurs, en faisant glisser price sur “Couleurs” :

Nous pouvons essayer avec la variable gender.

les femmes achetant ce produit ne peuvent clairement pas avoir un âge moyen de 120 ans ! En fait, ici, les barres se sont empilées. Choisissons un autre type de repère que des barres, par exemple des cercles, en cliquant sur le menu déroulant du cadre “Repères” :

Le résultat est bien meilleur : pour chaque produit, on a l’âge moyen des femmes et des hommes.

Mais si, maintenant, au lieu de regrouper les utilisateurs par genre, je souhaite les afficher tous, sans les regrouper ?

Il faudrait alors trouver un champ qui soit unique pour chaque utilisateur, par exemple l’identifiant du cookie cookie_id. Comme un cookie correspond à un unique utilisateur, si l’on regroupe les lignes de impressions+ par cookie_id, on aura une valeur par utilisateur !

Plaçons donc cookie_id dans le cadre “Couleurs” :

Voilà. Ici, tous les utilisateurs sont affichés. Les couleurs n’ont ici plus de sens si l’on veut garder le détail des utilisateurs, mais sans les couleurs, on déplace cookie_id vers le cadre “Détail” :

On peut être parfois perdu quand on cherche à faire une visualisation. Heureusement, Tableau a une option permettant de nous aider : l’option Montre-moi. Elle possède différents types de graphiques, donne des indices sur comment les réaliser, et peut parfois vous les créer automatiquement !

Le bouton “Montre-moi” se trouve en haut à droite. Je vous laisse y jeter un œil.

Justement, notre visualisation actuelle n’est pas très belle : les points sont trop gros. Le panneau Montre-moi nous propose un graphique en box plot : sélectionnons-le donc ! Voici le résultat :

Créez la visualisation des clics en fonction du temps

Créons maintenant une nouvelle feuille nommée “Clics” pour la visualisation des clics en fonction du temps.

On veut la date horizontalement et le nombre de clics sur l’axe vertical. On place donc tout d’abord la date de clic dans “Colonnes”. Par défaut, Tableau crée une colonne par année :

Nous voudrions que l’axe horizontal soit continu. On peut donc cliquer sur la petite flèche à droite de l’étiquette pour convertir la date en “continu” : cliquez sur “Continu” puis sur “Date exacte”.

Sur cette visualisation, chaque bâtonnet bleu correspond à 1 achat. Ce que l’on veut maintenant, c’est compter le nombre de bâtonnets par jour. Pour cela nous allons d’abord changer le le type de repère en Barre au lieu de Automatique puis ajouter date_clic en Lignes, et enfin changer de la moyenne vers le décompte (Mesure > Total).

Quant au regroupement par jour, il s’effectue comme ceci :

Le résultat final devrait être le suivant :

Rendez votre dashboard interactif

Nous pouvons maintenant assembler tous ces éléments sous forme de dashboard interactif.

Créez un filtre sur une dimension

Un filtre est une option qui permet de sélectionner certaines lignes de notre source de données (ici, impressions+), et d’en exclure d’autres.

Reprenons la visualisation des clics en fonction du temps, et ajoutons un filtre sur la campagne. Il suffit de faire glisser campaign_id dans le cadre “Filtres”.

Il vous sera alors demandé de sélectionner les campagnes à retenir, via des cases à cocher. Pour que l’utilisateur puisse interagir avec ce filtre, il faut cliquer sur “Afficher le filtre” :

Vous pouvez maintenant tester le filtre !

Créez un filtre sur une mesure

Retournons sur la visualisation du CA, et ajoutons un filtre sur l’âge. Sélectionnez “Toutes les valeurs” et “Plage de valeurs”.

Comme on filtre sur une mesure et non plus sur une dimension, le filtre n’est plus sous forme de cases à cocher, mais sous forme de barre avec 2 curseurs :

On voit que le chiffre d’affaires s’actualise en fonction du filtre, il est de 3 712 € pour les 19-30 ans.

Créez le tableau de bord !

Maintenant que toutes nos visualisations sont prêtes, c’est le moment de les ajouter à notre tableau de bord ! Cliquons sur “Tableau de bord” en bas de la page :

La liste des différentes visualisations que nous avons créées jusqu’à maintenant est disponible à gauche de l’écran. Il suffit de les glisser-déposer sur la zone blanche au centre de l’écran pour disposer à votre goût les visualisations sur le tableau de bord :

Comme vous le voyez, les 2 filtres surageet campaign_id se sont ajoutés au tableau de bord. Seulement, ils n’agissent que sur leur visualisation respective ! Faisons-les au contraire agir sur toutes les visualisations du tableau de bord en même temps.

Cliquons pour cela sur la petite flèche à côté du filtre, puis dans “Appliquer aux feuilles de calculs”, cliquons sur “Toutes celles qui utilisent cette source de données”

Vous pouvez jouer avec les filtre et redimmensionner les différentes parties du dashboard. Il est aussi possible de formater les titres par exemple.

Bravo, vous avez terminé cette introduction !

Conception de visualisations de données
Conception de visualisations de données
Printemps 2024

Cours de conception de visualisations de données du printemps 2024.