Vous pouvez utiliser la visualisation de la communauté comme filtre de graphique, en filtrant le rapport en fonction des interactions avec la visualisation de la communauté.
Fonctionnement des filtres de graphiques de visualisation de la communauté
Pour utiliser la visualisation de la communauté comme filtre de graphique, vous devez:
- Configurez la propriété
config.interactions
. - Écrivez du code qui appelle
dscc.sendInteraction()
avec les informations de filtre.
Définir les interactions
Si votre visualisation accepte les interactions, celles-ci doivent être définies dans votre configuration. Une fois définie, une case à cocher s'affiche dans le panneau des propriétés.
Exemple de propriété config.interactions
:
{
"data": ...,
"style": ...,
"interactions": [
{
"id": "interactionsConfigId",
"supportedActions": ["FILTER"]
}
]
}
Écrire le code d'un filtre
Utilisez dscc.sendInteraction()
pour associer l'interaction utilisateur à une action de filtre.
Exemple :
const handleInteraction = () => {
// this is the interactionId defined in the config
const interactionId = "interactionConfigId";
// the ID of the field you want to filter on
const dimensionId = "qt_ky8sltutsb";
// the value of the field you want to filter on
const value = "USA";
// the interaction type - only FILTER is supported right now
const FILTER = dscc.InteractionType.FILTER;
let interactionData = {
concepts: [dimensionId],
values: [[value]]
};
// send Looker Studio an instruction to filter other charts in the dashboard
dscc.sendInteraction(interactionId, FILTER, interactionData);
};
Looker Studio ignorera les messages envoyés par dscc.sendInteraction
si l'éditeur de rapports n'a pas activé les interactions "Filtrer" pour votre visualisation.
Suivre l'état du filtre
L'objet data
que Looker Studio envoie à votre visualisation fournit des informations sur les interactions.
Exemple de propriété data.interactions
:
"onClick": {
"value": {
"type": "FILTER",
"data": {
"concepts": [
"qt_h6oibrb6wb",
"qt_i6oibrb6wb"
],
"values": [
[
"Afternoon",
"Sunday"
],
[
"Afternoon",
"Thursday"
],
[
"Morning",
"Tuesday"
]
]
}
},
"supportedActions": [
"FILTER"
]
}
Si value.data
n'est pas défini, la visualisation filtre actuellement d'autres composants du tableau de bord.
Exemple :
const barHighlighting = (interactionsById) => {
// the interactionId defined in the config
const interactionId = "interactionConfigId";
const interactionField = interactionsById[interactionId];
// if filter is selected
const filterSelected = interactionField.type === "FILTER";
// if the viz is currently acting as a filter
const filterHasData = "data" in interactionField;
if (filterSelected && filterHasData){
// call the highlightBar function on the selected data
highlightBar(interactionField.data);
} else {
// clear highlighting if no data selected
clearHighlight()
}
}
Construire interactionData
L'objet interactionData
définit la manière dont Looker Studio filtre votre tableau de bord.
Filtre de dimension unique
Ce graphique à barres représente le nombre de livres par langue (une dimension et une métrique). Supposons qu'un utilisateur ait sélectionné la barre correspondant aux livres en espagnol et que vous souhaitiez que la sélection filtre le reste du tableau de bord. Votre interactionData
devrait se présenter comme suit:
var interactionData = {
"concepts": ["languageDimensionId"],
"values": [["Spanish"]]
}
Filtre à plusieurs dimensions
Cette carte de densité montre la température par jour de la semaine et par heure de la journée (deux dimensions et une métrique). Supposons qu'un utilisateur ait sélectionné les cellules correspondant à "Lundi soir" et "Vendredi après-midi", et que vous souhaitiez filtrer le reste du tableau de bord pour n'afficher que les données de "Lundi soir" ou "Vendredi après-midi".Votre interactionData
ressemblerait à ceci:
var interactionData = {
"concepts": ["dayOfWeekDimensionId", "timeOfDayDimensionId"],
"values": [
["Monday", "evening"],
["Friday", "afternoon"]
]
}