Cet exemple affiche une visualisation personnalisée locale pour une application en cours de développement, et non une visualisation personnalisée disponible dans Looker Marketplace.
Les composants de visualisation Looker disposent d'un système d'adaptation qui permet aux développeurs de remplacer les types de graphiques existants ou d'ajouter de toutes nouvelles options de type de graphique.
Cette option peut s'avérer utile dans les cas suivants :
- Vous avez créé des visualisations React personnalisées que vous souhaitez utiliser avec les composants Looker.
- Vous souhaitez remplacer une visualisation Looker par défaut existante par une visualisation basée sur une autre bibliothèque.
La possibilité de remplacer ou d'ajouter des graphiques peut être particulièrement pertinente si vous créez une application qui permet aux utilisateurs de modifier le type de visualisation des graphiques au cours d'une session.
Contexte
Après avoir affiché une requête dans l'interface Explore de Looker et transmis son Query.client_id
aux composants de visualisation de Looker, vous pouvez modifier le type de graphique en mettant à jour la propriété type
de la propriété config
.
Chaque valeur acceptée par la propriété type
est mappée à un composant React spécifique. Ainsi, lorsque type
est défini sur line
, un composant Line
est affiché. Lorsque type
est défini sur area
, un composant Area
est affiché, et ainsi de suite.
La propriété chartTypeMap
du composant Visualization
vous permet d'ajouter une nouvelle entrée dans le mappage de type/composants qui associe chaque valeur type
à un composant particulier, ou de remplacer les entrées existantes.
Conditions requises
Comme dans l'exemple Utiliser des composants de visualisation et la propriété query
pour afficher une visualisation simple, vous devez commencer par importer le composant DataProvider
et fournir une instance de SDK authentifiée. L'exemple suivant est créé dans le framework d'extension de Looker, et le SDK provient de ExtensionContext
.
Dans DataProvider
, vous pouvez afficher Query
et Visualization
.
pour demander des données au SDK Looker et afficher la visualisation attendue dans votre application.
La configuration est la suivante (dans la propriété query
, remplacez la valeur par Query.client_id
de votre requête) :
import React, { useContext } from 'react'
import { ExtensionContext } from '@looker/extension-sdk-react'
import { DataProvider } from '@looker/components-data'
import { Query, Visualization } from '@looker/visualizations'
const App = () => {
const { core40SDK } = useContext(ExtensionContext)
return (
<DataProvider sdk={core40SDK}>
<Query query="z8klgi4PJKAl7TXgTw1opS">
<Visualization />
</Query>
</DataProvider>
)
}
Ajouter un type de graphique
Comme pour l'exemple de visualisation simple, vous pouvez modifier le type de graphique affiché en transmettant un remplacement de configuration au composant Query
.
<Query query="z8klgi4PJKAl7TXgTw1opS" config={{ type: 'pie' }}>
<Visualization />
</Query>
Dans ce cas, type
a été défini sur pie
, un graphique que les composants Looker proposent par défaut. Mais que faire si vous souhaitez utiliser un graphique qui n'est pas proposé par défaut ? Dans ce cas, vous pouvez utiliser la propriété chartTypeMap
de Visualization
pour ajouter ou remplacer les composants du graphique dans la carte de type/composant du système d'adaptateur.
Par exemple, si vous souhaitez ajouter un nouveau graphique radar à la carte de type/composant, ajoutez-le à chartTypeMap
comme suit :
import React, { useContext } from 'react'
import { ExtensionContext } from '@looker/extension-sdk-react'
import { DataProvider } from '@looker/components-data'
import { Query, Visualization } from '@looker/visualizations'
import { MyCustomRadar } from '../MyCustomRadar'
const App = () => {
const { core40SDK } = useContext(ExtensionContext)
return (
<DataProvider sdk={core40SDK}>
<Query query="z8klgi4PJKAl7TXgTw1opS" config={{ type: 'radar'}}>
<Visualization chartTypeMap={{ radar: MyCustomRadar }} />
</Query>
</DataProvider>
)
}
Ce code effectue les opérations suivantes :
- Il importe le composant React
MyCustomRadar
. - Attribue la clé
radar
à la propriétéconfig.type
- Met à jour la propriété
chartTypeMap
afin que le système de mappage de types sache ce qu'il faut afficher pour unetype
deradar
Voici comment il s'affiche dans l'espace de test de visualisation Looker :
De même, vous pouvez remplacer les graphiques existants si vous souhaitez afficher votre propre version. Dans l'exemple suivant, le graphique en courbes des composants Looker par défaut est remplacé par un composant de graphique en courbes personnalisé :
import React, { useContext } from 'react'
import { ExtensionContext } from '@looker/extension-sdk-react'
import { DataProvider } from '@looker/components-data'
import { Query, Visualization } from '@looker/visualizations'
import { MyCustomLine } from '../MyCustomLine'
const App = () => {
const { core40SDK } = useContext(ExtensionContext)
return (
<DataProvider sdk={core40SDK}>
<Query query="z8klgi4PJKAl7TXgTw1opS">
<Visualization chartTypeMap={{ line: MyCustomLine }} />
</Query>
</DataProvider>
)
}
Désormais, chaque fois que le composant Query
rencontre une requête dont le type de visualisation est défini sur line
, il affiche l'implémentation personnalisée à la place de l'implémentation par défaut de Looker.
Étapes suivantes
- Utiliser des composants de visualisation et la propriété
dashboard
pour afficher une visualisation simple - Utiliser des composants de visualisation et la propriété
query
pour afficher une visualisation simple - Créer une visualisation personnalisée à l'aide de composants de visualisation
- Visualisation et tables de propriétés de requêtes