{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [], "authorship_tag": "ABX9TyOcO4f1zy00Y3awqU5XlEKT", "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "source": [ "## Introduction\n", "\n", "This document is a short tutorial on how to use [Python](https://www.python.org/) to generate, plot, and work with undirected graphs. A second tutorial on directed graphs will be given out later. \n", "\n", "This tutorial is *not* a complete Python tutorial; and you don't need to be a Python programmer to use Python to work with graphs. If you're not interested in learning Python, just treat this tutorial as a cookbook for when you want to work with a graph. \n", "\n", "All of the basic commands in this tutorial are collected in [a cheat sheet which you can view here](https://gist.github.com/RobertTalbert/41f1ade61b7fa49f9f624ae7c91babb8). \n", "\n", "\n", "## Jupyter notebooks and Google Colab\n", "\n", "The simplest way to run Python code for working with graphs is to use a **Jupyter notebook** running on **Google Colab**. \n", "\n", "- [Jupyter](https://jupyter.org/) is an interactive document platform that allows you to put together a document with formatted text and executable code side-by-side. This tutorial is being written using a Jupyter notebook. \n", "- [Google Colab](https://colab.research.google.com/) is a project from Google for creating, hosting, and sharing Jupyter notebooks. It allows you to create Jupyter notebooks and store them in your Google Drive account, so you can share them just like Google Docs. \n", "\n", "By using Jupyter notebooks in Colab, you'll be able to work with code for graphs without having to install anything; and it will be easy to share your work. \n", "\n", "You do not need to know all the ins and outs of these platforms. But one thing you *do* need to know about Jupyter notebooks is that they are made up of **cells** which are containers for information; and there are two kinds of cells, *code cells* and *text cells*. Code cells hold code, and you can run the code by putting your cursor inside the cell and hitting `Shift + Enter` or clicking the play button next to the cell:\n" ], "metadata": { "id": "ZeG-aksKXifB" } }, { "cell_type": "code", "source": [ "for i in range(10): \n", " print(i**2)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "KUfcrphTzjuR", "outputId": "4b6f0f52-1f12-44a6-b93f-0b0c83ec05c9" }, "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0\n", "1\n", "4\n", "9\n", "16\n", "25\n", "36\n", "49\n", "64\n", "81\n" ] } ] }, { "cell_type": "markdown", "source": [ "If there is any output from the code, it appears below the cell. \n", "\n", "Another thing to know is that in Jupyter notebooks, code cells operate independently from each other and are *not* executed from top to bottom in order. This can cause some problems if you aren't careful -- for example if you define a variable in one cell, then change it in another cell, if you go back to the earlier cell the variable will have the new value. " ], "metadata": { "id": "uFDDYp4Gznx4" } }, { "cell_type": "markdown", "source": [ "\n", "\n", "## `networkX` and `matplotlib`\n", "\n", "Like a lot of languages, Python comes with some functions ready to use in the \"core\" installation, and additional features are added by installing **packages**. We'll be using two packages to work with graphs: \n", "\n", "- `networkX` provides a huge set of specialized functions for generating and working with graphs. [Here is the complete documentation for `networkx`](https://networkx.org/documentation/stable/reference/index.html). \n", "- `matplotlib` is a general-purpose package for creating graphics and visualizations. \n", "\n", "\n", "Importantly, `networkX` is *not* designed to *visualize* graphs -- it only works with them as data structures. If you want to visualize your graphs, then you need `matplotlib` as well. \n", "\n", "To install, or **import**, these packages, put the following commands in a code cell and hit Shift+Enter or hit the play button to run them. (There won't be any output; but once the execution is complete there will be a green checkmark next to the cell.) " ], "metadata": { "id": "NpkIFdF6ziFK" } }, { "cell_type": "code", "source": [ "import networkx as nx\n", "import matplotlib.pyplot as plt" ], "metadata": { "id": "EVr7SpRWatf6" }, "execution_count": 2, "outputs": [] }, { "cell_type": "markdown", "source": [ "The `as` at the end defines an abbreviation for the package. Your notebook will now recognize `nx` as `networkx`and `plt` as `matplotlib.pyplot` which saves a lot of keystrokes. \n", "\n", "**Please note: None of the code below will work unless you have imported these packages.** \n", "\n", "## Creating a graph\n", "\n", "There are several methods for creating graphs in `networkx`. Here are some of the ones we will use: \n", "\n", "### Start with an empty graph and add edges\n", "\n", "To create an empty graph called $G$: " ], "metadata": { "id": "oofgTID5bCcw" } }, { "cell_type": "code", "source": [ "G = nx.Graph()" ], "metadata": { "id": "7VHVGFrecPQR" }, "execution_count": 3, "outputs": [] }, { "cell_type": "markdown", "source": [ "On the right, what's happening is that we are calling the function `Graph()` from the package `nx` (which remember is short for `networkx`. Technically what's happening is we're creating an \"instance\" of the \"class\" called Graph (this is object-oriented programming terminology). \n", "\n", "This graph has no vertices and no edges. We can add an edge, like this: \n" ], "metadata": { "id": "ixfvw6mvcbmo" } }, { "cell_type": "code", "source": [ "G.add_edge(1,2)" ], "metadata": { "id": "YRmySh-Oc4X-" }, "execution_count": 4, "outputs": [] }, { "cell_type": "markdown", "source": [ "This calls another function, `add_edge`, whose parameters are the names of the vertices that the edge connects. Once you add an edge by specifying the vertices that it connects, the vertices themselves are added to the graph too. \n", "\n", "We can add a bunch of edges all at once by putting them in a **list** and then passing the list using the `.add_edges_from()` function: " ], "metadata": { "id": "SzErFE97c8iJ" } }, { "cell_type": "code", "source": [ "G.add_edges_from([(1,3), (2,4), (2,3)])" ], "metadata": { "id": "amLCEez3dQx2" }, "execution_count": 5, "outputs": [] }, { "cell_type": "markdown", "source": [ "Note that\n", "- A [list](https://www.w3schools.com/python/python_lists.asp) in Python uses square brackets `[ ]` as the delimiters. \n", "- Inside the list being passed, each edge is represented as a pair, for example `(2,4)` is the edge connecting `2` and `4`. \n", "\n", "What are the edges we've added so far? We can call yet another method to find out:" ], "metadata": { "id": "HWmPNvB6dXoi" } }, { "cell_type": "code", "source": [ "G.edges()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6lZCMlnUdwu1", "outputId": "24c8d856-d6b8-4014-c051-efadb18547e8" }, "execution_count": 6, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "EdgeView([(1, 2), (1, 3), (2, 4), (2, 3)])" ] }, "metadata": {}, "execution_count": 6 } ] }, { "cell_type": "markdown", "source": [ "This seems a little strange because what is `EdgeView`? It's technically something called an \"[iterable](https://www.analyticsvidhya.com/blog/2021/07/everything-you-should-know-about-iterables-and-iterators-in-python-as-a-data-scientist/)\" in Python, which is a data structure that we can loop over. If you just want to print off the edges, then loop over that list using a `for` loop. In Python this looks like: " ], "metadata": { "id": "2TiTP1btd6q-" } }, { "cell_type": "code", "source": [ "for e in G.edges(): \n", " print(e)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "GiYah6FseIsZ", "outputId": "3c773000-343e-4a3d-a32b-5921c4a6ce4e" }, "execution_count": 7, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(1, 2)\n", "(1, 3)\n", "(2, 4)\n", "(2, 3)\n" ] } ] }, { "cell_type": "markdown", "source": [ "Note: Indentation matters in Python code. If the `print(e)` statement had been all the way to the left, it would throw an error. \n", "\n", "We can do the same with vertices, which are called \"nodes\" in `networkx`: " ], "metadata": { "id": "X7PydWLneTX3" } }, { "cell_type": "code", "source": [ "for v in G.nodes(): \n", " print(v)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "S5_AhsDxeT5E", "outputId": "80749b49-3624-4f7a-dfa4-b18a19868f8f" }, "execution_count": 8, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1\n", "2\n", "3\n", "4\n" ] } ] }, { "cell_type": "markdown", "source": [ "#### Side note: Tab completion \n", "\n", "In Jupyter notebooks, whenever you are in a code cell you can position the cursor on a line of code, and a list of possible ways to complete the line will pop up. Then you can scroll down to one, or keep typing to narrow the search, and hit `TAB` to complete the line. This is extremely helpful if you want to explore the methods that are available for a graph. For example, in a code cell, enter `G.` and observe the pop-up:\n", "\n", "![2022-09-14_10-53-25.png](data:image/png;base64,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)\n", "\n", "So, for example, note there's an `.add_node()` function if you want just to add a vertex to a graph without adding an edge. \n", "\n", "### Create a graph from an edge list \n", "\n", "Instead of creating an empty graph and then adding edges, we can write up an edge list and then have `networkx` build the graph from the list all in one go, by passing the edge list as a parameter to the Graph constructor. Here is a graph of a small social network with four people (Alice, Bob, Chuck, Darla) and an edge between people who are friends with each other: " ], "metadata": { "id": "Syjl9mAhennl" } }, { "cell_type": "code", "source": [ "friend_list = [(\"Alice\", \"Bob\"), (\"Alice\", \"Darla\"), (\"Chuck\", \"Bob\"), (\"Bob\", \"Darla\")]\n", "F = nx.Graph(friend_list)" ], "metadata": { "id": "9BH94moigM4N" }, "execution_count": 9, "outputs": [] }, { "cell_type": "code", "source": [ "# Checking the nodes\n", "# Also: Note that Python comments begin with #\n", "\n", "for person in F.nodes():\n", " print(person)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0RzF-lwShEWs", "outputId": "809cea7a-edfd-4180-dd97-3b2214841703" }, "execution_count": 10, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Alice\n", "Bob\n", "Darla\n", "Chuck\n" ] } ] }, { "cell_type": "markdown", "source": [ "### Create a graph from a dictionary\n", "\n", "In Python, a [dictionary](https://www.w3schools.com/python/python_dictionaries.asp) is a built-in structure that maps *keys* onto *values*. (These are also called [hash tables](https://www.tutorialspoint.com/data_structures_algorithms/hash_data_structure.htm).) Dictionaries have curly braces `{ }` on the outside; then on the inside, *keys* are associated with *values* by writing the key, then a colon `:`, then either a value or a list of values. \n", "\n", "For example in the social network above, Alice is friends with Bob and Darla; Bob is friends with Alice, Chuck, and Darla; Chuck is only friends with Bob; and Darla is friends with Alice and Bob. As a dictionary this would be represented as: \n", "\n", "```\n", "{\"Alice\":[\"Bob\", \"Darla\"], \"Bob\":[\"Alice\", \"Chuck\", \"Darla\"], \"Chuck\":[\"Bob\"], \"Darla\":[\"Alice\", \"Bob\"] }\n", "```\n", "\n", "We can create a graph from a dictionary just like we can from an edge list -- by passing the dictionary as a parameter to the Graph constructor: \n" ], "metadata": { "id": "dw3ixGF_hdqp" } }, { "cell_type": "code", "source": [ "friends_dict = {\"Alice\":[\"Bob\", \"Darla\"], \"Bob\":[\"Alice\", \"Chuck\", \"Darla\"], \n", " \"Chuck\":[\"Bob\"], \"Darla\":[\"Alice\", \"Bob\"] }\n", "\n", "F_2 = nx.Graph(friends_dict)\n", "\n", "# Notice the edges are the same: \n", "for e in F_2.edges(): \n", " print(e)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "A--FYTWHikvf", "outputId": "5ff4f20b-7afb-4d25-e28a-9a0231bd77da" }, "execution_count": 11, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "('Alice', 'Bob')\n", "('Alice', 'Darla')\n", "('Bob', 'Chuck')\n", "('Bob', 'Darla')\n" ] } ] }, { "cell_type": "markdown", "source": [ "Note that we don't have to list all the connections in both directions. For example, this dictionary gives the same graph as the one above: " ], "metadata": { "id": "cyv4BGWWi5FW" } }, { "cell_type": "code", "source": [ "# Once we know X is a friend of Y, we don't have to specify \n", "# that Y is a friend of X: \n", "\n", "friends_dict_shorter = {\"Alice\":[\"Bob\", \"Darla\"], \n", " \"Bob\":[\"Chuck\", \"Darla\"], \n", " \"Chuck\":[], \n", " \"Darla\":[] }\n", "\n", "F_3 = nx.Graph(friends_dict_shorter)\n", "for e in F_3.edges(): \n", " print(e)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "SQLsUwJPjIYe", "outputId": "490f7894-8e78-4c3f-e180-0bc61e07765f" }, "execution_count": 12, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "('Alice', 'Bob')\n", "('Alice', 'Darla')\n", "('Bob', 'Chuck')\n", "('Bob', 'Darla')\n" ] } ] }, { "cell_type": "markdown", "source": [ "## Visualizing graphs\n", "\n", "As mentioned above, `networkx` doesn't visualize graphs -- it only treats them like data structures. We use `matplotlib` to visualize. \n", "\n", "First, make sure that `matplotlib` is imported (which we did above). Once it is, then the basic command for visualizing a graph is `nx.draw()`. For example: " ], "metadata": { "id": "N4Izniqxj3Gf" } }, { "cell_type": "code", "source": [ "friend_list = [(\"Alice\", \"Bob\"), (\"Alice\", \"Darla\"), (\"Chuck\", \"Bob\"), \n", " (\"Bob\", \"Darla\")]\n", "F = nx.Graph(friend_list)\n", "\n", "nx.draw(F)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "VHGsAqe7kSmd", "outputId": "ed502083-2614-46d5-cd4e-663ab031f7c8" }, "execution_count": 13, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "Like we said: Basic. It might be helpful to show the labels on the vertices to know who's who: " ], "metadata": { "id": "QKK5yz0GkeZg" } }, { "cell_type": "code", "source": [ "nx.draw(F, with_labels = True)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "ssn1tZp1koud", "outputId": "6f36fae6-9fee-43b0-cb2f-efb97f8a5380" }, "execution_count": 14, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "It's a little hard to read these because of the vertex color, so let's change that: " ], "metadata": { "id": "JUHrQM2jlAAs" } }, { "cell_type": "code", "source": [ "nx.draw(F, with_labels = True, node_color = \"yellow\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "FNtI7JTTlFKY", "outputId": "8b6071e9-30f0-42e0-cd14-f983e6916309" }, "execution_count": 15, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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bpyNJk1O4unpyfjx40lJSXHaqU/FJyLiZubMmUNERARVqlQB4M9/rsGcObfe5vhx+7Tn6fnb144ehaefBj+/Bfj5+VG5cmVsNhsnTpwohfS37yYfQUREXFVmZiaLFi0iLy+PGjVqAJCdfZZz52D37oK3q1MHjh2D3Nzfll+dOjBhAvTr1xeYW3rhS4gmPhERN7J06VI8PDzYt28fKSkppKSksH//WDp2tDD3Fp3Vti3UrAnPPw+XLkFWFmzZYn/tiSdgyhQLX31VFYCMjAwWL17sgE9TPCo+ERE3MmfOHGJjY6lbty41atS4+t+TjBjhyX/+Y5/obsbDA1asgEOHoG5d+9WeCxfaX4uOhuee86RPnzVUrFiRe+65hzVr1tx8R05Ad24RERGgJ7CUW9+mrCAWIBr4tEQTlRYVn4iIYL8xdWfsd2IpKh8gHmhdkoFKjQ51iogI9qcs/AN7iRXFtXt1mqP0QFd1iojIz67daFpPZxAREbeyHfu9N1djL7jMG1679jy+btifx2eeSe8aFZ+IiBTgFPAhkAqcBfyBICAGqGpYqtul4hMREbeii1tERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMStqPhERMSt/D/6ixJmL0RREgAAAABJRU5ErkJggg==\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "The \"yellow\" can be changed to other colors of course. \n", "\n", "Notice that the layout of the graph changed. Using `nx.draw()` visualizes the graph in a random layout that changes each time you run the code. To set this into a fixed layout, pass a parameter called `pos` (for \"position\") to nx.draw() and set it equal to a layout style. There are several of these styles; the most common one is to arrange the nodes in a circle:" ], "metadata": { "id": "Jp_XDtt_lfSM" } }, { "cell_type": "code", "source": [ "nx.draw(F, with_labels = True, node_color = \"yellow\", \n", " pos = nx.circular_layout(F))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "I--cXOmplomp", "outputId": "b8207319-1a7c-4220-9204-dc3405364e2e" }, "execution_count": 16, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "A shortcut for drawing a graph in this circular layout is to use the function `nx.draw_circular()`. It accepts the same parameters as `nx.draw()`: " ], "metadata": { "id": "4aEX-lD81N3n" } }, { "cell_type": "code", "source": [ "nx.draw_circular(F, with_labels = True, node_color = \"red\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "2k9_XYm91XH4", "outputId": "decba397-7e2b-439c-b762-ee24507cc311" }, "execution_count": 17, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "This is usually just about as much formatting as we typically want to use in this course. But to learn more, consult the documentation. \n", "\n", "## Creating random graphs\n", "\n", "We'll often create a random graph for use in activities. These are also helpful for generating practice exercises for yourself, and for testing out conjectures. \n", "\n", "There are a couple of ways to do this in `networkx`. \n", "\n", "First, we can specify **the number of vertices** in the graph and then give **a probability** that two vertices will be connected with an edge. This uses a special constructor, `.gnp_random_graph()`: " ], "metadata": { "id": "RUNNs4F8l2h_" } }, { "cell_type": "code", "source": [ "# A random graph with 12 vertices and a 50% chance of connection\n", "random1 = nx.gnp_random_graph(12, 0.5)\n", "nx.draw_circular(random1, with_labels = True, node_color = \"yellow\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "JDavmDMrmzSn", "outputId": "c4c88ac4-e257-42e2-de56-3f4b1d1ca167" }, "execution_count": 18, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "# A random graph with 12 vertices and a 20% chance of connection\n", "random1 = nx.gnp_random_graph(12, 0.2)\n", "nx.draw_circular(random1, with_labels = True, node_color = \"yellow\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "3zZ-3ezFnE8e", "outputId": "46e99a78-ed0e-43d5-f737-6a6512615bf9" }, "execution_count": 19, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "Second, we can specify the **number of vertices** and the **number of edges** we want in the graph, and tell `networkx` to randomly select a graph with that number of vertices and edges. This uses `.gnm_random_graph()`. " ], "metadata": { "id": "XrqrtpWYnNJd" } }, { "cell_type": "code", "source": [ "# A randomly selected graph with 12 vertices and 15 edges\n", "random2 = nx.gnm_random_graph(12,15)\n", "nx.draw_circular(random2, with_labels = True, node_color = \"lime\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "yxZwxXVFnbp4", "outputId": "4c9095fe-cbc3-46bf-9461-1e37f686d10a" }, "execution_count": 20, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## Getting information from a graph\n", "\n", "We'll use this graph as a running example below: \n" ], "metadata": { "id": "3uatQ1q2jmmJ" } }, { "cell_type": "code", "source": [ "example = nx.gnp_random_graph(8, 0.5)\n", "nx.draw_circular(example, with_labels = True, node_color = \"lime\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "q2FTW1NBqaDQ", "outputId": "b103e1ad-276a-41f5-8d9e-4e98ac456ee2" }, "execution_count": 21, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Converting a graph to different formats\n", "\n", "We can get an edge list from an existing graph: \n" ], "metadata": { "id": "NeevUXX4qjcz" } }, { "cell_type": "code", "source": [ "list(example.edges())" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "FKrt7H-PqqEP", "outputId": "14dc4a95-a406-428d-fb00-62a25b6e32ad" }, "execution_count": 22, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[(0, 1),\n", " (0, 5),\n", " (1, 2),\n", " (1, 4),\n", " (1, 5),\n", " (1, 6),\n", " (1, 7),\n", " (2, 4),\n", " (2, 5),\n", " (3, 4),\n", " (3, 5),\n", " (5, 6)]" ] }, "metadata": {}, "execution_count": 22 } ] }, { "cell_type": "markdown", "source": [ "We can also do this using `to_edgelist`: " ], "metadata": { "id": "1llggnfprLKb" } }, { "cell_type": "code", "source": [ "nx.to_edgelist(example)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Am-90UT6rP6z", "outputId": "3619ae8b-344a-4290-ecec-dd9206c9ff9f" }, "execution_count": 23, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "EdgeDataView([(0, 1, {}), (0, 5, {}), (1, 2, {}), (1, 4, {}), (1, 5, {}), (1, 6, {}), (1, 7, {}), (2, 4, {}), (2, 5, {}), (3, 4, {}), (3, 5, {}), (5, 6, {})])" ] }, "metadata": {}, "execution_count": 23 } ] }, { "cell_type": "markdown", "source": [ "The output is a little different. If the graph were *weighted* (a concept we'll discuss later) then the weights on each edge would appear in the curly braces. \n", "\n", "We can similarly convert into a dictionary using `to_dict_of_lists()`: " ], "metadata": { "id": "yG8bZtp1q0Mn" } }, { "cell_type": "code", "source": [ "nx.to_dict_of_lists(example)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "HRVKvPOGq3Xt", "outputId": "6eaf39bb-62e9-4638-9ff3-b03b7a191aa6" }, "execution_count": 24, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "{0: [1, 5],\n", " 1: [0, 2, 4, 5, 6, 7],\n", " 2: [1, 4, 5],\n", " 3: [4, 5],\n", " 4: [1, 2, 3],\n", " 5: [0, 1, 2, 3, 6],\n", " 6: [1, 5],\n", " 7: [1]}" ] }, "metadata": {}, "execution_count": 24 } ] }, { "cell_type": "markdown", "source": [ "### Getting information about a graph and its parts\n", "\n", "To find the number of vertices or the number of edges in a graph, the functions are simple: " ], "metadata": { "id": "7P4tQ93Kr94A" } }, { "cell_type": "code", "source": [ "example.number_of_nodes() # Remember \"node\" and \"vertex\" are the same" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "I0O9H1e9ftXX", "outputId": "5bd2b639-e98c-434d-cdf4-25076a1c1724" }, "execution_count": 25, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "8" ] }, "metadata": {}, "execution_count": 25 } ] }, { "cell_type": "code", "source": [ "example.number_of_edges()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "MFnROwYqiV6A", "outputId": "6cf96109-cdcc-4681-da83-686e736f2261" }, "execution_count": 26, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "12" ] }, "metadata": {}, "execution_count": 26 } ] }, { "cell_type": "markdown", "source": [ "If you want to find the degree of a vertex in a graph (the number of edges that are incident with that vertex), it's a little more complicated. The `.degree()` function doesn't return a vertex's degree, but rather a *dictionary* of *each* vertex, and its degree: " ], "metadata": { "id": "csc8hrI5idbv" } }, { "cell_type": "code", "source": [ "nx.degree(example)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uIgHJyIgirJm", "outputId": "0668918a-3327-47ee-de21-bcbf52ef8ab5" }, "execution_count": 27, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "DegreeView({0: 2, 1: 6, 2: 3, 3: 2, 4: 3, 5: 5, 6: 2, 7: 1})" ] }, "metadata": {}, "execution_count": 27 } ] }, { "cell_type": "markdown", "source": [ "If you really only want the degree of a single vertex, assign this dictionary to a variable name and then use square brackets to reference the vertex you want: " ], "metadata": { "id": "ZZ0OFDbuivQC" } }, { "cell_type": "code", "source": [ "d = nx.degree(example) # Create the dictionary\n", "d[6] # Return the information for the entry of \"6\"" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "RW1SFUoVi4ZS", "outputId": "5e3cdcad-3869-498d-c69f-bc982f2eab10" }, "execution_count": 28, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "2" ] }, "metadata": {}, "execution_count": 28 } ] }, { "cell_type": "markdown", "source": [ "Similarly, if you want to find the *neighbors* of a vertex (all the vertices that share an edge with that vertex), first use `.neighbors()` to create an iterable of all the neighbors, then loop through it: " ], "metadata": { "id": "ex0CZxfpjCbm" } }, { "cell_type": "code", "source": [ "neighbors_of_six = example.neighbors(6)\n", "for n in neighbors_of_six: print(n)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "OCnyqInSjO-a", "outputId": "a0efb381-088d-403c-b742-0010cf772dbf" }, "execution_count": 29, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1\n", "5\n" ] } ] }, { "cell_type": "markdown", "source": [ "## Creating special graphs\n", "\n", "To generate $K_n$, the complete graph on $n$ vertices, use `nx.complete_graph()`: " ], "metadata": { "id": "F0ooL68Ijiq3" } }, { "cell_type": "code", "source": [ "K7 = nx.complete_graph(7)\n", "nx.draw_circular(K7, node_color = \"blue\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "hSwHdPVWjo4o", "outputId": "7cb460ac-03da-4fcb-fa58-78938ce3bd0e" }, "execution_count": 30, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "The complete bipartite graph $K_{m,n}$ uses `nx.complete_bipartite_graph()`: " ], "metadata": { "id": "pXRy-TkOkXiT" } }, { "cell_type": "code", "source": [ "k35 = nx.complete_bipartite_graph(3,5)\n", "nx.draw_circular(k35)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "rgsjMm1skOHD", "outputId": "026f2f8c-f83e-442a-ffdb-b97fee3347c6" }, "execution_count": 31, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "The cycle graph $C_n$ is built using `nx.cycle_graph()`: " ], "metadata": { "id": "b933v2a9kfUp" } }, { "cell_type": "code", "source": [ "c6 = nx.cycle_graph(6)\n", "nx.draw_circular(c6, node_color = \"cyan\", with_labels = True)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "qLtvlNtUknBA", "outputId": "dc265a6e-c104-47ee-855b-b7106f566237" }, "execution_count": 32, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "And there's a similar function for $P_n$, the path graph on $n$ vertices: " ], "metadata": { "id": "nmeRzcexk1sN" } }, { "cell_type": "code", "source": [ "p8 = nx.path_graph(8)\n", "nx.draw(p8, with_labels = True)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 319 }, "id": "U1S3oUAak5aw", "outputId": "510a880f-7aca-4092-e1dc-ed689b561c0b" }, "execution_count": 33, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "There are lots more specialty graphs available for construction. [See here for a full list.](https://networkx.org/documentation/stable/reference/generators.html) Try making some of them and see what they look like!\n", "\n", "## Briefly putting this all together\n", "\n", "With all this functionality, we can do some sophisticated investigations of basic graphs using Python. \n", "\n", "For example, consider the complete bipartite graph $K_{m,n}$. **How many edges are in $K_{m,n}$ for any given values of $m$ and $n$?** Well, let's write some code to investigate. The code below prints off an unformatted table with different values of $m$ from 1 to 10 in the first column, values of $n$ from 1 to 10 in the second, and then the number of edges in $K_{m,n}$ in the third column -- all computed using `networkx`." ], "metadata": { "id": "EUUou0dulD68" } }, { "cell_type": "code", "source": [ "for m in range(1,11):\n", " for n in range(1,11):\n", " k = nx.complete_bipartite_graph(m,n)\n", " print(m, n, k.number_of_edges())" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Lh38OPdzl-fB", "outputId": "6856fd1b-8dc6-4f94-e8af-f2b3c0a44d5d" }, "execution_count": 34, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1 1 1\n", "1 2 2\n", "1 3 3\n", "1 4 4\n", "1 5 5\n", "1 6 6\n", "1 7 7\n", "1 8 8\n", "1 9 9\n", "1 10 10\n", "2 1 2\n", "2 2 4\n", "2 3 6\n", "2 4 8\n", "2 5 10\n", "2 6 12\n", "2 7 14\n", "2 8 16\n", "2 9 18\n", "2 10 20\n", "3 1 3\n", "3 2 6\n", "3 3 9\n", "3 4 12\n", "3 5 15\n", "3 6 18\n", "3 7 21\n", "3 8 24\n", "3 9 27\n", "3 10 30\n", "4 1 4\n", "4 2 8\n", "4 3 12\n", "4 4 16\n", "4 5 20\n", "4 6 24\n", "4 7 28\n", "4 8 32\n", "4 9 36\n", "4 10 40\n", "5 1 5\n", "5 2 10\n", "5 3 15\n", "5 4 20\n", "5 5 25\n", "5 6 30\n", "5 7 35\n", "5 8 40\n", "5 9 45\n", "5 10 50\n", "6 1 6\n", "6 2 12\n", "6 3 18\n", "6 4 24\n", "6 5 30\n", "6 6 36\n", "6 7 42\n", "6 8 48\n", "6 9 54\n", "6 10 60\n", "7 1 7\n", "7 2 14\n", "7 3 21\n", "7 4 28\n", "7 5 35\n", "7 6 42\n", "7 7 49\n", "7 8 56\n", "7 9 63\n", "7 10 70\n", "8 1 8\n", "8 2 16\n", "8 3 24\n", "8 4 32\n", "8 5 40\n", "8 6 48\n", "8 7 56\n", "8 8 64\n", "8 9 72\n", "8 10 80\n", "9 1 9\n", "9 2 18\n", "9 3 27\n", "9 4 36\n", "9 5 45\n", "9 6 54\n", "9 7 63\n", "9 8 72\n", "9 9 81\n", "9 10 90\n", "10 1 10\n", "10 2 20\n", "10 3 30\n", "10 4 40\n", "10 5 50\n", "10 6 60\n", "10 7 70\n", "10 8 80\n", "10 9 90\n", "10 10 100\n" ] } ] }, { "cell_type": "markdown", "source": [ "(Note: `range(a,b)` in Python produces a list of integers starting at `a` and ending at `b-1`.) \n", "\n", "Take a look at these 100 data points we just generated. Based on the data, what's a conjecture you might make about how many edges are in $K_{m,n}$? How might you go about proving that conjecture?\n", "\n", "This is a general pattern of use we will see from these tools: **We use the computer to generate data about graphs, then we make a conjecture about what we're seeing, then we try to prove our conjecture.** " ], "metadata": { "id": "POTgRFExnFLX" } } ] }