3.1 KiB
Netzwerkanalyse (Tim Ronneburg)
Der Netzwerkanalyse geht das Kapitel 3.5 Verflechtungsanalyse vorraus indem die Grundlagen für den Aufbau eines Netzwerks sowie dessen Analyse vermittelt wurde. in diesem Abschnitt wird sich mit der Realisierung dieses Netzwerks und dem Erkenntnis Gewinn beschäftigt.
Wie im vorrangegangenen Abschnitt beschrieben kam in dem Projekt Plotly Dash zum Einsatz, ein Tool mit welches für die Erstellung von Dashbord mit Python ausgelegt ist. Zusätzlich wurde diese Tool mit der Bibliothek NetworkX erweitert um die Netzwerkgraphen abzubilden.
Die Netzwerkanalyse sollte und wurde an mehreren Stellen des Projektes integriert. Zunächst einmal in der Hauptseite wo es den gesamten Graph darstellt, dann auf der Unternehmens Detail Seite zur Betrachtung der Verflechtung aus der Perspektive des gewählten Unternehmens, sowie auf der Personen Detailsseite aus selben Grund wie bei der Unternehmensseite.
Quellcodeseitig wurde für die Erstellung des Netzwerks mehrere Dateien angelegt. Im Verzeichnis UI gibt es eine Unterordner utils mite dem Unterordner networkx, in diesem befinden sich die Dateien: network_2d.py network_3d.py network_base.py networkx_data.py
Die ersten beiden Dateien beinhalten den Quellcode zur Visualisierung des Netzwerkes mit einem Scatterplot in 2D oder 3D. Die Datei "base" beinhaltet die Initialisierung des Netzwerkes anhand der ausgewählten Daten. Gleichzeitig werden hier auch die Metriken gebildet. In der Datei "data" befinden sich diverse Funktionen zum abfragen von Daten die dann an das Netzwerk gegeben werden können.
Der Ablauf sieht unteranderem wie folgt aus. Wenn ein Nutzer auf der Startseite landet werden einige Funktionen in networkx_data ausgeführt um die Datenbank nach den voreingestellten Daten zu durchsuchen. Diese Daten werden in aufbereitet und als pandas Dataframe an network_base weitergegeben wo mithilfe vom Framework NetworkX ein Graph erstellt wird. In diesem Graph Element stecken die Positionen der Nodes. Außerdem werden Methoden bereitgestellt mit denen Standard Netzwerkanalyse Metriken berechnet werden können. Für diese Projekt sind es die Metriken degree, betweness, closeness, und pagerank. Anschließend wird das NetzwerkX Objekt und das Dataframe Metrics an die Datei network_xd gereicht. Dieses ließt die Positionen der nodes aus und berechnet die Edges um dann mithilfe eines Scatter plots den Graphen in 2d respektive 3d zu erstellen. Man erhält ein Figure Objekt, welches von Dash angezeigt werden kann.
Dieses Figure Objekt wird in den Pages Dateien: home.py company_elements.py person_elements.py
eingebunden. Für das Updaten des netzwerks nach Benutzereingaben werden callbacks verwendet. Diese werden durch das bedienen eines HTML Elements wie ein Dropdown oder Radiobuttons ausgelöst. Dadurch das dem Benutzer mehrere Auswahlmöglichkeiten für die Betrachtung des Netzwerkes gegeben werden muss der Callback für das Netzwerk mehrere Inputs aufnehmen und verarbeiten, da ein Callback immer nur ein Output hat und mehrere Callbacks nicht auf dasselbe HTML Element referenzieren sollen. Es gibt zwar neuerdings eine Möglichkeit multiple Outputs zu nutzen, birgt aber keine sonderlichen Vorteile.