{"id":15116809,"url":"https://ericmjl.github.io/Network-Analysis-Made-Simple/","last_synced_at":"2025-09-27T22:31:36.396Z","repository":{"id":25102162,"uuid":"28523342","full_name":"ericmjl/Network-Analysis-Made-Simple","owner":"ericmjl","description":"An introduction to network analysis and applied graph theory using Python and NetworkX","archived":false,"fork":false,"pushed_at":"2025-01-13T15:29:18.000Z","size":313422,"stargazers_count":1045,"open_issues_count":16,"forks_count":402,"subscribers_count":44,"default_branch":"master","last_synced_at":"2025-01-17T03:01:53.976Z","etag":null,"topics":["graph","graph-theory","live-tutorial","network-analysis","networkx","networkx-graph","networkx2","python","tutorial"],"latest_commit_sha":null,"homepage":"https://ericmjl.github.io/Network-Analysis-Made-Simple/index.html","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericmjl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-12-26T22:56:03.000Z","updated_at":"2025-01-17T02:03:44.000Z","dependencies_parsed_at":"2023-02-13T00:31:07.497Z","dependency_job_id":"ff3e0b99-72f2-4027-b436-de1d91666714","html_url":"https://github.com/ericmjl/Network-Analysis-Made-Simple","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmjl%2FNetwork-Analysis-Made-Simple","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmjl%2FNetwork-Analysis-Made-Simple/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmjl%2FNetwork-Analysis-Made-Simple/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericmjl%2FNetwork-Analysis-Made-Simple/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericmjl","download_url":"https://codeload.github.com/ericmjl/Network-Analysis-Made-Simple/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234462027,"owners_count":18837235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","graph-theory","live-tutorial","network-analysis","networkx","networkx-graph","networkx2","python","tutorial"],"created_at":"2024-09-26T01:45:20.162Z","updated_at":"2025-09-27T22:31:26.374Z","avatar_url":"https://github.com/ericmjl.png","language":"Jupyter Notebook","funding_links":[],"categories":["Books"],"sub_categories":[],"readme":"# Network Analysis Made Simple\n\n[![Build Status](https://travis-ci.org/ericmjl/Network-Analysis-Made-Simple.svg?branch=master)](https://travis-ci.org/ericmjl/Network-Analysis-Made-Simple)\n\nWelcome to the GitHub repository for Network Analysis Made Simple!\nThis is a tutorial designed to teach you\nthe basic and practical aspects of graph theory.\nIt has been presented at multiple conferences (PyCon, SciPy, PyData, and ODSC)\nin a variety of formats (ranging from 1.5 hr to 4 hour long workshops).\nThe material is designed for a live tutorial presentation,\nwith the code available for you to reference afterwards.\n\n## Getting Started\n\nHead over to [the official website][nams]!\n\n[nams]: https://ericmjl.github.io/Network-Analysis-Made-Simple\n\n## Support the project!\n\nIf you enjoy the material, please consider doing one of the following:\n\n1. Share it around on Twitter!\n2. Purchase a copy of the [LeanPub eBook](https://leanpub.com/nams)\n3. Share it with your colleagues.\n\n\u003c!--\n## Getting Started\n\n### Binder\n\n(Consider this option only if your WiFi is stable)\n\nIf you don't want the hassle of getting setup, you can use the Binder service to participate in the live tutorial. Just click on the button below:\n\n[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/ericmjl/Network-Analysis-Made-Simple/master)\n\n\n### Notebook HTML Versions\n\nFor tutorial participants who may run into technical issues, full HTML versions of the notebooks are available to follow along during the tutorial.\n\n- [NB0: Pre-Tutorial Exercises](http://ericmjl.github.io/Network-Analysis-Made-Simple/0-pre-tutorial-exercises.html)\n- [NB1: Introduction](http://ericmjl.github.io/Network-Analysis-Made-Simple/1-introduction.html)\n- [NB2: Network Basics](http://ericmjl.github.io/Network-Analysis-Made-Simple/2-networkx-basics-instructor.html)\n- [NB3: Hubs and Paths](http://ericmjl.github.io/Network-Analysis-Made-Simple/3-hubs-and-paths-instructor.html)\n- [NB4: Cliques, Triangles and Structures](http://ericmjl.github.io/Network-Analysis-Made-Simple/4-cliques-triangles-structures-instructor.html)\n- [NB5: Graph I/O](http://ericmjl.github.io/Network-Analysis-Made-Simple/5-graph-input-output-instructor.html)\n- [NB6: Bipartite Graphs](http://ericmjl.github.io/Network-Analysis-Made-Simple/6-bipartite-graphs-instructor.html)\n- [NB7: Case Study on Game Of Thrones](http://ericmjl.github.io/Network-Analysis-Made-Simple/7-game-of-thrones-case-study-instructor.html)\n- [NB8: Case Study on US Airports](http://ericmjl.github.io/Network-Analysis-Made-Simple/8-US-airports-case-study-instructor.html)\n- [Bonus Notebook: Network Statistical Inference](http://ericmjl.github.io/Network-Analysis-Made-Simple/bonus-1-network-statistical-inference-instructor.html)\n- [Bonus Notebook: Graph Matrix Representations](http://ericmjl.github.io/Network-Analysis-Made-Simple/bonus-3-matrices-instructor.html)\n\n### Local Setup\n\nFor those of you who would like to get setup beforehand and keep a local copy of the repository on your machine, follow along here.\n\n#### Easiest way: Anaconda Distribution of Python\n\nIf you have the Anaconda distribution of **Python 3** installed on a Unix-like machine (Linux, macOS, etc.), then run `make conda`, which wraps the commands below.\n\n1. `$ conda env create -f environment.yml`\n1. `$ source activate nams`\n1. `$ python checkenv.py`\n\nIf you do not have the Anaconda distribution, I would highly recommend getting it for [Windows][2], [Mac][3] or [Linux][4]. It provides an isolated Python computing environment that will not interfere with your system Python installation, and comes with a very awesome package manager (`conda`) that makes installation of new packages a single `conda install pkgname` away.\n\nIf you're not using Python 3, then check out @jakevdp's talk at SciPy2015 to find out why!\n\n#### Alternative to Anaconda: `pip install`\n\nFor those who do not have the capability of installing the Anaconda Python 3 distribution on their computers, please follow the instructions below.\n\nRun `make venv`, which wraps up the commands below. Special thanks to @matt-land for putting this script together.\n\n1. Create a virtual environment for this tutorial, so that the installed packages do not mess with your regular Python environment.\n    2. `$ pip install virtualenv`\n    3. `$ virtualenv network`\n    4. `$ source network/bin/activate`\n5. `$ pip install matplotlib networkx pandas hiveplot numpy jupyter`\n\nCheck your environment:\n\n1. `$ python checkenv.py`\n\n#### Manual Build\n\nFor this tutorial, you will need the following packages:\n\n1. Python 3\n2. `matplotlib`\n3. `networkx`\n4. `pandas`\n5. `hiveplot` - `conda install -c conda-forge hiveplot` or `pip install hiveplot`.\n1. `nxviz` - `conda install -c conda-forge nxviz`.  (This implements Circos plots; HivePlots are being migrated over.)\n6. `numpy`\n7. `scipy`\n8. `jupyter`\n\nThen, clone the repository locally.\n\n1. `$ cd /path/to/your/directory`\n1. Clone the repository to disk:\n    1. `$ git clone --depth 1 https://github.com/ericmjl/Network-Analysis-Made-Simple.git`\n1. `$ cd Network-Analysis-Made-Simple`\n\n\n### Run the Jupyter Notebook\n\n    $ jupyter notebook\n\nYour browser will open to an index page where you can click on a notebook to run it. Test that everything runs fine by executing all of the cells in the Instructor versions of the notebooks.\n\n# Teaching with this repository material\n\nIf you would like to teach with this repository material, we request only the following:\n\n1. As far as possible, make a fork, not a new repository, but no hard restriction here.\n2. Ping us in the Issues tracker [here][1].\n3. Please provide proper attribution back to the original in the primary landing page of derivative work (this would usually imply the `README`) , with the following text:\n\n\u003e This material has been adapted from the tutorial Network Analysis Made Simple created by Eric J. Ma and Mridul Seth. The original material can be found at: https://github.com/ericmjl/Network-Analysis-Made-Simple/.\n\n4. Please provide a lightweight overview of modifications to the original material documented in forked repository. (An example would be a plain text `HISTORY` file, or as a section in the forked README.)\n5. Loop back to us if there are recordings - so that we can link to them in the original repository! We would like to feature on here your efforts teaching with the material.\n\n# Feedback\n\nIf you've attended this workshop, please leave [feedback][7]! It's important to help me improve the tutorial for future iterations.\n\n# Issues\n\n## Known Issues\n\nIf you get a \"Python is not installed as a framework\" error with matplotlib, please check out [this issue][8] for instructions to resolve it.\n\n## New Issues\n\nIf you're facing difficulties, please report it as an [issue][1] on this repository.\n\n# Credits\n\n1. [Divvy Data Challenge](https://www.divvybikes.com/datachallenge)\n1. [Konect Network Analysis Datasets](http://konect.cc/networks/)\n\n# Resources\n\n1. Jon Charest's use of Circos plots to visualize networks of Metal music genres. [blog post][5] | [notebook][6]\n1. Gain further practice by taking this course online at [DataCamp](http://www.datacamp.com/)!\n1. A gentle introduction to graph theory on [Vaidehi Joshi's website](https://dev.to/vaidehijoshi/a-gentle-introduction-to-graph-theory)\n1. If you're the kind who likes more hands-on practice, consider supporting our course on [DataCamp](https://www.datacamp.com)!\n\n[1]: https://github.com/ericmjl/Network-Analysis-Made-Simple/issues\n[2]: http://repo.continuum.io/archive/Anaconda3-4.0.0-Windows-x86_64.exe\n[3]: http://repo.continuum.io/archive/Anaconda3-4.0.0-MacOSX-x86_64.pkg\n[4]: http://repo.continuum.io/archive/Anaconda3-4.0.0-Linux-x86_64.sh\n[5]: http://jonchar.net/2016/05/20/exploring-metal-subgenres-with-python.html\n[6]: http://jonchar.net/notebooks/MA-Exploratory-Analysis#Enter-the-Circos-plot\n[7]: https://ericma1.typeform.com/to/aCljQl\n[8]: https://github.com/ericmjl/Network-Analysis-Made-Simple/issues/8\n\n --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/ericmjl.github.io%2FNetwork-Analysis-Made-Simple%2F","html_url":"https://awesome.ecosyste.ms/projects/ericmjl.github.io%2FNetwork-Analysis-Made-Simple%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/ericmjl.github.io%2FNetwork-Analysis-Made-Simple%2F/lists"}