network-graph-tutorial

construct a network graph to explore and visualize how people connect in an organisation

View the Project on GitHub lucasdurand/network-graph-tutorial

Building an Interactive Network Graph to Understand Communities

A hands-on tutorial originally given for PyData Seattle 2023, then PyData NYC 2023 where we learn about people, put them into graphs, then build a fun graph app!

Watch the video - it really happened!

Introduction – People?!

People are hard to understand, developers doubly so! In this tutorial, we will explore how communities form in organizations to develop a better solution than “The Org Chart”. We will walk through using a few key Python libraries in the space, develop a toolkit for Clustering Attributed Graphs (more on that later) and build out an extensible interactive dashboard application that promises to take your legacy HR reporting structure to the next level.

In this tutorial, we will develop some fundamental knowledge on Graph Theory and capabilities in using key Python libraries to construct and analyze network graphs, including xarray, networkx, and dash-cytoscape. The goal of this talk is to build the tools you need to launch your own interactive dashboard in Python that can help explore communities of people based on shared characteristics (e.g. programming languages, projects worked on, apps used, management structure). The data we will dig into focuses on building a better understanding of developers + users and how they form communities, but this could just as easily be extended to any social network. The work we do here can be easily extended to your communities and use cases – let’s build something together!

This talk is aimed at Pythonistas with beginner+ experience; we talk through some complex libraries and mathematical concepts, but beginners should be able to follow along and still build their understanding (and an app!)


Outline

First, some slides!

Data

Building a Simple Network Graph

Clustered Attribute Graphs

Exploring Communities with an Interactive App

More Things?

Deployment

Google App Engine

  1. Install the Google Cloud SDK https://cloud.google.com/sdk/docs/install-sdk#deb
  2. Initialize the repo gcloud init and log in. Create a new project if needed.
  3. Configure your app.yaml https://cloud.google.com/appengine/docs/standard/reference/app-yaml?tab=python
  4. Deploy the app gcloud app deploy
  5. View it! gcloud app browse or – https://community-networks-pydata.uc.r.appspot.com/