
Visualiser des données Network dans Power BI avec l'intégration Python et NetworkX
Visualiser des données Network dans Power BI avec l'intégration Python et NetworkX :
- L'intégration du scripting en Python tant attendue dans Power BI offre l'opportunité de créer des rapports personnalisés supplémentaires en exploitant la vaste gamme de bibliothèques de visualisation Python.
Parmi les bibliothèques les plus efficaces de science / visualisation des données Python, il y a NetworkX, un package puissant conçu pour manipuler et étudier la structure et la dynamique de réseaux complexes. Alors que NetworkX excelle le plus dans l'application d'algorithmes de théorie des graphes sur des graphes de réseau de plus de 100 millions d'arêtes, il offre également la capacité de visualiser ces réseaux efficacement et, plus facile que les packages équivalents de R.
Dans cet article, on expliquera comment visualiser les données réseau dans Power BI à l'aide de l’intégration Python et de la bibliothèque NetworkX Python.
- Configuration de l’environnement Python :
- Pour commencer à expérimenter avec NetworkX et Python dans Power BI, il existe plusieurs prérequis:
- Activez l'intégration Python dans les paramètres de prévisualisation en allant dans Fichier -> Options et paramètres -> Options -> Fonctionnalités de prévisualisation et en activant la prise en charge de Python.
-
- Assurez-vous que Python est installé et entièrement à jour.
- Installez les bibliothèques Python suivantes :
- NetworkX
- NumPy
- Pandas
- Matplotlib
- Chargement des Données :
Les données utilisées ont été créées pour illustrer cette tâche dans Power BI, mais il existe de nombreux jeux de données réseaux réels à expérimenter fournis par Stanford Network Analysis Project. Ce petit jeu de données factice représente un réseau de coachât de livres.
Les données chargées dans Power BI se composaient de deux CSV distincts. L'un, Books.csv, se composait de métadonnées relatives aux 40 meilleurs livres les plus vendus selon Wikipédia et leurs identifiants attribués. L'autre, Relationship.csv, était une Edge List des ID de livre qui est une méthode populaire pour stocker / fournir des données réseau. Le graph crée est un graphique non orienté et non pondéré afin de pouvoir filtrer avec précision. Pour cette raison, on a dupliqué cette Edge List et inversé les colonnes afin que ToNodeId et FromNodeId aient été échangés. L'ajout de cette nouvelle liste d'arêtes à la fin de la liste des bords d'origine, a créé un jeu de données filtré sur les deux colonnes. Pour les graphiques orientés, cette étape est inutile et peut être ignorée.
Une fois chargé dans Power BI, on duplique la table Books pour créer le diagramme de relations suivant car il n'est pas possible de répliquer la relation entre FromNodeId to Book ID et ToNodeId to Book ID avec une seule table Books.
De là, je peux créer mon graphique de réseau.
- Construire le graphe de Networkx :
Enfin, nous pouvons commencer l'intégration Python !
Sélectionnez le visuel Python dans le volet des visualisations et faites-le glisser sur le tableau de bord.
Faites glisser les colonnes Titre du livre de Books et Books2 dans Valeurs :
Power BI créera un cadre de données à partir de ces valeurs. Cela peut être vu dans les 4 premières lignes de l'éditeur de script Python.
Le code Python suivant (également illustré ci-dessus) va créer et dessiner un graphique de réseau simple non dirigé et non pondéré avec des étiquettes de nœud à partir du bloc de données généré par Power BI:
** Remarque : vous constaterez peut-être que le code ci-dessus ne fonctionnera pas avec les grands réseaux. En effet, par défaut, networkx dessinera le graphique selon la mise en page Fruchterman Reingold, ce qui positionnera les nœuds pour une meilleure lisibilité. Cette disposition n'est pas adaptée aux réseaux de plus de 1 000 nœuds en raison de la mémoire et du temps d'exécution nécessaires pour exécuter l'algorithme. Comme alternative, vous pouvez positionner les nœuds dans un cercle ou de manière aléatoire en éditant la ligne
Vers :
Ou bien :
Cela produira le graphique du réseau ci-dessous:
Vous pouvez également effectuer un filtrage croisé du graphique du réseau en sélectionnant des lignes dans le tableau de droite:
- Conclusion :
Les visuels Python sont simples à produire et bien que le visuel lui-même ne soit pas interactif, ils seront mis à jour avec des actualisations de données et un filtrage croisé, tout comme l'intégration R ajoutée il y a 3 ans. L'introduction de Python dans Power BI a ouvert des portes à la visualisation avec des bibliothèques telles que NetworkX, pour visualiser tous les réseaux BI, des vols de connexion aérienne et des réseaux de coachat à l'analyse des réseaux sociaux.