Vous pouvez ajouter des images aux tableaux de bord Looker en codant en dur l'URL d'une image dans une tuile de texte Markdown. Cependant, les images des vignettes de texte sont statiques et ne sont pas mises à jour en fonction des résultats. Que faire si vous souhaitez qu'une image de tableau de bord change de manière dynamique en fonction d'une valeur de filtre sélectionnée par l'utilisateur ?
Cette page de bonnes pratiques explique comment obtenir une image de tableau de bord dynamique à l'aide de Liquid et du paramètre html.
La solution
La solution suivante est basée sur un ensemble de données d'e-commerce qui inclut un champ appelé users.state, représentant les États dans un ensemble de données d'e-commerce hypothétique :
dimension: state {
type: string
sql: ${TABLE}.state ;;
}
Imaginons que vous souhaitiez afficher l'image du drapeau d'un État sur un tableau de bord qui sera mis à jour en fonction de l'État choisi par l'utilisateur pour filtrer les résultats du tableau de bord.
Pour créer l'image de tableau de bord dynamique, vous devez suivre trois étapes :
- Créez une dimension d'image en LookML.
- Créez une vignette de tableau de bord d'image dynamique.
- Ajoutez des filtres au tableau de bord et apportez les dernières modifications.
Étape 1 : Créez une dimension d'image dans LookML
Pour créer une dimension d'image en LookML :
- Tout d'abord, accédez au projet et au fichier de vue contenant la dimension à laquelle vous souhaitez ajouter des images. Ensuite, créez une dimension basée sur ce champ, spécifiquement pour afficher les images.
-
Ajoutez un paramètre
htmlpour définir une instruction conditionnelle{% if %}Liquid avec la variablevalue, pour chaque valeur pour laquelle vous souhaitez afficher une image.Par exemple, la dimension
state_flag_imagesuivante établit une condition pour afficher les images spécifiées (avec des baliseshtml <img>) lorsque la valeur destateest"California","New York","Colorado"ou"Illinois". Pour tous les autres états, vous pouvez afficher une icône "Aucune image disponible" :dimension: state_flag_image { type: string sql: ${state} ;; html: {% if state._value == "California" %} <img src="https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg" height="170" width="255"> {% elsif state._value == "New York" %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_New_York.svg/1200px-Flag_of_New_York.svg.png" height="170" width="255"> {% elsif state._value == "Colorado" %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Flag_of_Colorado.svg/255px-Flag_of_Colorado.svg.png" height="170" width="255"> {% elsif state._value == "Illinois"%} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_Illinois.svg/1200px-Flag_of_Illinois.svg.png" height="170" width="255"> {% else %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/No_image_available.svg/1024px-No_image_available.svg.png" height="170" width="170"> {% endif %} ;; } -
Créez une condition de valeur pour chaque valeur pour laquelle vous souhaitez afficher une image. Vous pouvez également créer un champ d'image dynamique à l'aide de la variable Liquid
value, comme décrit dans le post de la communauté How to add images to visualizations (Ajouter des images aux visualisations).
Vous pouvez ensuite créer une vignette de tableau de bord pour la dimension de l'image.
Étape 2 : Créez une tuile de tableau de bord d'image dynamique
Maintenant que la dimension d'image (state_flag_image) a été créée, vous pouvez créer une exploration qui deviendra la vignette d'image dynamique du tableau de bord.
Créez votre exploration avec les critères suivants :
-
Ajoutez un filtre pour la dimension d'origine (dans ce cas,
state). Définissez le filtre sur n'importe quelle valeur. L'image "Aucune image disponible" s'affiche initialement, car aucune valeur de filtre spécifique n'est sélectionnée. Cette valeur de filtre sera mise à jour en fonction de ce que l'utilisateur sélectionne pour le filtre du tableau de bord. -
Sélectionnez la dimension de l'image (dans ce cas,
state_flag_image) et toutes les autres dimensions qui peuvent être nécessaires à la requête qui détermine l'image (par exemple, si vous souhaitez prendre en compte une date, vous pouvez inclure la date, etc.). - Définissez la limite de lignes sur une ligne.
-
Définissez le type de visualisation sur KPI (valeur unique) ou Valeur unique (ancienne version), puis masquez toutes les autres colonnes, à l'exception de la dimension d'image (
state_flag_image).
Votre exploration affichera initialement l'image "Aucune image disponible" dans la visualisation de valeur unique affichée dans le panneau Visualisation. L'image affichée changera en fonction de la valeur de filtre sélectionnée par l'utilisateur dans le tableau de bord final :
Enregistrez l'exploration dans un tableau de bord en tant que carte.
Étape 3 : Ajoutez des filtres de tableau de bord et apportez les dernières modifications
Vous devez maintenant ajouter des filtres au tableau de bord. Les filtres du tableau de bord mettront à jour le filtre de l'exploration pour modifier l'image affichée en fonction de la sélection de l'utilisateur.
En mode Édition du tableau de bord, créez le filtre :
- Ouvrez la fenêtre "Ajouter un filtre".
- Sélectionnez le champ à utiliser comme critère de filtrage. Le champ de filtre doit être la dimension sur laquelle repose la dimension d'image. Dans cet exemple, le champ du filtre sera state.
- Sélectionnez la vignette d'image de l'étape 2 dans l'onglet Vignettes à mettre à jour.
- Sélectionnez la dimension d'origine (state dans ce cas) dans le menu déroulant Champ à filtrer. Sélectionnez d'autres vignettes à mettre à jour si vous le souhaitez.
- Personnalisez le filtre comme vous le souhaitez. Si vous sélectionnez l'option de contrôle Avancé, veillez à désélectionner l'option Autoriser plusieurs valeurs de filtre, qui est automatiquement activée pour l'option de contrôle Avancé.
La vignette d'image sera alors mise à jour en fonction de la sélection du filtre utilisateur.
Lorsqu'un utilisateur choisit de filtrer par "Californie", le tableau de bord affiche le drapeau et les données de l'État de Californie :
Lorsqu'un utilisateur choisit de filtrer par "Colorado", le tableau de bord affiche le drapeau et les données de l'État du Colorado :