{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Overview\n", "\n", "This week is about getting familiar with networks, and we'll focus on four main elements\n", "\n", "* Basic mathematical description of networks\n", "* The `NetworkX` library \n", "* Matplotlib, binning, and plotting degree distributions\n", "* Random networks" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 1: Basic mathematical description of networks\n", "\n", "This week, let's start with some lecturing. I love networks, so I'll take some time time today to tell you about them.\n", "\n", "> **_Video Lecture_**. Start by watching the \"History of Networks\". \n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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\nAAAAAAAAAAAAAAAB/9k=\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"qjM9yMarl70\",width=800, height=450)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> **_Video Lecture_**. Then check out a few comments on \"Network Notation\". " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUDBAgHBgUIBwgFBQUFBwUHBwYGBwUFBQUFBgUGBwUG\nBQUHChALBwgOCQYFDRUNDhERExMTCAsWGBYSGBASExIBBQUFCAcICAcHCBIIBwgSEhISEhISEhIS\nEhISEhISEhISEhISEhIeHhISHh4eHh4eEhIeEhIeEh4SEhISHh4SEv/AABEIAWgB4AMBIgACEQED\nEQH/xAAdAAACAgMBAQEAAAAAAAAAAAAAAgMFBAYHCAEJ/8QAUhAAAgEDAAQICQkECAQEBwAAAAID\nBAUSBhMiMgcUIzNCU1TUARUYQ1FSY5OUCBEkYnOCg5GSFjFEchchNEFkhKPhYXSitCWksdFxocPE\n0+Pw/8QAGgEBAAMBAQEAAAAAAAAAAAAAAAIDBAEFBv/EACERAQADAQEAAgMAAwAAAAAAAAACAxMS\nUQQiFDJCARFS/9oADAMBAAIRAxEAPwDxkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAADAeivJB0l7doj8Xde4nzyRNJe3aIfF3XuJHSPqfDzsB6H8kXSTt2iPxd17ifPJH0k7bon8Xd\ne4jSPpw88gehvJH0k7bon8Xde4h5I+knbdE/i7r3EaR9OHnkD0J5JGknbdE/i7r3E+eSVpH23RP4\nu69xGkfTh58A9BeSZpH2zRT4q6dxF8k3SPtmivxV17kNI+nDz+B6A8k3SPtmivxV17kHkm6R9s0V\n+KuvchpH04efwPQHkn6R9s0U+Kuncg8k/SPtminxV07kNI+nDz+B33yU9Ie26K/FXTuIeSnpD23R\nX4q6dxGkfThwIDvvkp6Q9s0X+KuvcQ8lPSHtmi/xV17iNInDgQHevJW0g7Zov8Vde5B5K2kHbNF/\nirr3IaROHBQO8+SxpB2zRf4q6dyDyWNIO2aL/FXTuQ0icODAd38lnSDtmi/xV17kHkuX/tmi/wAV\ndO5DSPpw4QB3fyXL/wBs0X+KunchPJfv/bNGPibp3IaR9OHCwO6eS/f+2aMfE3TuQeS/f+2aMfE3\nTuQ0j6cOFgd08mG/ds0Y+JunchfJiv3a9Gvibr3IaR9OHDQO4+TJfe1aN/E3TuR88mW/dq0b9/de\n5DSJw4eB3DyZb92rRv3917kL5NF97Xo37+69yGkfThxEDtvk1X3tWjnvrp3IPJqvvatHPfXTuQ0j\n6cOJAdr8mu+9q0c9/de5B5Nt87Vo5766dyGkfThxQDtfk3Xztejnv7r3ITycb32vRz3117kNI+nD\ni4HaPJxvfatHvfXXuR88nO99q0f99de5DSJw4wB2XydL12rR/wB9de5h5O957Vo/7+492GkfThxo\nDsvk73ntWj/v7j3Y+eT1ee06P/EXLuxzSPpw42B2Lye7z2nR/wB/ce7B5Pd57To/7+492O6R9OHH\nQOw+T7ee02D4i492Dyfbz2iwfEXLuw0j6cOPAdh8n289osHxFy7sL5P157RYPiLj3YaR9OHIAOv+\nT9ee0WD4i492Pn9AF47RYvfXHuw0j6cOQgde/oAvHaLF76492Pn9Ad47RYvf3Lu40j6cORAdb/oE\nvHaLF7+492D+gS8dosXv7j3YaR9OHJAOtf0DXjtFj9/ce7C/0D3ftFj9/cO7DSPpw/RMBxDzF5BC\nYQBCMkkIwASQcQCEBwAQQcQAI5CQjAQQmEAQAABBBwAgAkIwEEJhCYhkEJpBAEIyQCIjEHA4IRCa\nQQBBCYQCAQcAIQkHEkQmISMnkEAjEHALEMghMIBCA4gARkhGAkgDiAJIAAFZBJCYQBCMkCQCMQcQ\nBAHAD0AA4hAIIOBMQyEZPIIBGIOIACDiEAgDiAIRkgARiDiAIAAAgAACSEZJIAEYg4hMJIIOJIAA\nAkhABGSABHIIPIIAkgg4hMQATiARiDhIBDIJIg4SBYhIyQAIAHEASQQmkQSRAIQHEAjDAkIwrIIP\nIACCDgAgDiAJgRk4gEYAAHoAJCTAjkOhBB5BDjhBJCYSQOoAAAEAcQBJBBxCAQAACMSQcSQmEAcQ\nAEHEIAEHEAjEkHCQmEEHEABBxH2QEkI8zX9N9JEoIHblM/ZvSnD7zwo3V5X1E8cCfyUoWvQlfcoo\nlfJ401ZrdJp/bJWdeNIjx78cnIHnO+36urnzqZ5HfrOYNfkdstpszubnD2TBeKaVEeGeB0k6tx+O\nJjlkmEh48guUsXNyzwfZuWdBptXRfxM7+zGY9aRzKy5Kw554tvCdPxV4238+cOiaCcIUVZyUuxMB\n0AjCOZWDM4rIIOAEMghNIQgRgABYQSQcSQKyAAAIAABHIIOIACDiAAg4gAIOACSEZIRgehxJCYSQ\ntcQSCE5GVIoRCaQQ6mxQJJCOQAEHEOBBBxAAQAAjEHEABBxAAQcQAEHEkAjAAAQQcQBJHxXI5lp3\nwlxUyvFTLnNH5wfhY0w4sr0cD4TdOTqTg1yrMmfWO7kV8IJr1fpKyV2maR3k+ua/Vuy7rENXWRL1\nhhT1Ozku2nVl3Cw8l4ZWxbV4EM9T6rGLJq512WMWBGVtlubLEFhHU57LNg5jZsjkGDZZFhBRu4cz\nSQVOKk1tvDRPkrYGVBYXZd0q6+zvE2WJAwm6vonwl1NNhrG16e0OwaGaWwXNeTaPXR78Z5FpKxlb\nFjY9GtJJ6GoSWBpEeP65zhF7AENc4PdJFu1Aku5N04zYyDhJBBwOK0JGSSABAJITCAQgOIAgDiAR\niDiAAg4gAIOIABIAAIAAB6JwEkK/SzSGhtUGvuNTBbqXm9ZO5p8fC7o87Yx3Ohf75arb0RyFTadJ\n6Gs/s1TSVX2bl1vKBAIO+yQyTL6wWCQgJAAjEHEK3CCDyCB0gDiARiDiHACDiAAg4gAJIOJIBGAA\nAkhrOm94amo5tW2DyecNgr+ac4Zwk35pXeLW5pTkFldbRdLKzFnZtvWdY5otXUqzF1cspX3iek0V\nWoTKNs5urkQsg1Ztbko4n3v9MnoLOr8zLhN1cnnjY6TRh9U8Ui4P0Cvgsjq27tk9DCbX57btbS4P\n7MILazMbtHZ3ZOUUzaSyL0lIaL6/iNSoLDl0TZ7bZFVd02CgtqqWEcKqpDdthQqI7auJX19Au7ib\nHIYc6Fehw0K+6PZLrI1NYjRkfFjrsibJq2ktkVttSyuxlvobNwI6ScWrEpm5mrPQZ45ttTLA6NHr\nEmj3JD1Hwc3vj9thduej3yTzrGxiDiBQSQQeQSQCMQcQBAHEkAQQcQCMQnI5AEABAAAEAcQcQAAA\nArPl11+K6OQf8xOeXz0B8uOpy0htMHZ7drPiqqqPP5ugob5wGzSpfqXUvImxUc257ttnMQ/yHhz5\nP8Od7y6tD3HSbMSfyFM03kz5VOmdxi0lelpq6uoqWkgp+QpJ6qD6Qcvg4Qr5BtR3W7fiT68tvlEV\nLT6ZaRt1c+rQ0OTdLq4D1T8nDT+4XZJkr317xvq9Yd3jPMvySKbGJ36yeo/7U9Ox7pTMQYAT4CYE\nBAITSIJgFiEQmwEAQjJCMrcIA+AmACCDgHSCDiHBGBIRgVOlFSsFHMzfcPPOlj4K+S7Z3bhCppJa\nNFj9fbPPnCSmGGTEGqhrlihesn1XQO02XRjCnTZ/6DXOBHRtZYknkXnDuCUeCFM5vVog5lV6N5Nl\niVk+jyq20dNr9ljXLlvuxBe06S2qm6p91KqXNXjiVkm6NE62FIhDITTuY0gEEjmNIPIQEwhjTpkr\nqZkhjSbpOtRY0+5U2DudJ+T3dWWqqqVm2JOUQ0m7Q5bTecMrgrqWpb9RYtsSPqy55Fj0zIIOIGQk\ngg8ggEYAACCSDiSAIEgCSABHISEcgCCAAAIOIAAAAIASABzL5X1Tr9NKr/CUtvgOOSHrbhf4Aaq9\n3mpuMFwpION78c6HP6v5M16Tm6q0z/fqoDdBQpfk002Vynb/AJc9qQJip5/4GOCW42SV2q+KPrH1\nnIOd5qKlsHxXbwIpvz84UazjOkukcvWXG4f90azIdD0w4K9IUuNwk8WV1UklVUSayBNfrvpRrE+h\nN6RsZLVeU/yNUSgg9D/JWhxoof8AMSHoCBNk4/8AJ3s8tHRUqzpJA+HNyJqDsealSYEHzUTNTgQj\nJ9kTZAgEkJhJAIRCbATAgEIycSRAIBCbMSQLEIDiFbhJCMkIw6r70mVPN/Ieb+EmHX1mC7kZ6Qvr\n40dU31DhlytudQjsvTK26h1DgytSwW2ibHoG21G4JonTLxOBVXm0JrkmJin+71INZuRrFemTGz3U\n1ycL1LVoV86FtVoVk4TzV8iEMiGaQSIWDC1IakynfFjCnrFVtrcJoIZ4TCnQS836JF3o0+0c1+fS\n1VbdzLIVqLLILadMlxY1yd2paxHXYenfWITR6VQNvaxDGgqYq+qxXWImHOYc8aYPOsm9TaPV61VF\nRTruVEFPIZshwKxaVVNLTpBHLJBDT9X546nwc6Wx3an2mwrY9+Mgow+nbaiGQmITjKCMAAQSQcSQ\nBBBxAAgkHEkAQAAAEASQBxMwIwJAIwA61SVlTLS01Txqrghq01ia/ioT186Yayug5Tc1iUpv1JQx\nRQwxRokcMCYInVeD5v3eAhrLNTT87DBL/OngPS+jK0qOa4suUbwOnWagJKy4rvJSP9yqNzjtsSLj\nGuCdXGJJRqMxo091rOlBSfrqv/wEEl7nXepo/ijeuJkElAMzRpn7Qt0qWr/DelD9pF6UFyT7htUl\nt+zIPE69JI/0EM09Gsx6QxKu1xv3FUH7T03W4faJVGwSWReqjMWSyLjzQzNFT+09L2mBCaPSGmbd\nqaT35PPYVx5or59G4+oGZozY7wjbrwP98fj7Ma/Po3B0qb/QMKfRumVuaw+4UJttkr2UPGX1TSJL\nJBlyesj+/VCeJPVnrvf1QG5+OE2/Zj+OENJ8VSru1lcn3yGSgrF/jJ3+04qOBvXjJD5x9PWNGkS4\nL5+P8SClIJJrgu61I/4H/wC8cDoPHE9Y+cZRukc845cF6FC/xQeOKxd6mgf7NyvN10TXL6xHmpz/\nAMfVXSpH/DnEk0kl6irT7N6U6m3q7JraeZFwzkQ5xHR4bMi7cZmyaSY70Vd+ghjrFqebWfP2iago\nsgvom6Toe6tFiWFypslcotD3xNsqkyQyvUh/loFypt8opKY227JizmrXabAg1qWvQoqt1Mq7XJFX\nac0+7X6JWxVsyeaei5kmVSsq7kqlFPcs+kU1yuq+sXV0K53r286Qoi7xpF20nllbGHYQrK6paV8R\nNlF2d81V1vPvvnM8dNK+03+oZWpj3c43Kivpn3maRzKoLU0qJs4F7KzeIK6hYrU8tU+TyI9PuGZQ\nW1oG2WLC2pjXzfyFKcICkhbJ4mbbjNq4Mql6W7UqrsazkyivSMvLx78ZYaJ168YpX6cb05W2/wAc\nPRshCED5ojdYAeSjEHEOKgIEgh0Ag4hwRiSDiHQgAACCSDiSHAEYAAAAAeoOkEhFWTeFPAvzeDwP\nK7YJ/wC/h/Ixp0igXOflmd/Amb/v/r+f5v8A0N7KztYvrIJIV9U8DRzMi69401mrj58q6u9ywWzj\nWok+dOL+HVz8hPLxmq8H5fv8BMX0iCBOjttK34ZhVdZqlymXAmgyQASR1VcmbBCYCEI6lHbk2z+z\nDMgmjk3XKnaRaVVad5qjrJy3q+am/kNfgd6qkhddXh1ZAZM7xqyK1Tg8nJpH9FMaesRF2qmDDPVk\nc6Y4NJSa9/pHn6X+KMOrpll1OVDV4U89PPHHG9LqCAyZ3VUd2ak1Me/JgJA+a5aqPAwp6bjMTpMs\niQ6/XpsfxHGiwjmVURcubCz7DBelBGJJDB1H/aiSVOJiz16rvMV9rsxJTQdQVlfQQY7mG365lSVn\n1ivr6nLDaKNF8KEclqgXd1iffMaS1R+vP+sJKz6wR1P1iGi/AnidfXkDxV9f/oMmOpH1w0MFTJZG\n9aP9ASW102l1Bm8cbL6glXNimXVnDBmaNTYS4sb70DmUdSuWSl1JptTQU+M0m3GZmpDpvWcWV2ON\n6Q6QyvnqzYNJbq12qsY/7LGatfabUNiwXtMruM1L5M0jkHi3HeYuq9GxyXcK+RGNKHDFkoGx5Nv5\nzNpNG0qFfHbSPzg9BkrGz8GVAzRXP1I59WR/ROFfbkuktt4nUIuOx1hi8WVt46hp9Z1lzVlObbVL\nLqp9zoSF0LFF9HE01ImPRLeCF2I6RI2XJTKkmjRcmaNDqFaaCmxIbKmb1U/Qk5NCGSZ6pcI9ZBS9\nOSTzxZ0kKoqKuwkZW1QrTSQqy4kNpoMWfEmzCObB8lIOWOh0GlTRRIuVXyadRVEn7be194hk6PQw\nS0VE0mszqCzkskDdKQveLZ+6mj0zXpT0n6yaPTBfXpH/ABzNk0bi9b/oK+fRJG6v9BWrZX7VK3Rj\n/DcePSRekhWPoZE3RpP0GFJoYqtuwFg2CTSRPUcf9oYPaIazJok3rf69UYsmjE67rz/h1RWNz8dw\neuEl4g9eM0l9Hqpd16v/AMrOQ+KqxenP7ilLBvnjKJunGPxyP10/Wc8kpq5el7yAhzqlba1H6KqA\nDpuuX1kI8zm3Gav1YPf1JNHcp16Hu5ysdDA5/HeJ16NX+ulJI9IZV83XfopQN5zA0n9pG/xafgBH\npV6zSfiQVQHtxys0hdlg2d8mkefwypgqJD08/wB4XWmaVUXYw6fznosrXLHWajOWrl8G3JUav5/8\nVVfRKf8A8t4Sz0rZXtNwboaiocj8NJqY3TVR1TeDUamD+r+7+rw1Hh//AL+4mq7W0loelZs5ZKXi\n+f8Ax4t8wGRSVjPFCyo7pInOCVczb2okdxdGKR4KKljl5xI4Ef7tN4Pn/wDUz6tPCyOq77oTFFSV\n87xI7Jgkm5sa8TOKvWaKdM0gf1KqAePR6OJESN6tEjTrCp1M8FRVKr52zDb1iVU881R/Fk0FzHcq\nbHGN48PZiRujvrVaN9ZuSGuXrS2LcjSdNX9QTRq662BGxkT2chBNts7rg/8AIarAjrRpArah431i\nSdcWFfWbD7RS3KpywxYossX10E1L4pxmWuepj4xykZDVu2TtxmuTWCT17ZJixXz1MnrGbdq/HWHH\nMExVpP0GFJWNjvSfoMWSpbEwpJm9YosvXwoZs9e3rOYVRNkQyOzGLO+JRu2woTz1mKlfJWMxBI+T\nEMjkNF+abXNkTx1hhZjx4js4W8dSPxkrJH9UjzYaIZrTMJKkwtogkRhocM2rqVVdlimuUMleiJHH\ntx7hHPlrYfUkc2DRrFKxEbfkLl2ap0MoGpZ6pJ1wm+jmLPZ4qqtmaZsIY9w23SijZW18a7cZrMlS\nrq7RkEWpaQ0EUDuqtmhrnFmZtlTY6/ad8jC3dovg5wr46PBdpjd+CtFWyZ9vnqJzmt6uWtzij3PP\nzx/9sdN4K0eWiSBU2I9yMTdVmlkOWeJzi+0GWasp1fSVFVnyNFvVTGu0Qgle5/xNUbFkwQs6Cjj2\nMdWT1dZE6OuUfKEFIjKXMsF1GiqPJMV+u8ISTFbV2mkmJIEaVkjXfkfVleW2i0ypX0TN64YrLHZo\nKNqOgpVWON3p02Iye2zPPFmurf144+fhLC5JlEmW5G9OYsdGrZsv0Wtj5N5I/PFjxz65V2W2H9oT\n9ExXmeLnotenWR8uPHuZQtG6dWcEkkOQakeCZWA6MKdDCk1TLvRlnIVM9ngbNmj5x9Y5wPG6Muy3\nT1YZt0TCjtsSOjRph98zaSHDPHzh0GbGFX5Nrm+oWhX18L7ytggBrkaXVY7eGsH4nH6ifoCdMqfZ\nbB8PNhBWRsmzm6c3rCwRyUETeajIZLPTN0Cz2WXZIZPrAV/iSm9T/rIfEMC+v+suYwA9TgfSHW7W\nK7fzb3/A2sp/Avg+f5/m3v3jAAAfHPoAYU9SqnOOEnTaOlVII3j10j7Zm8NunlNo7a3lkw10mxBH\n1p4yn05qaytd5nkd53L4DvtJddfK+1+IbVQV6ouyxxXR65NijM22bPQXJm6Rh+VZw3fFodDq7rl0\njF44zGv0k2RbwHlzvehmmkdmEHCR8SGiaGQgkCeYwp6lSCyCSSbFSrq6nISrrMivnqVONCeRyCSY\nr56wwuOZFia61w/HCm4yQSVgV9tggqcm2iwgmU1KCp2iwpKliebraoHyJp4clMOyozl5HDkaoVsN\nl/CsttqyflGzTnEKnSVJ6Gv1rLsZ6xJDeYKbEtIKaKsVIpFjn1bjNP4vzv4meemWppUddyRMzmul\nFkXLKPWQTdZGdKtMLU71NM3M58mVl9oFcobe3GK+gql3p43/AACmr6bJeUeR/Z8xAdA0opmRX2TR\na/8A9wvazXp0VXA7ZZtKrZZ7aksc/wBKkg9TmTjiQrLPiXVyoImTFl2C5RMX3TCCuR8ZeW9p5455\ndqx22cizvVtVG2Sl1O0GWfaGghxbJi5R8VIY4QwOkBPMw8blfX1KpvMT0j5LsnEO2ZmT22bGohb6\n5iyBS86n2h1RY9O1f9id/qawh4yrrzVX9pGhYUGzTw5eoTbynHnKXOTorV/iJShG7K21BJ9pGlKW\n77JBIBXyTY5ssU+f+VEoKlpYkdk1HszNfZIellidEcjqY0hkyY+qY1Xu7O+cFfGlSr4s0E6dZny5\nNPWJAvKGv4LutrHfp+xLeNEzTUrzm/scgBNSVOtXLCRE83rPPE0iZKSDnRhUm1An8gkaNEmUa/zx\nx+eJqDmwR8cPZ8mWDGq3wwaPfk831xNqelJthIjK2ca5wyb/ALEeN1dcl3AAAHA9SCqng8Hhb64x\nGqeBt5UNrK+VCZI6/Phn/eSJ+4j4unqoY1XPBE8KP8yPPycewBlSFRpLeIKCkmqql9RBSfX1Hgl/\nd/UWc7pErN83+55D+VfworUVD2yibBIOL6+TridcByzhu08n0iujysz8Vj5Olg6krNE6BFbKTfNZ\ngqdvJi2oLlk2yX3LK3TaCpVdnEubbUnP7TXt6xtVpmPIsepW6HbancNgpHNGtszbBsEFYyqYZ1tL\nY5JlUwp6lSpq69vWK96/6xDNYs56wrKusMWB3nbFTFuULr0ieYJ6zaKyrrCGrd1KyeaQZp6MySpy\nEzMLNg2m3SebujKkqR88hKS1Su2RsFBYWXeO5q9GFBDsmbSb+JYSUeK7pm6PWRp50xLs0LL2wWJF\nREZkkfWPq0jw54trbcqZ89Zq0m6EHny6S1RsiKy831fICT2SBsG1eDx8X5SP/Cm149lnbFnqVizd\ntuHP3JYUkyoySLghDV0yusySLmkibZhR2eBc8demsfWPtkVOnCbSF2eopZ4GzTPbj6kza91dM1Ky\nOggaV3XWZ82+2ZOpVYnWPcM863r0fL7aTpu+WycyuUOw7HQ9N5mU0mfagcoejo0KCpZag23PJTVb\nlyDvkYf7SPuxo84U6Ngu0KttGvyahG2mK+re51zcnq4IerMKSz1S7MrwGhNm3K9xIvJqUUlynnfG\nPYTrDJgsi+c2ywghRNlVJq+JMaktvSk2/tDNp0w2TMTaEkQoQ4QyOWGjVHxitpYuscrH2TaeCdFa\n7UrN5ssZLHoO9IrUsy5Ycn5sw46xkVFyjTzesn88ZlfzUy/UIdzax2JE2ytiPrnXakTY9ny48bq2\n6xjalkV2haR/YSBHNG/WQTe058CaQhkHjm6Lb4khYIJDGnMkr7k86ryCxu/tHKxXyTLBK+Wv5R/U\n5D+yj0lSsu1G2aZiXqslRoY44tud9WknmOMGbHmqI2r/AJ4wJwMWSplSXFYJJ0w5yNzNzyUCCk2V\nIZ8lbFVjdJOscyqRNl/5wnpldkZl5vcLBXx+Zx1CebSOOfkCaDZTFUjRPZuPPDEiJksaJT8onsSi\ntt+ilndI+Z6wC3nmxZMtgI6lHz1bxvq9/VlLPZ5KqV9dPJqY/NmVQUC0bPi3IyAevCOH933vCSlX\nPcsUyNsIMqwkcr92XLLYKOe9tka3pnphHQ0VVLM8aPGnnHL8BUfKN4UEtFseGmbWXCvjnjROq/q/\nf4Twneqxp53eRs5pH2zauEnSqe7Vrzyvnt7EfU05pk5dnwDMmoKnFivkcTXYsQmnW3m21huFprDl\nlpr9o2203LZPOsbq7HTaSvVV3jJkvH1jQ5LrshHX5dIxcNsLG5yXjNt4sKCF52xXYE4PdFZXXWzp\nq/tDpNls8qQVU8cFC/F9zXmquhTfewrbZFpaf1/OOV9XRwY5dD2h0SgpnnV2kjSCGRKfCM1+7Wp8\n9mCN06wuwZfyGhVdtVlfErPFWX1DodBQSu2MkGoTMzZNG426MZDA/Ic1gs6uuyWFt0by2sTfYNG0\nRX1aYFzabIqpixZg5+Q0y22HHolv4qxTdNzjoFUSeHYJ5qvyHP56Da3Tc9HrbqIk2duQegtqs+Te\nbLbAZq53kEJiGQmrYVWmWaq2GsQxrbTNFmuevToaznyavzbZjbB8NgwoIalURZGjz6c/+aKQklBn\nLNjPPqenB5jjBNSUbJrtvPWEPE6xZ5mhlj1Mnm5B5KaryRleP+IzjILIfs0nT6mbLJlOeSTYtidm\n0hts9TRZTrHro+U5M4LesklcosrevRf2qdKYV1rmFZaNUbJSwnmzXaIaTZYqXwXueK/cNVuT7Tmw\nZ7JWV8OR1e1id2CNMiwkoHYkjo8Sx1HAEhJImJizuVqrEM5sfBtNqq+lb65queTF7o1sSoxYxfu9\nLVb4pNl6gkFfFqk2+gZVPiyI2/rEMWrr4oOcbDbpwwoc41bKGT8MJEjl5xfxMyzzUNkCvkwx2mj5\nP65DA6OuUbZlhJCrbyxkccKrurGn2YGHJjlj0yORAr6Z35t9R7Qw50lxwaqjz/k5cCbUqzFfV2ps\nodXPV4Rvt7ZmwQyKu/m/tB4Mlz1jZ6x/cgYXiqPLLOfPrM+XMqCmWJMV3DJACGl6f848gQbzk+AF\nRdoc4nVtyQhoLPBAiLGuBk1brlvRpqzKkxxyAr6RMc1+uJX7u1uBImtlm5xEjIOLKm80jpH1jhB6\nW0ku6wROvz7ZoE9+xXFWNC0708Tlts5zV6fx+ue1XWyux3LSfVZs0mxHvnm/hc0/e6zuis/FY9z2\nxRad6ZvVPMkbcjIaTJNkWJnnmMKRx5CGQgAgkJCOQrBG5b0FyZOkUoZkJrIWNqkuuydm4BtAJbph\nXVKulFHuRyIcy4FdA59IrtDFjJ4vjfWVUn+HPfVls8VDTwwQxpBDAmrSMozgnO+bFoNG4kXGNcCS\nO1VKK6rLBqZOMcnImv8A+UNm6JDIas1GjX54alYn5KCebP1/4cxZ6Bn3thMDZsBJIQho1ygtTJEi\nyNm/WE0dAvql0BDg0VklGqqTRwqqj1e64khMJJCYslMUfCFptTWKBHqdt5NyOMq9HuE61V6bNTBA\n/VyDhNuEEOBOUtfpJR00WtnqqSCHrJHKmk4RbLPKkUNxoXmk83mQG2kEhrl908tFDmtTXUiPH5uN\n9eYtBwkWOpXk7lQ/iPqDiDY5IcmyVisuV1paP+11lJS/aPqDjPC/w2Kkr0tleN0j36/uh5/vt7lq\nnd5nkneTzkh3BN6z0o4XbLQLs1PjGbq6DlznOkPyh5WV1oKXUe0q315581xHI5dhAdk0P4Rb1e73\nb6Oe5PSw19Vq+QSlN84TdHtRVVK9WeabFcno6ylqYmwmo3p5EPYdfdabSKw2+5wc9hq54+pqP4sy\n/Kr+jV8SbhklMysTQYl7erUys7Kay74seU9RbbLKQyIpX8cxMWe5HXdGVVuqqYUlSpWVdyy6RXyV\n5Zw5us6upK+SbLdMKPKVjNp4cQp77TUiF7QJtFZQQ7RsFAm0VzXVuz6A3h6ql1WcfGqdNjWGZcnp\nYNT40VEmjfWJVyJ9A4x/zZq3BlszzN0MNWdJnSOdHjmWOeGRNW8cnMTBivr+6vttypqpXamngqkj\n5N9Q+vCOvRpXiXfj3/YmmcJNkpaG3VVVa0gslwtia9J6RNRrv8NVnNuD3hveBUgukevh7XAnL/5s\nv4ZXoPPICr0X0ho7nBraKWOeEt5CHDjCn2VdjUtJZtVS8jFncJH1fKJ/EG4TwrKjpIuaSb5WeJ4l\nTVRrqIc9Zq4wsVlAmqpcpGkStjTbjz15c/WMOS2qvMtGk3Tkw188xNBDqkxZpH9pIBM+0EYRoTxh\nBBHv/hk/RE6f3B590JsKOmVs2ZSvkR0fVQt7Qts1RtrYNcvV+WKoTVxST+0JwcWFJii4ybDkNfNG\n6ukbZv7MgpLlFXMiqsiTdOCQyq+FUTJVw1YRebLle552fJiokdiSRzCnc+iZRI5ijyOY0jlCZ5BA\nzAoEAAJIVgJ7bRvUzwxQrnNUPq0jj88QHoD5Hugy1l2S41K/RaTk4I+uqAPS3yd+DddG7JSpIv8A\n4nV8vVSf4js502SFcd0njTkkVTFnhfLZk/DwCBJBAkSX1o/0Ee0u9qywfQCR29UxZ6xUXJmjAeQT\nMoq/Sqli5yWD9ZzLhY4b6S3U7x0GFVc/9CEs4HTdJdIaOhT6TU0kD9XI/Lmn3nhmsdLtNU5v1cZ4\nv0o0nqbjVTT1csk81QUfGW9Y6Op8OXCQt7rHaDWJDHuaw5fHUurZK0iGFnkwSOc7TW1Xe55eelnn\n+3fXkMdeytkuw5WABZz3KVt5pHII6xjGzEKxmSTCZmMBPQTZjkImeJ3QTSHRuA3T/wAVVj0tS/8A\n4Lc+Tn2/7HUdoObCAesL1Cq7rZpJuSdcalcrUrq+ztmn8F3CdxFEoboslVbOhJ5+jOzeIYK6JJ7d\nUo8Mm5rOXgPLv+L/AMPXo+VD+3Iq+2uu6Uc9HLl5w65ctFaxF2oo5/sH15rNfRum9FOn2iGf7tHE\nGhSWp+kHi022RFYTiZHtziDX46MmjpmyLriY8cKnE+GFSQ4lvSQtkiqublhbbJPPhq4nw6yQ3bRf\nR6OlbORtfU/6EJAss4W2h9qamgSNuek5RzZ6t8VQxaR1iV5JGOTcKPC1BRrNFRNr62Tk/YUZfXX2\n8+yxhfKL0zjSn8XwNG9VPz/sac86xuT3KsepneWZpHmk35JCA9CuvhhsXWj1+qqCVJaSeelePq3O\nzaEcOqsuqu0X+fg7ocCjATrHuSgr6avg1lJPHVQyecgcKCg1DTYvO/GH1nKPr9SeMrFfqqhdHpJ5\n6V/ZudN0X4da6BUjr4kuKdZHyE5TOg0dzgtrxVDya2R06uQwpKCpeflJ34rHyiRx8h9INftPDBZ6\nxU1kk9DN1c6G7UlZBOmshkgnTrI3KM02HVpO+erl1H3NePBDOsSRrLm8fnJPPGTJvBBskFjGoEqV\nn5doHSTq0LCTdILlUrFqWZZN/wA2hPvKjdYBX3KFZYnyXNObNcjpl17pIuG3saxDbI0VvBNExWXK\nFcs5Gwnj851xdBCaskRUZHj1aPTvzmBmzpKsTyM2v9gYvEGlXnY3eTzcfmTNkd8NWy7fNpIJkHlK\nRzGnJpHMWRz2JspJCEeQQoTIAAViMQcSTeAyqCjaeeGNd+Rz3n8mGyLTW2FVXkY0PD+ie1X0Srvy\nT05+i3AxbWprRDrFweQDfeiQyEwkhCCDFkMad8Qq5lRcmORcLnC7BZ6d44eXqpNw1QrQXXCNwkUt\npV11sb1XVnmvTvhprp2dYNXSp7M0PSXTB6qWaWRpHeofWGnz1LOxfxCCa8vWmFdVPlNUz/rNfnrG\nfebMxp3IMyE008jiSORyCSPkV9h4ySQjjJCAjAJBAJwIwkAkjAgJ+iARuBHJvBGAZkhHIIA8jl7o\nfpncLS+VFPJAnTg8xMa+P0QPQGi/D3AyY3OCSB+vpOXgN3tvCRZqzDGugR5PNz8geRRCE61mj2b9\nFl2lahf2n0UTxVSv5qkc8dx1kq7ss6fZuZUd4rE3aquT7OeqKME/yHrnxDR9RSE8FHTQbSrSQfcP\nH/j2u7ZcviqoR7xWNvVVc/2k9UMFn5D1tdtJ7fT87VUiffNWvvC7aqNeReSuqurjTkDzLJMzbzSO\nAwVzsdD034XbjdU1S4W6l6uA55mzbwAXQr4UAcQAJgEABwEACbNixtN7qaN0eCeeB4+rcqBwOu6N\ncM1dEyLWqldD05PPnY9E9MLfdYkamnjz6iTnzyGTUFY8EqPC8kDx7kkbkJ0J6Pa1WmUDk8HNQ/yH\nDOCvhaZnSluz85yaVfezuFtmVotnbMtlfCYqEbLJd8gkzdsW2Ej6szZDCgfadW3+cICHag2cc4es\n6kgq6lWifHbcsJN0qd55l6HQDryTIQFJJepW6MP5f7nzxxL6IPy/3PU3ULmQhKjxq/qoHjV/VQh2\nLcCn8Zv6E/I+eMn9CDsWoFV4yf0IHjJ/QhDsdZ+Tpok170ptlMu5T/S5/Y09Mfo5bXiWLGPwoiR7\nh+YXBTwsV+jFRVT0FLZ6ipq08EbzV0FVK0cHoXi08RvflZ6Sdl0XX/4Ut078cH6EyVkS9Ior1pPF\nTpMzMmEZ4Ln+VNpG+9TaOeH8C699NZ0n4c73c0wn8XRJ6KeOqp//AK5ZDhB6E4VOHhokemoGgeaT\nfn6k8332/T1zu8z5vIahJfZm8P8AX4Ify/3E8by+iH8v9y/eB/pd5mNI+0VnjiX0Qfl/uQvcXb+5\nCvdNayCFb4yf0IHH39VCGgshDA4+/qoJx5/Qn5DsXEYFV4yf0IHjJ/Qg7FlIJmYHH39VBOPP6E/I\ndi4EkK3xk/oQPGT+hB2LInKbxk/oQ++M39CfkOxaSBGVXjJ/QgeMn9CDsWoYFV4yf0IHjJ/Qg7Fk\nGZW+Mn9CCcef0J+Q7FkBW8ef0J+Q/H39VB2M8Qw+Pv6qCcef0J+RDsZ4GBx5/Qn5Bx5/Qn5E+xZA\nVvHn9CfkHHn9CfkOxZAVvHn9CfkHHn9CfkOxZAYHH39VA4+/qoOxngYHH39VA4+/qoOxZAVvH39V\nA4+/qoOxZD5lVx9/VQPGT+hB2LXMQrfGT+hA8ZP6EHYuY3xY7zwG8Iqsvi+vfb/hZ/8A7c82+Mn9\nCE1PepYmRo8EeP8A4Fc/uPeeeyYs8OX1HPMVJw/XmKGKLUWObVphnJDcWnl8H93zvxjwf1j+ULeu\nz6P+4uPeTNms7elJ81XaYxYN3755yf5QV5b+HsHuLj3khTh5u6+F/o9j2/38hcf/AJfSRmno5KAA\nXKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/9k=\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YouTubeVideo(\"MMziC5xktHs\",width=800, height=450)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> _Reading_. We'll be reading the textbook _Network Science_ (NS) by Laszlo Barabasi. You can download the whole \n", "> thing for free [**here**](http://barabasi.com/networksciencebook/). You can also [download all chapters as a single file](https://www.dropbox.com/s/j1jy86lznz6sz1e/book.pdf?dl=0)\n", "> \n", "> * Read chapter 1\\.\n", "> * Read chapter 2\\.\n", "> " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> _Exercises_ \n", "> _Chapter 1_ (Don't forget that you should be answering these in an IPython notebook.) \n", "> \n", "> * List three different real networks and state the nodes and links for each of them.\n", "> * Tell us of the network you are personally most interested in. Address the following questions:\n", "> * What are its nodes and links? \n", "> * How large is it? \n", "> * Can be mapped out? \n", "> * Why do you care about it? \n", "> * In your view what would be the area where network science could have the biggest impact in the next decade? Explain your answer - and base it on the text in the book. \n", "> \n", "> _Chapter 2_\n", "> \n", "> * Section 2.5 states that real networks are sparse. Can you think of a real network where each node has _many_ connections? Is that network still sparse? If yes, can you explain why?\n", "> \n", "> There are more questions on Chapter 2 below.\n", "> " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 2: The awesome `NetworkX` library\n", "\n", "`NetworkX` should already be installed as part of your _Anaconda_ Python distribution. But you don't know how to use it yet. The best way to get familiar is to work through a tutorial. That's what the next exercise is about\n", "\n", "> _Exercises_:\n", "> \n", "> * Go to the `NetworkX` project's [tutorial page](https://networkx.github.io/documentation/stable/tutorial/index.html). The goal of this exercise is to create your own `notebook` that contains the entire tutorial. You're free to add your own (e.g. shorter) comments in place of the ones in the official tutorial - and change the code to make it your own where ever it makes sense. \n", "> * Go to NS Section 2.12: Homework, then\n", "> * Write the solution exercise **2.1** (the 'Königsberg Problem') from NS in your `notebook`. \n", "> * Solve exercise **2.3** ('Graph representation') from NS using `NetworkX` in your `notebook`. (You don't have to solve the last sub-question about *cycles of length 4* ... but I'll be impressed if you do it).\n", "> * Solve exercise **2.5** ('Bipartite Networks') from NS using `NetworkX` in your `notebook`.\n", "> " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> **_Video Lecture_**: Once again, it's time to stop working for a couple of minutes to hear me talk about plotting with `NetworkX`. \n", "> " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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\nAAAD/9k=\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YouTubeVideo(\"iDlb9On_TDQ\",width=800, height=450)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 3: Plotting degree distributions\n", "\n", "As always we'll learn about degree-distribution plotting by creating a `notebook` and trying it out. \n", "> \n", "> _Exercises_:\n", "> \n", "> Begin by importing the right packages. Start by importing `matplotlib.pyplot` (for plotting), `numpy` (for binning and other stuff), \n", "> `random` (for generating random numbers), and `networkx` (for generating networks.)\n", "> \n", "> * Binning real numbers\n", "> * Let's do a gentle start and use the `random` library generate 5000 data points from a Gaussian distribution with $\\mu = 2$ and $\\sigma = 0.125$.\n", "> * Now, let's use `numpy.histogram` to bin those number into 10 bins. What does the `numpy.histogram` function return? Do the two arrays have the same length?\n", "> * Then we use `matplotlib.pyplot.plot` to plot the binned data. You will have to deal with the fact that the counts- and bin-arrays have different lengths. Explain how you deal with this problem and why.\n", "> * Binning integers\n", "> * But binning real numbers into a fixed number of bins is easy when `numpy.histogram` does all the work and finds the right bin boundaries for you. \n", "> Now we'll generate a bunch of integers and set the bin boundaries manually. This time, let's grab data from a Poisson distribution. As it turns out \n", "> `numpy` also has some convenient random number generators. Use `numpy.random.poisson` to generate 5000 numbers drawn from a Poisson distribution \n", "> characterized by $\\lambda = 10$. Find the maximum and minimum value of your 5000 random numbers. \n", "> * Instead of simplify specifying the number of bins for `numpy.histogram`, let's specify the bins we want using a vector. \n", "> Create a vector $v$\n", "> that results in a binning that puts each integer value in its own bin and where the first bin contains the minimum number you found above, \n", "> and the last bin contains the maximum number. \n", "> Use the vector by setting `numpy.histogram`'s `bin` parameter as `bin = ` $v$. \n", "> What is the sum over bin counts? Explain how the binning-vectors first and last element \n", "> relates to the min and max from the Poisson distribution.\n", "> * Now, use a bar chart (`matplotlib.pyplot.bar`) to plot the distribution \n", "> * Binning and plotting degree distributions. \n", "> * Let's generate the Erdös-Renyi (ER) network which has a degree distribution that matches the Poisson distribution above. \n", "> First we have to figure out which values the ER parameters (_N_ and _p_) should assume. It's easy to see that $N = 5000$, but how do you find $p$? \n", "> **Hint**: The parameter $\\lambda$ in the Poisson distribution corresponds to the average degree, so you have to find a $p$ that results in an average \n", "> degree, $k = 10$. And you know that $\\langle k \\rangle = p (N-1)$, which will give you $p$. Note that Python by default returns the result of divisions as the most precise of the datatypes involved (for instance, try computing `1/2` and `1.0/2.0` in your notebook). If you want division to always give you a decimal number, you can enter `from __future__ import division` at the beginning of your notebook.\n", "> * Now, use `networkx` to create the graph and extract the degree distribution.\n", "> * Finally, create a nice bar plot of the degree distribution, including axes labels and a plot title. Make sure that it looks like the Poisson distribution you plotted above.\n", "> " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 4: Random networks\n", "\n", "> **_Video Lecture_**. Now it's time to relax and watch a few minutes of info on _Random Networks_. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz\nODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2Nj\nY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIAWgB4AMBIgACEQED\nEQH/xAAbAAEAAgMBAQAAAAAAAAAAAAAAAQIDBAUGB//EAEgQAAIBAgMEBQgHBQYFBQAAAAABAgMR\nBBIhBTFBURMiMmFxBhZTgZGS0dIUM0JScqGxFyNUc8E0YmOCovAVQ0Th8QckNcLD/8QAGAEBAQEB\nAQAAAAAAAAAAAAAAAAECAwT/xAAeEQEBAQEAAwEBAQEAAAAAAAAAARECEjFBIVEDIv/aAAwDAQAC\nEQMRAD8A+fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAA9BtLyP2js2EZVauGnmvZU5Sb08UjYp+Qe1KtKFSNfBpTipK85cf8AKTR5\ncHqvMHat7fSMH78vlLS/9PdrR34nBe/P5SjyYPUPyD2ov+owfvy+ULyD2o/+owfvy+UDy4O7X8lM\ndQxLoTq4dzVtVKVtfUbcfITakopqvg9f78vlJsHlweo8w9qenwfvy+UeYe1PT4P35fKNg8uD0lTy\nJ2lTkouvhLvlOXylo+Q+05RUlXwlmr9uXyjR5kHpvMbafp8J78vlHmPtP0+E9+XyjYPMg9L5kbT9\nPhPfl8o8yNpenwnvy+UbB5oHpfMnaXp8J78vlI8ydpenwnvy+UbB5sHpPMraXp8J78vlHmVtL0+E\n9+XyjYPNg9F5mbRu102F0/vS+US8jdoxt++wurt25fKNg86D0PmdtK13Uwy7s7+BHmftB7quGdnZ\npTfwGwefB6FeR20Gr9NhV/ml8pV+SO0Ve9TDJLjnfwGwxwAd9+SG0Uk8+H95/AeaG0ONXDLW3al8\nBsXHAB6DzP2h6bC+9L5R5n7Q9Nhfel8o2GPPg9B5obQ9Nhvel8pHmhtD02G96XyjyhjgA7/mjj/T\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAP/2Q==\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YouTubeVideo(\"c_SbQCzgqb0\",width=800, height=450)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> _Reading_. Read section 3.1-3.7 (the most important part is 3.1-3.4) of Chapter 3 of _Network Science_. You can find the entire book [**here**](http://barabasi.com/networksciencebook/).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> _Exercises_ (should be completed in a `notebook`):\n", "> \n", "> * Work through NS exercise 3.1 ('Erdős-Rényi Networks'). The exercise can be found in Section 3.11: Homework.\n", "> * Paths. Plot a random network with 200 nodes and an average degree of 1.5\\. (I suggest using `networkx.draw` and reading [the documentation](https://networkx.github.io/documentation/networkx-1.10/reference/drawing.html) carefully to get an overview of all the options and what they look like. For example, you may want to shrink the node size).\n", "> * Extract the Giant Connected Component, GCC. (Hint. You can use `networkx.connected_component_subgraphs`)\n", "> * Choose a node at random from the GCC. (Hint: You may want to try `random.choice`.)\n", "> * Find all nodes that are precisely 2 steps away from that node. (Hint. I suggest `networkx.single_source_shortest_path_length`)\n", "> * Plot the GCC with the following choice of colors. Starting node _black_ (`\"#000000\"`). The nodes 2 steps away _red_ (`\"#ff0000\"`). All other nodes _blue_ (`\"#A0CBE2\"`). Again, I suggest using `networkx.draw()` and reading [the documentation](https://networkx.github.io/documentation/networkx-1.10/reference/drawing.html) carefully find out how to color individual nodes.\n", "> \n", "\n", "![Sune's Network](https://raw.githubusercontent.com/suneman/socialgraphs2017/master/files/edge_colormap.png)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 }