Vous pouvez utiliser la visualisation de la communauté comme filtre du graphique, en filtrant les grâce à vos interactions avec la visualisation de votre communauté.
Fonctionnement des filtres de graphiques des visualisations de la communauté
Pour utiliser votre visualisation de la communauté comme filtre de graphique, vous devez:
- Configurer la propriété
config.interactions
- Rédigez du code qui appelle
dscc.sendInteraction()
avec les informations de filtre.
Définir les interactions
Si votre visualisation prend en charge des interactions, elles doivent être définis dans votre configuration. Lorsqu'elle est définie, une case à cocher s'affiche dans la du panneau des propriétés.
Exemple de propriété config.interactions
:
{
"data": ...,
"style": ...,
"interactions": [
{
"id": "interactionsConfigId",
"supportedActions": ["FILTER"]
}
]
}
Écrire du code pour un filtre
Utilisez dscc.sendInteraction()
pour associer l'interaction de l'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 le rapport
l'éditeur n'a pas activé l'option "filter" des interactions pour
votre visualisation.
Garder une trace de l'état d'un 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
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()
}
}
Construction de interactionData
...
L'objet interactionData
définit la manière dont Looker Studio filtrera
tableau de bord.
Filtre à dimension unique
Ce graphique à barres indique le nombre de livres par langue (une dimension et une
la métrique). Supposons qu'un utilisateur sélectionne la barre correspondant aux livres en espagnol.
vous souhaitez utiliser la sélection
pour filtrer le reste du tableau de bord. Votre
interactionData
ressemblerait à ceci:
var interactionData = {
"concepts": ["languageDimensionId"],
"values": [["Spanish"]]
}
Filtre de 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 vous voulez filtrer le reste
pour n'afficher que les données correspondant à "Lundi soir" ou "Vendredi
après-midi". Votre interactionData
ressemblerait à ceci:
var interactionData = {
"concepts": ["dayOfWeekDimensionId", "timeOfDayDimensionId"],
"values": [
["Monday", "evening"],
["Friday", "afternoon"]
]
}