You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sitc/sna/1_First_Steps.ipynb

1302 lines
164 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "skip"
},
"tags": []
},
"source": [
"![](images/EscUpmPolit_p.gif \"UPM\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"# Course Notes for Learning Intelligent Systems"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"Department of Telematic Engineering Systems, Universidad Politécnica de Madrid, © Carlos A. Iglesias"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## [Introduction to Network Analysis](0_Intro_Network_Analysis.ipynb)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"# Table of Contents\n",
"\n",
"* [Installation](#Installation)\n",
"* [First steps](#First-steps)\n",
"* [Reading Data from a File](#Reading-Data-from-a-File)"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"# Installation\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"For installing **networkx** we can use **conda** or **pip**: _'conda install networkx'_. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"It could be good to update first the packages: _'conda update --all'_."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# First steps\n",
"Create an empty graph with no nodes"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"import networkx as nx"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"outputs": [],
"source": [
"import warnings\n",
"warnings.simplefilter(action='ignore', category=FutureWarning)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"G = nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nx.number_of_nodes(G)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Add a node"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"G.add_node('1')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nx.number_of_nodes(G)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"NodeView(('1',))"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"G.nodes"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"If you add edges of nodes that has not been added, network will add the nodes automatically."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"G.add_edge('2', '3')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"NodeView(('1', '2', '3'))"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"G.nodes()"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"For more info about Graph.nodes() see [Networkx manual](https://networkx.github.io/documentation/networkx-2.1/reference/classes/generated/networkx.Graph.nodes.html)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['1', '2', '3']\n"
]
}
],
"source": [
"print(G.nodes)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"EdgeView([('2', '3')])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"G.edges"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[('2', '3')]\n"
]
}
],
"source": [
"print(G.edges)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Building a simple graph"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"import networkx as nx"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"G = nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"G.add_edges_from([('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'D')]) # using a list of edge tuples"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"image/png": "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H3+F5LP2+xx7UxkQkVuyYMECKleuzMSJE42OIlIy3MsX6/CsbNuv6dfs+zn2pNsEIlJoycnJrFq1isWLF+Pt7W10HJEiy8rKYu/evURHRxMbs4VPBoJbEZ6vlZkFW76x3R5o4pvfO03g5VfUuHanMiAihTZ37lzq1KnD6NGjjY4icktycnJISkoiKiqKqKgoYmJiuHTpEt7e3nTs2JG07OpU8filwPNsToQjKbbf/5QG78Tabg/M+CtUrpTPgV4NHXbyIKgMiEghJSUl8e6777Js2TIqVKhgdByRfFmtVr799tvci390dDQXLlygQoUKtG/fnqeeegqz2UyLFi3w8PCAvRNsewEUsLxw9of//X0FT7jHF14fBuFd8jnI5AG+3UvmD2YnelCRiBTKI488wsGDBzl8+DCenp5GxxH5k5MnT+Ze/KOiojh79iweHh60bt0as9mM2WymdevWlC9/k3v3qYdgU4D9wvU8BD5N7Hf+POhBRSJSYuLj49mwYQOrV69WERCHkZKSQnR0dO7F/9SpU7i5udGiRQuGDBlCcHAw7du357bbbiv4ZD7+UKcrnIu+9ccW58fkAbWDDSkCt0IjAyJSoAcffJBz586RkJCAu3tem7CL2Nf58+fZvn177rD/kSNHALj33ntzv/l37NiRKlWqFO0D0k/CJn/ILmhZwC1wr2AbFTDoqYUaGRCREhEVFcW2bdv4+OOPVQSkVKWlpRETE5P7zT8xMRGARo0aYTabmTdvHp07d6ZWrVol84Fe9aHFErCMLJnzAbR81eEfXwwaGRCRfFitVtq2bUt2djbx8fGY8nrIu0gJuHLlCrt27cr95r93716ys7OpW7cuXbp0wWw2ExwczB133GHfIAcWQtLM4p+n2UIIeLr45ykGjQyISLF9+umnxMXFsXXrVhUBKXHXr18nPj4+95v/7t27yczMpHbt2gQHBxMWFobZbKZBgwal+99f0wioUBv2jYecrFubQ2DyADcP24hAwzD7ZSxhGhkQkZvKycnhgQceoFq1akRFRakMSLFlZWXx9ddf507627lzJ1euXKFKlSoEBwfn3vdv0qSJY/z3ln4SLOFwdqvtIp9fKfj99TpdIfANh7k1oJEBESmW999/n6SkJHbt2uUYfzGL08nJyeHAgQO53/x37NhBWloat912Gx07dmTevHmYzWaaNWvmmPNR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DWXYsGH069ePffv28cADDxgdS0TEZeg2gRjKYrHQv39/fv75Z9555x369+9vdCQREZejkQExRE5ODs899xzt2rWjRo0aJCQkqAiIiBhEZUBK3dmzZ3n44YeZPn06U6ZMYefOnTRo0MDoWCIiLku3CaRUff755wwePBh3d3e2bNlC165djY4kIuLyNDIgpeL69es8+eSTdO/enZYtW5KYmKgiICLiIDQyIHaXnJxM//79SUpK4sUXX2TixIm4uamHiog4Cv2NLHb1n//8h+bNm5Oamsru3buZNGmSioCIiIPR38piF5cuXWLQoEEMHjyYvn378vXXX9OiRQujY4mIyE3oNoGUuL179xISEsK5c+dYvXo1oaGhRkcSEZF8aGRASkxOTg4vvPACbdu2pWrVquzfv19FQETECagMSIk4d+4cPXr04Mknn+SJJ55g165d+Pn5GR1LREQKQbcJpNi2bNnC4MGDsVqtfP755zz00ENGRxIRkVugkQEpsuvXrzNt2jQeeugh7r//fpKSklQERESckEYGpEiOHz9O//792b9/P4sXL2by5MlaMigi4qRUBuSWrVmzhtGjR1OrVi1iY2Np1aqV0ZFERKQY9FVOCi09PZ2hQ4cycOBAevfuzddff60iICJSBmhkQArl66+/JiQkhJSUFN5++20GDRpkdCQRESkhGhmQfFmtVl566SVat26Nt7c3+/fvVxEQESljVAYkTz/99BO9evVi8uTJjB8/ntjYWO6++26jY4mISAnTbQK5qW3btjFw4ECys7P57LPP6N69u9GRRETETjQyIDfIzMzkqaeeomvXrjRt2pTExEQVARGRMk4jA5Lr5MmT9O/fn3379rFo0SKmTp2qvQNERFyAyoAA8N577xEeHk716tXZuXMnQUFBRkcSEZFSoq99Lu7y5csMHz6c/v3707NnT/bv368iICLiYjQy4MISEhIICQnh9OnT/Otf/2LIkCGYTCajY4mISCnTyIALslqtvPLKKwQFBVGxYkW+/vprhg4dqiIgIuKiVAZczPnz5+nduzcTJ05k9OjRxMXF0bhxY6NjiYiIgXSbwIVER0cTGhpKZmYmGzdupFevXkZHEhERB6CRAReQmZnJzJkz6dKlC02aNCExMVFFQEREcmlkoIw7deoUAwYMwGKxsHDhQqZNm4a7u7vRsURExIGoDJRhH3zw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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nx.draw_networkx(G, node_color='orange')"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Undirected and directed graphs"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Now we create an undirected graph using the class **Graph**."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"U = nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"U.add_edge('A', 'B')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"U.add_edge('A', 'C')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0, 1, 1],\n",
" [1, 0, 0],\n",
" [1, 0, 0]])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nx.adjacency_matrix(U).todense()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0, 1, 1],\n",
" [1, 0, 0],\n",
" [1, 0, 0]])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nx.to_scipy_sparse_array(U).todense()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nx.draw_networkx(U, node_color='c')"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"We use the class **DiGraph** for Directed Graphs as follows."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"D = nx.DiGraph()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"D.add_edge('B', 'A')"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0, 1],\n",
" [0, 0]])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nx.adjacency_matrix(D).todense() "
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"image/png": "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JggCwIXcdttt2rp1q4YNG6bnnntObdq00bFjx0zPAuAGCALAxXh7e2vSpElas2aNdu7cKZvNpm3btpmeBcDFEQSAi3rooYfkcDhUvXp1NWrUSK+++ipHCACuG0EAuLAqVapo8+bNev755zVq1Cg9+OCD+u2330zPAuCCCALAxRUrVkyvvPKK4uLiZLfbZbPZtGXLFtOzALgYggBwEy1atNDu3bt19913q2nTpnr55ZeVnZ1tehYAF0EQAG6kYsWKio+P15gxYzR27Fi1aNFCv/zyi+lZAFwAQQC4GS8vL40dO1bx8fH6+uuvZbPZFB8fb3oWACdHEABuqkmTJnI4HLr//vvVokULjRkzRpcuXTI9C4CTIggAN3bLLbdo/fr1Gj9+vCZOnKimTZvq559/Nj0LgBMiCAA3Z7VaNWrUKG3evFn79u2TzWZTXFyc6VkAnAxBAHiIBg0ayOFwKDQ0VA8++KBGjhyprKws07MAOAmCAPAg5cuX12effaZJkyZp8uTJatSokQ4ePGh6FgAnQBAAHsZqtSo6Olpbt27VwYMHZbPZ9Omnn5qeBcAwggDwUBEREXI4HKpXr57atGmj4cOH6+LFi6ZnATCEIAA82E033aRVq1Zp6tSpeuutt1S/fn3t37/f9CwABhAEgIezWCwaOnSotm3bpt9++02BgYH65JNPTM8CUMQIAgCSpDp16shut6tJkyZq3769Bg8erAsXLpieBaCIEAQA/lCmTBl99NFHeuutt/TOO+8oMjJS//73v03PAlAECAIAf2GxWDRw4EAlJSXp5MmTCgoK0ocffmh6FoBCRhAAuKzg4GClp6crKipKnTp10tNPP63z58+bngWgkBAEAP5R6dKltXz5cr399ttasGCBwsPD9f3335ueBaAQEAQArshisahv377atWuXMjMzFRwcrA8++MD0LAAFjCAAkC+1a9dWWlqa2rVrp27duqlPnz46d+6c6VkACghBACDfSpUqpcWLF+vdd9/VBx98oLCwMH3zzTemZwEoAAQBgGtisVjUq1cvpaSkKDs7WyEhIVq0aJHpWQBuEEEA4Lrce++9SklJ0WOPPaaePXuqR48eOnv2rOlZAK4TQQDgupUsWVILFizQ4sWL9dFHHykkJERffPGF6VkArgNBAOCGde/eXWlpafL29ladOnU0f/585ebmmp4F4BoQBAAK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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nx.draw_networkx(D, node_color='pink')"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Weighted graphs"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"W = nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"W.add_edge('A', 'B', weight = 2)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"W.add_weighted_edges_from([('A', 'C', 1), ('A', 'D', 3), ('B', 'D', 4)])"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"image/png": "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nIQygAsCAwO1du1a1a9fX7GxsTp+/LjRkQAATkAZwJ+EhYUpISFB1apVU2xsrH799VejIwEAHIwygL8IDw9XYmKisrKy1LVrV50+fdroSAAAB6IM4LKaNm2qhIQEpaSkqFevXjp79qzRkQAADkIZQImuuuoqrVu3Trt379agQYOUn59vdCQAgANQBlCqjh07auXKlUpMTNQ999yjwsJCoyMBAOyMMoAyxcbGatmyZfrggw80adIkdjoEAA9DGUC5DBw4UK+//rpee+01PfLII0bHAQDYEXsToNxGjRolq9WqGTNmyGw2a9q0aUZHAgDYAWUAFTJ9+nRZrVZNnz5dZrNZ9913n9GRAABVRBlAhT3++OPKyMjQmDFjFBISogEDBhgdCQBQBawZQIWZTCa9/PLLGjx4sO6++24lJiYaHQkAUAWUAVSKr6+vli5dqi5duqhfv37asWOH0ZEAAJVEGUClVatWTcuXL9e1116r7t27a9++fUZHAgBUAmUAVVKzZk2tXr1aUVFRiouL05EjR4yOBACoIMoAqiw0NFQbN25UcHCwunTpIovFYnQkAEAFUAZgF/Xq1VNCQoLy8/MVFxenjIwMoyMBAMqJMgC7iYqKUmJion755Rd1795dZ86cMToSAKAcKAOwq5YtW2rDhg1KSkpSv379dO7cOaMjAQDKQBmA3V1//fVavXq1vvzyS919990qKCgwOhIAoBSUAThEp06dtHz5cn366ae6//772ekQAFwYZQAO06tXL7399tt66623NH36dAoBALgo9iaAQw0bNkyZmZmaNGmSateurdmzZxsdCQBwCcoAHG7ixImyWq2aM2eOzGazxo8fb3QkAMBFKANwijlz5igjI0MTJ05UaGio7r77bqMjAQD+QBmAU5hMJj377LPKzMzUPffco5CQEPXo0cPoWAAAsYAQTuTj46M33nhDPXv21MCBA7V161ajIwEARBmAk/n5+em9997TjTfeqF69emnPnj1GRwIAr0cZgNP5+/tr5cqVatmypbp27aoDBw4YHQkAvBplAIYICgrSunXrVLduXcXGxur48eNGRwIAr0UZgGHCwsKUkJAgX19fxcbG6tdffzU6EgB4JcoADNWwYUMlJibq9OnT6tq1q06fPm10JADwOpQBGK5Zs2ZKSEhQSkqKevfurdzcXKMjAYBXoQzAJVx99dVa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9eSTTyojI8PoiHBRlAHAiSgDcAaTyaQuXbpo/fr1+uGHH9StWzc9+uijioiI0MSJE3Xo0CGjI8LFUAYAJzpfBho0aGBwEniL1q1ba9GiRTp27JhmzJihDz74QDExMerXr5++/PJL1hVAEmUAcCqLxaKQkBDVqlXL6CjwMvXr19ejjz6q48ePa+HChfrpp59066236m9/+5vef/995efnGx0RBqIMAE7EbYUwWkBAgMaMGaMff/xR69atU0hIiIYMGaKmTZvqmWee0enTp42OCANQBgAnogzAVfj4+Khbt27atGmT9u7dq9tvv10PP/ywGjVqpClTpujo0aNGR4QTUQYAJ2IUMVzRNddco7ffflvHjh3T5MmTtWTJEjVt2vTCTorwfJQBwIl4ZwCurEGDBpo/f75SU1P10ksv6bvvvlPHjh1144036uOPP1ZhYaHREeEglAHASWw2G2UAbqFWrVoaP368Dhw4oE8//VTVq1fXwIED1bx5c73wwgvKzs42OiLsjDIAOElGRobOnTtHGYDb8PHxUe/evfX5559r165d6tixo6ZNm6aIiAg9+OCDSk1NNToi7IQyADgJA4fgztq1a6d3331XKSkpuv/++/X6668rOjpad999t3bv3m10PFQRZQBwEsoAPEFERIT++c9/KjU1Vc8995x27Nihdu3aqVOnTlq1apWKioqMjohKoAwATnK+DFxxxRUGJwGqLigoSJMnT9bBgwf10UcfqaCgQH369FHLli316quvKicnx+iIqADKAOAkFotFderUUY0aNYyOAtiNr6+vBgwYoG3btmn79u1q27atJk2apMjISM2ePftCCYZrowwATsKdBPB0N9xwgz788EMdPnxYI0aM0IsvvqjGjRvrnnvu0ffff290PJSCMgA4CWUA3qJx48Z6/vnndeLECT3xxBPasmWL2rZtqy5dumjdunWsK3BBlAHASSgD8DYhISGaNm2aDh8+rPfee0+nT59Wjx491KZNG73xxhvKzc01OiL+QBkAnIRRxPBW1apV01133aWdO3fqyy+/VIsWLTR27FhFRUXp0Ucf1a+//mp0RK9HGQCcoKioSCdPnuSdAXg1k8mkm2++WZ988omSk5N155136umnn1ZkZKRGjx6tpKQkoyN6LcoA4ASnTp1SYWEhZQD4Q7NmzfTSSy8pNTVVjz76qNavX6/WrVurW7duSkxMlM1mMzqiV6EMAE6QlpYmiYFDwKVq166thx56SCkpKVq6dKl+/vlnxcXFXdhJ8dy5c0ZH9AqUAcAJmD4IlK569eoaPny49uzZo88++0yRkZEaOXKkoqKi9Pjjjys9Pd3oiB6NMgA4gcVikY+Pj+rVq2d0FMClmUwmde7cWWvWrNH+/fvVt29fzZ8/XxERERo3bpwOHDhgdESPRBkAnMBisah+/fry8/MzOgrgNlq2bKkFCxYoNTVVs2bN0ooVK9SyZUv16tVLn3/+OesK7IgyADgBMwaAyqtTp44eeeQRHTt2TIsXL1ZKSoo6d+58YSfF/Px8oyO6PcoA4ASUAaDq/P39dd9992nfvn3auHGj6tatq2HDhik6OlpPPfWUrFar0RHdFmUAcALKAGA/JpNJcXFx2rBhg/bt26f4+HjNnTtXERERmjx5sg4fPuyw1z5TUKC92dn6JitLe7OzdaagwGGv5UyUAcAJKAOAY7Rp00aLFy/W8ePHNXXqVC1btkzNmzdX//79tW3bNrusK0jKydHkgwfVbMcOBX/1la7dvVs37Nmja3fvVvBXX6nZjh2afPCgktx422bKAOBg+fn5+vXXXxlFDDhQ/fr1NW/ePKWmpmrBggVKSkrSzTfffGEnxYJK/ASfkpuruO+/V+tdu/RaWpoO5+Xp0mphk3Q4L0+vpaWp9a5divv+e6W44Z4LlAHAwX755RfZbDbeGQCcICAgQPfff7+SkpK0Zs0aBQYG6s4771TTpk313HPP6fTp0+V6nkUWi1rt2qUtf6xDKKtKnD++xWpVq127tOiP2SLugjIAOBgDhwDn8/HxUY8ePbR582Z999136tSpk2bOnKmIiAhNmzZNx44dK/Gx848d05jkZOUVFZVZAi5VICmvqEhjkpM1v5TXcDWUAcDBGEUMGKtt27ZaunSpjh49qgkTJujNN99U06ZNdeedd2rnzp1/OneRxaI5KSl/fZING6TOnf/81a+fNGWK9M03l33dOSkpWnzypCO+JbujDAAOZrFYVK1aNYWFhRkdBfBqDRs21BNPPKHU1FS98MIL2r17tzp06KCbb75ZK1as0KGcHE06dKj0Jxk5Unr4YWnWLOmuu6TMTOmhh6Tt2y97+sSDB91iDQFlAHAwi8WiBg0ayMeH/9wAVxAYGKgJEybowIED+uSTT+Tj46MBAwbo6rff1u+FhaU/uEMHKTZWiouT7rxTevFFyc9P2rz5sqcXFBVpbHKyA74L++JvJ8DBuK0QcE2+vr7q27evtm7dqvd37FBu69YqMpkq9iSBgVKNGpKv72UPF0hKtFq138VvO6QMAA5GGQBc37batVWunUPOnJFOny7+eCAlRXr+eSk3t/jdghL4SXrNxe8uYNcUwMEsFotuu+02o2MAKMW69PTy3Tkwffqff1+tmjRjhtSuXYkPKZC0Pj1dat68KhEdijIAOBjvDACuLbugQEfy8sp38gMPSBERxb/OyJA2bZKeeUaqWVO69dYSH3Y4L09nCgoU6KI7l7pmKsDNnSko0KHcXGXl5SnDbFZtpg8CTldYWKjs7GxlZ2frzJkzF3596dchSbYOHcr3pFdeKbVo8d/f33GHNGZM8ULCjh2L3ym4DJukQ7m5ahsUVOXvyxEoA4CdJOXkaIHFonXp6Tpy8djSRYv0d5tNT+/Yoe5hYfp7eLha1aplZFTAJRUWFv7lol3SRbw8f55bxi19fn5+CgoKUvVrrim+S6AyfHyka6+VPv5YOnFCio4u8dRzdtgnwVEoA0AVpeTmamxyshKtVvmphLGlJtOF+eUvpaUp1mzWwpgYRQcEODktYD9FRUWXvShX9gJ+9uzZUl/P19dXQUFBf/oKDAxUUFCQ6tSpc9k/L+n8oKAg1ahRQyaTSXuzs3Xt7t2V/x/i/O2IZZSPGhW9U8GJKANAFSyyWDTp0CEVFBVJqvj88peaNdNo1hPASYqKipSTk1Ppn7Qv/fOcMm6X8/HxKfGCHBUVVeqF+nLH/P39ZXLABbVZQIBM0l82ISqXggLp22+LPx6IiirxNNMfr+OqKANAJc0/duzyY0vLoUDFw0jGJCfrl/x8zS7lLxF4r/MX76q8VX7xV3ku3iVdkCMiIsr8SfvSPw8ICHDIxdveAv381MTfX4fLs4jwm2+k48eLf221Fg8bOnFCuvtuqZSP/5r6+7vs4kGJMgBUSonzyythTkqKrqheXaMaNLDL88E4Npvtwk/eFb1QX+5YTk6ObKV8zmwymUq8IDdq1Khcb5Vf/OUuF29H6B4WptfS0sq+vfCtt/776+rVpcjI4v0JevUq8SF+krq5+Dhyk620f9P+kJWVpZCQEJ0+fVrBwcHOyAW4rJTcXLXatUt5f3w08CcbNkhPPfXf31erJgUHFy8quuEGqVu34luQLuHv46Ok9u1ZQ+BkNptNZ8+erfRP2pceO3PmTJkX7/MX4opeqC93rGbNml578ba3pJwctd61y3HP3769rjRg4XB5r9+8MwBU0Njk5AtrBEo0cqTUoEHx54kZGdLevdIrr0jLl0vz50tNm/7p9PPzyxOuucZxwT2AzWZTbm5uld4qv/jYmTNnVFTG/5cXX4Av/nWDBg0UExNToQt4zZo12aPCRbWqVUuxZrO2WK0V3ra4NH6SOpvNhhSBiqAMABWQlJOjRKu17BM7dPjzvchDh0p79hTvdjZ7trRkSfE88z9cPL/c1f/SqAibzaa8vLwqvVV+6Z+XdfGuVavWZS/G9evXV7NmzSr0E3itWrW4eHuRhTExarVrV9llvwL8fHy0MCbGbs/nKJQBoAIWWCwl3z5Yluuuk4YPlxYtkhITpZ49/3T4/PzyFw0cWWqz2XTu3Lkqf9Z98Z8XlrELXM2aNS97Ma5bt66aNGlSoQVrgYGBXLxRadEBAXqpWTONseMugy83b+4WH/9RBoAKKPf88pLExRWXgW+//UsZqMz88vMX76r8pH3pnxUUlP4dBgQEXPZiXKdOHTVu3LhCn4PXqlVLviXs9gYYYXR4uH7Jz7fLAuH50dFuszCYMgCUU4Xml5ekbt3i249K2MHsUG6unn75ZeVnZZX7Al6ei/flLsa1a9dWVFRUhRayBQYGcvGGx5sdFaX61apdmCFSkR8A/FT80cDLzZu7TRGQKANAuR3Oza3cUJJLBQRIJU1aM5k057XXFHLq1F8uxmazWZGRkRVaiR4YGCg/F763GXBVo8PDdYfZXPZ00T+cP97ZTaeL8rcEUE52myuemyuZzSUe3rp9uzpwCy9guOiAACVcc82FfUfWp6fr8MX7jqh4smBTf391CwvTuPBwt10ATBkAyskuc8VPnZJycqRSRhC78vxywBu1qlWreGFv8+YXdiQ9Z7OphsmkZgEBLj1ZsLzc/zsAnKRK88vPS0go/mf79pc97OrzywFvF+jn57LbEFcF9+AA5XR+fnml7dkjvfNO8TCi2NjLnuLq88sBeCb+1gEqoNzzy89vZlJYWLyZyZ490u7dUv36xRMIq1f/y0PcYX45AM9EGQAq4O/h4XopLa3sE89vZlKtmhQUJDVpIk2YUOLeBFLxSuRxbGcMwACUAaACypxf3rVr8VcFucv8cgCeiTUDQAUtjImRn51H3rrL/HIAnokyAFTQ+fnl9uQu88sBeCbKAFAJo8PD9Xh0tF2ey53mlwPwTKwZACrJG+eXA/BMvDMAVMHo8HAltW+vzn+MFy6rXZ8/3tlsVlL79hQBAC6BdwaAKvKm+eUAPBNlALATb5hfDsAz8bcT4ACeOr8cgGdizQAAAF6OMgAAgJejDAAA4OUoAwAAeDnKAAAAXo4yAACAl6MMAADg5SgDAAB4OcoAAABejjIAAICXowwAAODlKAMAAHg5ygAAAF6OMgAAgJejDAAA4OUoAwAAeDm/8pxks9kkSVlZWQ4NAwAA7Of8dfv8dbwk5SoD2dnZkqSIiIgqxgIAAM6WnZ2tkJCQEo+bbGXVBUlFRUWyWCwKCgqSyWSya0AAAOAYNptN2dnZCg8Pl49PySsDylUGAACA52IBIQAAXo4yAACAl6MMAADg5SgDAAB4OcoAAABejjIAAICXowwAAODl/h9HUgUxKkCw1wAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nx.draw_networkx(W, node_color='c')"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{('A', 'B'): Text(-0.07776005662185159, -0.3386811967059936, '2'),\n",
" ('A', 'C'): Text(0.36944887879272426, 0.5256867154763809, '1'),\n",
" ('A', 'D'): Text(-0.26428629994186137, -0.13563634199376917, '3'),\n",
" ('B', 'D'): Text(-0.3694433520899971, -0.5256943837037334, '4')}"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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FgvDhw/nnnvu4ccffyQyMpKNGzcSGxvLtm3bLvqeEydO0LRpUxo1asTMmTO59957WbNmDZmZmbz55ps0a9bMK4sAwGuvvUbVqlV54oknjI4iIl5IIwNyRfz8/KhXrx7Lly8/NxIwcuRIqlSpQlZWFk2aNLngPVWqVKF9+/aMHz+eDh06eMxWwKuVlZXFggULeO6551zuQUki4h1UBuSK+Pv789hjj3HNNdec+3f79u3j7rvvJiws7KLvcTgcTJo0qawiuo2z2wiHDx9udBQR8VKaJpArdrYI7Nq1i06dOnH77bcDsHLlSk6dOnXB8d46BXAphw8fZv78+YwaNYqAgACj44iIl9LIgFy1gwcPUr16deLi4vj999+ZMmUKe/bsYerUqQQGBhodz6W9/vrrVKhQgX/9619GRxERL6YyIFetXbt2tGvX7tzX/v7+zJw5kx07dnDfffcZF8zF/fbbb8ydO5cxY8ZQvXp1o+OIiBfTNIEUKy0tjaSkJAoKCi553NnXT548SUZGBrVr1y6LeG7rjTfewNfXlyeffNLoKCLi5VQG5KIyMzOZPn06TZs2pWHDhowfPx5f34sPJDkcDgB8fX3Ztm0bq1ev5rHHHiMkJKQsI7uVo0ePMmfOHEaMGHHeIkwRESNomkDO+eOPP/j8888xm81s2LCBChUq0LFjR8aNG0eHDh2KfN+8efNIT0/n22+/JS0tjY4dOzJy5MjLuhuht5k+fToAo0aNMjiJiIjKgNezWq2sXLkSs9nMN998Q2FhIQ888ADvvvsujzzySIlWuLdu3ZrExER69epF3759tWiwGH/88QdvvfUWw4cP59prrzU6joiIyoA3ys/PZ82aNZjNZlasWIHVaqVZs2a88cYbREVFUbNmzcs6X3h4OB9++GEppfU8M2bMwG63M3r0aKOjiIgAKgNew263891332E2m/nss8/4448/CA8PZ/z48URHR1O/fn2jI3oFi8XCrFmzGDp0qEc/illE3IvKgAdzOBxs374ds9nMp59+yq+//kqdOnUYNGgQsbGx3HrrrboRUBl78803OX36NE8//bTRUUREzlEZ8EA///zzuacC7tmzh2uvvZYePXoQGxvLPffco4V9Bjl+/DgzZ85kyJAh1KhRw+g4IiLnqAx4iKysLBYvXozZbCY5OZkqVarQtWtXZs6cyQMPPED58uWN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M/PSB7333plfy5eHqlWhfn144olLPpsAztzIaOhVPM5YPFvr1q1JTEw891RKh8OByWSiS5cuzJs3j99++42TJ08SHx/Pnj17DE4rInJlTI4STHSW9HnIpenBHTtIsFiu/OZDF1NQQNX0dL657TatDpcSKywspFy5cjRv3pzevXuTkpJCVlYWX331ldHRRETOU9LPb5dfM3DW/LAwfJ18q9eKvr7UW7aMFi1a8Oijj3L48GGnnl8809l7DfTq1Yvnn3+e9957jzfffNPgVCIiV85tykCIvz9vNWjg1HPOadiQ7d98wzvvvMNXX31FWFgYM2bMID8/36nXEc9ydgdBhw4d+OOPP3j44Ydp4OQ/myIiZcltygDAwOBgXg4Jccq5JoeEMOCGG/Dx8WHQoEGkpaXRp08fxowZwx133EFCQoJTriOeKyQkhOzsbObNm2d0FBGRq+JWZQBgQt26LAgLw8/H57JXP/oCfj4+LGzYkPF165732jXXXMOcOXNITk4mICCA+++/n+joaH799VenZRf3dXZpTcHfnmERGBjItddea0QkERGncbsyAGdGCHZFRNDmz1sMF1cKzr7eJjCQXRERDLjhhiKPveOOO/juu+/44IMPWL9+PTfffDNTp07l1KlTzgkvbmndunW0bNmSY8eOGR1FRMTp3GY3QVF2Wa3My8pidXY2e2228x5qZOLMDYXaBwUxNDiYRpUrX9a5jx8/zosvvsisWbO46aabmDVrFpGRkU7NL67P4XDQqlUrbDYbW7Zs0cOKRMRtlPTz2+3LwF+dKCggPS+PUw4HFU0mGvj7O+XOgj/99BPDhw9n/fr1PPzww8yYMYN69epdfWBxCwkJCdx///2sXLmSTp06GR1HRKTEvLIMlCaHw8GSJUt46qmnyM7OZty4cTz99NP465kGHq9NmzYcP36crVu3alRARNyKx91nwGgmk4mePXuye/dunnzySV5++WVuueUWvvzySz2gxoNt3LiR9evX8/zzz6sIiIjHUhm4TFWqVOGVV17h//7v/wgNDaVLly506tSJn3/+2ehoUgpeeuklGjduTJcuXYyOIiJSalQGrlDDhg355ptvWL58OT/99BP/+Mc/mDBhAlar1eho4iSbNm1i3bp1PPfccxoVEBGPpjUDTnDy5EmmTp3K1KlTuf7665k+fTrdunXTB4iba9euHZmZmezYsePcXQdFRNyJ1gyUoUqVKvHiiy+ya9cu7rjjDqKiomjbti2pqalGR5Mr9MMPP/Cf//yH5557TkVARDye/pZzovr167NixQq++uor9u/fz2233caYMWPIyckxOppcppdeeolGjRrRrVs3o6OIiJQ6lYFS0KFDB3788UdefPFF3n77bW6++WY++eQT7TpwE8nJyXz99ddMnDiRcuXKGR1HRKTUqQyUEj8/P8aPH8/u3btp0aIFvXv3pnXr1uzYscPoaFKMl156ibCwMHr27Gl0FBGRMqEyUMrq1KnDZ599xtq1a/n9999p0qQJI0aM0D3uXVRKSgorV67UqICIeBWVgTLyz3/+kx07dvDaa6/x/vvvExYWxrvvvovdbjc6mvzFpEmTaNCgATExMUZHEREpMyoDZahChQo89dRT7Nmzh8jISAYMGMA999xDcnKy0dEE2LlzJ8uXL2fChAn4OuGZFiIi7kJlwADBwcF89NFHbNy4EZvNxl133cXgwYM5evSo0dG82qRJkwgJCaFXr15GRxERKVMqAwZq2bIlW7duZdasWSxevJiGDRsyb948CgsLjY7mdX788UeWLl3K+PHjKV++vNFxRETKlMqAwXx9fRk+fDhpaWk8/PDDDB06lIiICBITE42O5lVefvll6tatS9++fY2OIiJS5lQGXMT111/PokWL2Lx5Mz4+PjRv3px+/fpx5MgRo6N5vNTUVJYsWcK4ceOoUKGC0XFERMqcyoCLufvuu/nhhx+YP38+K1euPLfrQDcsKj2TJ0+mVq1a9OvXz+goIiKGUBlwQeXKlePxxx8nLS2NXr16Ub169UuuI/h7UbDZbKUd0WOkpaURFxfHs88+S8WKFY2OIyJiCD210IMcPnyYr776io8//pjGjRszffp0PWSnGI8++ijx8fHs3bsXPz8/o+OIiDhVST+/tZnaA2zatIl169axbNkyQkNDycjI4MSJE+zevZvw8HCj47ms9PR0PvnkE2bMmKEiICJeTWXAjW3cuJFly5bxxRdfEBMTw5IlS9iyZQtHjhyhR48eKgLFmDJlCtdddx0DBw40OoqIiKFUBtzU9u3befjhh2nfvj2pqan4+/tz6NAh3nnnHUJCQnjkkUeAM+sJTCaTwWldT0ZGBh9++CGvv/46/v7+RscRETGUJpTdVN26denVqxdLly5l2LBhACxa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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pos = nx.spring_layout(W) # positions for all nodes\n",
"labels = nx.get_edge_attributes(W,'weight')\n",
"nx.draw_networkx(W, pos=pos, node_color='c')\n",
"nx.draw_networkx_edge_labels(W, pos, edge_labels=labels)\n",
"#nx.draw_networkx_edges(G,pos,width=4, edge_color='g', arrows=False)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Filter the subset of weigthed edges over a threshold"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"strong = [(u,v) for (u, v, d) in W.edges(data=True) if d['weight'] > 2]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[('A', 'D'), ('B', 'D')]\n"
]
}
],
"source": [
"print(strong)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Signed networks"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"S = nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"S.add_edge('A', 'B', sign = '+')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"S.add_edge('A', 'C', sign = '-')"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{('A', 'B'): Text(0.49999933354753434, -0.08276893508159161, '+'),\n",
" ('A', 'C'): Text(-0.4998142645861261, 0.08273808168306745, '-')}"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pos = nx.spring_layout(S) # positions for all nodes\n",
"labels = nx.get_edge_attributes(S,'sign')\n",
"nx.draw_networkx(S, pos=pos, node_color='c',)\n",
"nx.draw_networkx_edges(S,pos,width=4, edge_color='g', arrows=False)\n",
"nx.draw_networkx_edge_labels(S,pos,edge_labels=labels)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Representing other relationships"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"R = nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"R.add_edge('A', 'B', relation = 'friend')"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"R.add_edge('A', 'C', relation = 'father')"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"R.add_edge('A', 'D', relation = 'friend')"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{('A', 'B'): Text(-0.3527611634261536, 0.3731541229775912, 'friend'),\n",
" ('A', 'C'): Text(-0.1473141331865706, -0.4908557230159296, 'father'),\n",
" ('A', 'D'): Text(0.4999437033123544, 0.11724575282478678, 'friend')}"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pos = nx.spring_layout(R) # positions for all nodes\n",
"labels = nx.get_edge_attributes(R,'relation')\n",
"friend_edges = [k for k,v in nx.get_edge_attributes(R, 'relation').items() if v == 'friend']\n",
"\n",
"edge_col = ['yellow' if not edge in friend_edges else 'green' for edge in R.edges()]\n",
"nx.draw_networkx(R, pos=pos, node_color='pink', )\n",
"nx.draw_networkx_edges(R,pos,width=4, edge_color=edge_col, arrows=False)\n",
"nx.draw_networkx_edge_labels(R,pos,edge_labels=labels)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Multigraphs\n",
"\n",
"The same nodes can have several edges with different relationships."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"MG = nx.MultiGraph()"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MG.add_edge('A', 'B', relation = 'friend', color = 'pink', weight = 1)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MG.add_edge('A', 'B', relation = 'neighbour', color = 'r', weight = 3)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MG.add_edge('A', 'C', relation = 'father', color = 'c', weight = 1)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MG.add_edge('A', 'D', relation = 'friend', color = 'b', weight = 2)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{0: {'relation': 'friend', 'color': 'pink', 'weight': 1},\n",
" 1: {'relation': 'neighbour', 'color': 'r', 'weight': 3}}"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MG.get_edge_data('A', 'B')"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"Drawing multigraphs require different methods"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pos = nx.spring_layout(MG) # positions for all nodes\n",
"#pos = nx.circular_layout(MG)\n",
"\n",
"edges = MG.edges()\n",
"colors = []\n",
"weight = []\n",
"\n",
"for (u,v,attrib_dict) in list(MG.edges.data()):\n",
" colors.append(attrib_dict['color'])\n",
" weight.append(attrib_dict['weight'])\n",
"nx.draw_networkx(MG, pos, edgelist=edges, edge_color=colors, width=weight, node_color='c')"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"# References\n",
"* Networkx tutorial https://networkx.github.io/documentation/stable/tutorial.html"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## Licence"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"The notebook is freely licensed under under the [Creative Commons Attribution Share-Alike license](https://creativecommons.org/licenses/by/2.0/). \n",
"\n",
"© Carlos A. Iglesias, Universidad Politécnica de Madrid."
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"datacleaner": {
"position": {
"top": "50px"
},
"python": {
"varRefreshCmd": "try:\n print(_datacleaner.dataframe_metadata())\nexcept:\n print([])"
},
"window_display": false
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autocomplete": true,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}