En résumé
Quand aucun widget intégré ne convient, écrivez votre propre code R ou Python directement dans un widget. Le code reçoit votre jeu de données filtré dans une variable dataset, et sa sortie peut être un graphique, une table, une valeur ou du HTML.
Pourquoi un widget de code
Les plugins du catalogue couvrent les analyses courantes, mais vous aurez parfois besoin d’un calcul spécifique : une transformation maison, un graphique avec une bibliothèque précise, un indicateur composite. En choisissant l’onglet Code personnalisé dans la boîte de dialogue Ajouter un widget, vous écrivez exactement ce que vous voulez, sans quitter le tableau de bord.
Âge
Choisir le langage
Dans l’onglet Code personnalisé, choisissez Python ou R. Le langage le plus adapté dépend de votre habitude et de la tâche :
- Python s’appuie sur l’écosystème pandas / matplotlib pour la manipulation et la visualisation.
- R convient aux analyses statistiques et aux graphiques
ggplot2/ base R.
Pourquoi pas SQL ?
Les widgets de code proposent Python et R, mais pas SQL. Un widget travaille sur un dataset — un fichier, pas une connexion à une base — et une requête SQL n’aurait rien à interroger. Pour du SQL, adressez-vous à la base elle-même depuis les collections de scripts SQL.
Où s'exécute le code
En mode client (sans backend), le code s’exécute dans votre navigateur grâce à des portages WebAssembly : Pyodide pour Python et WebR pour R. Vos données ne quittent pas la machine. Le premier lancement charge l’environnement (quelques secondes) ; les exécutions suivantes sont plus rapides.
En mode serveur, le code s’exécute sur le serveur : c’est lui qui lit le dataset et applique les filtres du tableau de bord, si bien qu’aucune ligne de données n’est envoyée au navigateur. Chaque widget tourne dans son propre processus, donc les widgets d’un même onglet s’exécutent en parallèle. Voyez les modes de déploiement.
Accéder aux données
Votre code reçoit automatiquement le jeu de données du widget, déjà filtré par les filtres actifs du tableau de bord :
- En Python, la variable
datasetest un DataFrame pandas. Les colonnes portent leurs noms lisibles (par ex.dataset["age"]). - En R, la variable
datasetest un data.frame avec les mêmes colonnes.
Vous n’avez donc qu’à lire dataset et produire votre sortie.
import matplotlib.pyplot as plt
ax = dataset["age"].hist(bins=20)
ax.set_xlabel("Âge")
ax.set_ylabel("Effectif")
plt.show()
library(ggplot2)
ggplot(dataset, aes(x = age)) +
geom_histogram(bins = 20) +
labs(x = "Âge", y = "Effectif")
Les filtres s'appliquent avant votre code
Le dataset que reçoit votre code contient déjà le résultat des filtres du tableau de bord. Quand l’utilisateur change un filtre, le widget de code se ré-exécute sur les nouvelles lignes — votre code n’a rien de spécial à faire.
Types de sortie
Le widget affiche ce que votre code produit :
Graphique
Une figure matplotlib / ggplot / base R, rendue en image nette (vectorielle quand c’est possible).
Table
Un DataFrame ou data.frame affiché sous forme de tableau.
Valeur
Un nombre ou un texte imprimé — utile pour un indicateur simple.
HTML
Du HTML brut, pour un rendu personnalisé directement dans le widget.
En cas d’erreur, la sortie standard et les messages d’erreur (stdout / stderr) s’affichent dans le widget pour vous aider à corriger.
Code ponctuel ou plugin réutilisable ?
Un widget de code est idéal pour une analyse ponctuelle, propre à un tableau de bord. S’il se trouve que vous avez besoin du même code d’un projet à l’autre, mieux vaut l’empaqueter en plugin : il devient configurable, partageable et apparaît dans le catalogue. Voir Créer un plugin.