diff --git a/Tesselation_de_voronoi_modif.ipynb b/Tesselation_de_voronoi_modif.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..56b8df8cb45c8d6dc80f8244a0fea3e951997801 --- /dev/null +++ b/Tesselation_de_voronoi_modif.ipynb @@ -0,0 +1,402 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "d5fbe906-9395-4c84-ac8d-5a2d774bf39b", + "metadata": {}, + "outputs": [], + "source": [ + "#author: \"Clément Frainay\"\n", + "#output: html_document\n", + "#knitr::opts_chunk$set(echo = TRUE)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "8c08fd21-ec30-4f74-83e8-768ba4540915", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Warning message:\n", + "\"package 'igraph' was built under R version 3.6.3\"\n", + "Attaching package: 'igraph'\n", + "\n", + "The following objects are masked from 'package:stats':\n", + "\n", + " decompose, spectrum\n", + "\n", + "The following object is masked from 'package:base':\n", + "\n", + " union\n", + "\n", + "Warning message:\n", + "\"package 'openxlsx' was built under R version 3.6.3\"" + ] + } + ], + "source": [ + "library(igraph)\n", + "library(scales)\n", + "library(openxlsx)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "449d0f84-38f5-4b22-adff-fad36d012f10", + "metadata": {}, + "outputs": [ + { + "ename": "ERROR", + "evalue": "Error in match.arg(arg = arg, choices = choices, several.ok = several.ok): 'arg' should be one of \"edgelist\", \"pajek\", \"ncol\", \"lgl\", \"graphml\", \"dimacs\", \"graphdb\", \"gml\", \"dl\"\n", + "output_type": "error", + "traceback": [ + "Error in match.arg(arg = arg, choices = choices, several.ok = several.ok): 'arg' should be one of \"edgelist\", \"pajek\", \"ncol\", \"lgl\", \"graphml\", \"dimacs\", \"graphdb\", \"gml\", \"dl\"\nTraceback:\n", + "1. read_graph(\"C:/Users/mumec/Desktop/Mini_codes/CompoundNet_KEGG2SBML\", \n . format = \"txt\")", + "2. igraph.match.arg(format)", + "3. match.arg(arg = arg, choices = choices, several.ok = several.ok)", + "4. stop(gettextf(\"'arg' should be one of %s\", paste(dQuote(choices), \n . collapse = \", \")), domain = NA)" + ] + } + ], + "source": [ + "#import networks in gml ( graph format)\n", + "g <- read_graph(\"C:/Users/mumec/Desktop/Mini_codes/CompoundNet_KEGG2SBML\",format = \"gml\")" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "id": "a975c1b3-2cc6-47d8-a744-79d5165779ba", + "metadata": {}, + "outputs": [], + "source": [ + "corresp <- read.csv(\"C:/Users/mumec/Desktop/Mini_codes/100_metabolites_KEGG_ID.csv\", sep=\";\")" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "id": "704eb832-7948-43d0-8a4e-5e9ca49de549", + "metadata": {}, + "outputs": [], + "source": [ + "Name_cor <- as.character(corresp$ NAME)\n", + "ID_cor <- as.character(corresp$ KEGG)" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "id": "ccaf5941-4624-428b-8a53-beb73af67f93", + "metadata": {}, + "outputs": [], + "source": [ + "#extract main connected component (otherwise, inf in the matrix)\n", + "g <- decompose(g, mode=\"weak\", max.comps = 1)[[1]]\n", + "m <- distances(g) # Distance matrix without ID\n", + "rownames(m) <- V(g)$label # recup of name\n", + "colnames(m) <- V(g)$label" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "id": "f48cf29d-e94f-4ba0-8b71-d54c21bf7e65", + "metadata": {}, + "outputs": [], + "source": [ + "## Center-Nodes computation\n", + "grid_size = c(10,10)# put the dimension of the grid\n", + "nclusters = grid_size[1]*grid_size[2]\n", + "centers <- data.frame(ID_cor)" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "id": "2e5d1af7-b4a9-4897-8ec1-26d8663cdc3b", + "metadata": {}, + "outputs": [], + "source": [ + "## Neighborhood assignments\n", + "submed <- m[rownames(m) %in% centers[,1],]\n", + "minDist <- apply(submed,2, min)\n", + "minDistMatrix <- matrix(rep(minDist, each = nrow(submed)), nrow = nrow(submed), ncol = ncol(submed))\n", + "assignMatrix <- (submed==minDistMatrix)\n", + "assign <- apply(assignMatrix, 1, function(row) colnames(submed)[row])\n", + "\n", + " \n", + "vornoiBridge<-colnames(assignMatrix)[colSums(assignMatrix) > 1]" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "id": "cab448f4-8181-4fcd-a030-787b277e40f5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<strong>png:</strong> 2" + ], + "text/latex": [ + "\\textbf{png:} 2" + ], + "text/markdown": [ + "**png:** 2" + ], + "text/plain": [ + "png \n", + " 2 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "## Subgraph building\n", + "Name_of_out_file=\"tesselation_test_modif\"\n", + "df <- data.frame(matrix(ncol = 5, nrow = length(assign)))\n", + "colnames(df) <- c(\"center\", \"nodes\", \"edges\", \"outEdges\",\"nbCC\")\n", + "\n", + "pdf(file=paste0(Name_of_out_file,nclusters,\".pdf\"),width=50, height=50)\n", + "#par(mfrow=c(grid_size[1],grid_size[2]), cex.main = 4)\n", + "par(mfrow=c(7,7), cex.main = 4)\n", + "\n", + "for(i in 1:length(assign)){\n", + " medoidId = names(assign[i]) # on récupére l'id e question ici on peux modifier l'ID par son nom usuel\n", + " #get neighborhood vertices\n", + " clusterVertex = V(g)[V(g)$label%in%assign[[i]]]\n", + " indice <- which(ID_cor == medoidId)\n", + " Name_ID = Name_cor[indice][1]\n", + " #build induced subgraph\n", + " clusterGraph = induced_subgraph(g,clusterVertex,impl = \"auto\")\n", + " #get edges that goes outside the cluster\n", + " incidentEdges <- incident_edges(g, clusterVertex, mode = \"all\")\n", + " incidentEdges <- setdiff(incidentEdges,E(clusterGraph))\n", + " \n", + " #cluser data\n", + " df$center[i] = Name_ID # dzdzdzdazdazdazdazdazdazdazd\n", + " df$nodes[i] = length(V(clusterGraph)) # number of graph vertices\n", + " df$edges[i] = length(E(clusterGraph)) # Number of graph edges \n", + " df$outEdges[i] = length(incidentEdges) # Number of out edges \n", + " df$nbCC[i] = count_components(clusterGraph, mode = \"weak\") # Counting related components\n", + " df$diameter[i]= diameter(clusterGraph)\n", + "\n", + " #clusters visualization\n", + " V(clusterGraph)$size <- 6\n", + " V(clusterGraph)$shape <- \"circle\"\n", + " V(clusterGraph)$color <- \"aquamarine\"\n", + " V(clusterGraph)[V(clusterGraph)$label == medoidId]$size <- 15 \n", + " V(clusterGraph)[V(clusterGraph)$label == medoidId]$color <- \"khaki1\"\n", + " V(clusterGraph)[V(clusterGraph)$label %in% vornoiBridge]$shape <- \"square\"\n", + " V(clusterGraph)[V(clusterGraph)$label %in% vornoiBridge]$size <- 4\n", + " V(clusterGraph)[V(clusterGraph)$label %in% vornoiBridge]$color <- \"mediumorchid1\"\n", + " plot(clusterGraph,vertex.label=NA, main =paste(Name_ID,collapse = '\\n'))\n", + " box(col = \"black\",lwd = 7)\n", + "}\n", + "dev.off()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "id": "b6c838d4-3bdf-4a2c-a987-f6e313e8d7a6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " center nodes edges outEdges nbCC diameter\n", + "1 bilirubin 244 945 243 1 13\n", + "2 sphinganine 176 695 173 1 13\n", + "3 pipecolinic acid 31 121 31 1 6\n", + "4 pyruvic acid 364 1054 363 1 16\n", + "5 L-glutamic acid 475 1783 475 1 13\n", + "6 glycine 305 782 305 1 14\n", + "7 succinic acid 267 1085 265 1 11\n", + "8 L-aspartic acid 247 878 247 1 13\n", + "9 L-lysine 99 210 99 1 11\n", + "10 L-serine 251 823 248 1 14\n", + "11 L-arginine 101 214 101 1 9\n", + "12 L-tryptophan 114 247 114 1 14\n", + "13 L-ornithine 5 10 5 1 2\n", + "14 L-methionine 232 617 232 1 15\n", + "15 L-tyrosine 126 316 126 1 12\n", + "16 beta-alanine 18 45 18 1 6\n", + "17 L-cysteine 335 1198 332 1 13\n", + "18 serotonin 50 112 50 1 10\n", + "19 trans-urocanic acid 2 2 2 1 1\n", + "20 creatine 51 120 51 1 6\n", + "21 spermidine 8 24 8 1 4\n", + "22 L-citrulline 96 203 96 1 9\n", + "23 glycine betaine 51 124 51 1 6\n", + "24 oleic acid 3 2 3 1 1\n", + "25 1-methylnicotinamide 51 120 51 1 6\n", + "26 4-acetamidobutanoic acid 2 2 2 1 1\n", + "27 9H-xanthine 10 36 10 1 4\n", + "28 5-hydroxyindoleacetic acid 40 95 40 1 5\n", + "29 octadecanoic acid 4 3 4 1 3\n", + "30 cholic acid 96 199 96 1 9\n", + "31 sarcosine 116 393 116 1 9\n", + "32 4-methyl-2-oxovaleric acid 39 85 39 1 8\n", + "33 hexadecanoic acid 172 475 172 1 13\n", + "34 taurine 25 49 25 1 6\n", + "35 riboflavin 164 551 164 1 14\n", + "36 D-glyceric acid 20 56 20 1 10\n", + "37 all-cis-5_8_11_14_17-icosapentaenoic acid 22 33 22 1 6\n", + "38 octanoic acid 37 144 37 1 7\n", + "39 hypoxanthine 15 27 15 1 6\n", + "40 linoleic acid 172 661 169 1 12\n", + "41 N6_N6_N6-trimethyl-L-lysine 2 2 2 1 1\n", + "42 uridine 148 650 148 1 13\n", + "43 inosine 26 60 26 1 10\n", + "44 Nn-methyl-L-histidine 2 4 2 1 1\n", + "45 trans-4-hydroxy-L-proline 37 75 37 1 6\n", + "46 5-oxo-L-proline 97 223 97 1 8\n", + "47 uracil 12 26 12 1 5\n", + "48 phosphocholine 65 243 65 1 10\n", + "49 choline 255 853 252 1 16\n", + "50 L-leucine 94 192 94 1 9\n", + "51 fumaric acid 27 50 27 1 7\n", + "52 L-histidine 102 212 102 1 10\n", + "53 indole-3-acetic acid 2 4 2 1 1\n", + "54 L-thyroxine 3 4 3 1 2\n", + "55 N-acetylputrescine 274 1055 271 1 16\n", + "56 3-methyl-2-oxobutanoic acid 43 112 43 1 8\n", + "57 (S)-malic acid 27 61 27 1 7\n", + "58 L-proline 111 232 111 1 13\n", + "59 adenine 107 231 107 1 10\n", + "60 beta-D-fructofuranose 37 121 37 1 9\n", + "61 nicotinamide 49 125 49 1 7\n", + "62 L-asparagine 159 434 159 1 12\n", + "63 citric acid 108 238 107 1 13\n", + "64 (2-hydroxyphenyl)acetic acid 3 4 3 1 2\n", + "65 N_N-dimethylglycine 70 177 70 1 9\n", + "66 L-threonine 97 204 97 1 9\n", + "67 cholesterol 352 1261 348 1 15\n", + "68 L-valine 102 211 102 1 11\n", + "69 4-guanidinobutanoic acid 2 4 2 1 1\n" + ] + } + ], + "source": [ + "# Sub-graphs analysis\n", + "print(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "id": "d0a0f33e-9f25-45f6-a4e2-c0863d1ff8bf", + "metadata": {}, + "outputs": [], + "source": [ + "outfile <- \"C:/Users/mumec/Desktop/Mini_codes/data_out_tesselation.xlsx\"\n", + "write.xlsx(df, outfile, sheetName = \"Tesselation Voronoï\", row.names = FALSE)" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "id": "262f1c2c-cd8a-4e5b-9503-0c1fa36b4bbf", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAfRUlEQVR4nO3d2WKqMABF0SCIM/7/31YGFS1CkBMyuNfDbeuEte4LhKjmCmAx\n4/sOACkgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIE\nCAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJ\nECAkQICQAAFCAgQICRAgJECAkAABQgIECCkkxpjuH0SGv9mXcmOOjx+OxuSKG7UPqbvQ6GW3\nX94BfIHH7Uu3dorHDy9VLaAM6ZR98bclpG/xuH0rM+bSfXsxJlt56dMhfdUEIX2Lx+1bO2PK\n7tvSmN3KSyekwPC4fat6roZuK6eq/nrc3p6I224j7/btZdO29n769XjbFtyeu2v/O7e/kHJz\n2/063n/ITFZe+pfrvlS72w2a4vC8omkNL2B/u9HtfXU6vPiXU6+X20/5/r7l2fu1Zz1iSeOh\n+Fpx3zE6dLtLeffsbfedbt9s2jGIf6eX7c9tSf/O7S3ikrXnlf0fTr3LtV/u5/RGPHoh/VtA\n0fyYXUYW/3rqqbv15tzt/dc+PlfJIKTv3Z5Im+abTfvUKozpP/3abw8fTq81o2r/z+0t4h5I\nc/v3H7Le5dov22Y51e2Jvr9f8xnSx8VvPi/+7dTseaWmqjavomsaNUL63qZdqZzb5/atK7Ov\nbltZ3fO+/i+8Gj49OzZPfjN87nMB+9tFz00gm+aH2+1VbTSvIZl23KO6l319njW4+Nvz/5g1\nPw4v/u3UQ3uPD1l77qZd2uVlaT+PkL63b7dtynZFsL2vD8p2XdM9NT+dXj1WJu/nPhfQbTxW\nm92l+aHZEWtXCC8h1c/w7fv4e3eJgQU0u1LH5sfhxb+det+GPbTn7l5+bbQI6XvVY31QPb80\n/1X3Th46/Xq99lYmg+f2LvL8obdt9xLSrttUfGnpeYnhBTQrlOFz307Nnlcx18coy32EBQ1C\nWqD5n3vf7ew8n/VDwXw6/dO5b1e99kPqXa77Ut4Tu/y78scFmNeDv28hXYcu9NyDOnZrNNwR\n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", + "text/plain": [ + "Plot with title \"Voronoï cells topology\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df$density <- (df$diameter/(df$nodes*(df$nodes-1)))\n", + "plot(df$nodes ~ df$diameter,\n", + " ylab=\"Number of cell nodes\",\n", + " xlab=\"Cell diameter\",\n", + " main=\"Voronoï cells topology\",\n", + " cex = rescale(df$density, to = c(1, 5)))" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "id": "70da4ec7-437d-4ee4-9d5a-98f633cbcf9c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAfV0lEQVR4nO3diZaivAJF4aAUzvD+b1syD6IiOYQE9rfW7bYsFa7t/oEQ1WQA\nrJm1VwDYAkICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAk\nQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECA\nkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQfGKMqf5AYPg3m+lozLX54WrMUfGg00OqbvTx\ntn8zVwAz8LzN9Gwnbn7oVWVBGdItmvFvS0hz8bzNFRnzqC4+jIkcL/17SLOaIKS5eN7mOhmT\nVBcTY06Ol05InuF5myttN0PPjVOa/339e74Q/6qdvOfFx6FsbXh9dn3uC/7dq3u//La7kOTw\nPPy61j9EJkoe3dtVf6Wn5wOa+NLe0ZTGF3B+PuhfvTkdX3zv2uzx/Ol4rvc8O/+3f3rGNo2n\nYra4PjC6VIdLx+rVWx47PS8cyjGIl+uT8ueypJffdhbxiMrfJd0fbp3blX/Vv+mMeHRCellA\nXPwYPT4svn/trXr04rd/9f/ta7tJBiHN93whHYoLh/KlFRvTffmVFy9vrs8Vo2qvv+0sog6k\nePz6h6hzu/Kvv2I56fOFfq7v2Yb0dvGH94sfXBu1dyqqKvOKq6aRI6T5DuVG5V6+tp9dmXP6\n3MuqXvf5f8LT8euja/HiN+O/bRdwft70XgRyKH54Pl5aRtMPyZTjHmlddtb+anTxz9f/NSp+\nHF/84NpLucaXqPztoVzao7e03SOk+c7lvk1Sbgj+6u1BUm5rqpfmu+vTZmMy/G27gGrnMT2c\nHsUPxYFYuUHohZS/wv+G4+/VLUYWUBxKXYsfxxc/uLbeh72Uvz31/m+jREjzpc32IG3/Kv5T\n3bl67Posyzobk9Hfdm7S/tDZt+uFdKp2FXsttbcYX0CxQRn/7eDaqL2LyZpRlnqEBQVCslD8\nl/tcHey0r/qxYN5d/+63g7tm3ZA6t6v+SurEHi93frsA0z/5OwgpG7tRewR1rbZoqBGShXv+\nX/VDO47W/Ge8s834dP2H33ZuUukPNg8ySS/lONtx7BbDBaTt78cXP7h2sEUqJ0SpJnNsBSHZ\nOBRD2eUxd/zmaOfd9aYeU3t/jHQcHCN1Xrkv25vq1M/LLUYWUPxcTnEaX3z88RipKOvqfjKH\n3wjJxqXYDJQvunfjb++uNz+O2l3K4bZLudnphXRoDsc6L+78V+noAvLRhnzU7vzjqJ2pV67c\nk3Q9mcNvhGTFmPaVX5/EHB4zvbne9E+Xvhxp5ZoTOOfuD7dsEFK+r/XoTVqqbp6MLqASvV/8\n4NreeaSsHINgqKGPkKwkpvPiPXZffJ0kxq+v/353r9ytO7Phajo/9EJqBhu67+X4q39+WUB5\n68HMhv7i+9dWSz42K/fcBHbmviMjJEt3U8/0yV3/otFZc6PXN79/d69cPr3OxM1cu0PzQz+k\n8vjo2D+vEzcdDBdwOZgoqTco44vvXZvd/4oZf81v8708hhp6CGlnBqX+op2me2aoYYiQdmZG\nSKacDHE/1vtz94j5qkOEtDMzQmqHHppxv+4OLXKEtDMzQmrepdGMczD2/YKQdmbOMVJ6yt9X\nEVVjD/m7rC5f7rE/hAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQI\nEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBAS\nIEBIgAAhAQKEBAgQEiDgICQDBGbGq1wfzgqLAJQICRAgJECAkAABQgIECAkQICRAgJAAAUIC\nBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRgqg/vKCckYJqioncpERIwjen8+eaX\nMx5vUYQE75jB3+O/nfGACyIkeIeQAAFCAhQ4RgIEGLUDJDiPBCyLkAABQgIECAkQICRAgJAA\nAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFC\nAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIE\nCAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJ\nECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgSchnQ7\nxSYXJ7elFgGswmFI6cG0jossAliJw5ASE13uxaXHNTLJEosAVuIwpMjcm8t3Ey2xCGAlDkMy\n5t0PskUAK2GLBAi4PUa6PopLHCNha1wOfx87o3aHdJFFAOtwex4pKc4jRfGJ80jYFmY2AAKE\nBAgwRQgQYIoQIMAUIUCAE7KAgD9ThEzXzEUAK2GLBAgwRQgQYIoQIMAUIUCAmQ2AACEBAquE\n9HV4m5AQGEICBJyekJ18zpWQEBiHId0iQsJWudy1S2NzLM7IsmuHrXF7jHQx5pIRErbH8WDD\n42jilJCwOc5H7U4muhIStsb98Pf98P1tEoSEwKxxHumPkLA1TBECBAgJECAkQICQAAFCAgQI\nCRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQ\nICRM8v3DCPeNkDBBUREpfUBImMB0/sQYQsJ3ZvA3XhASviOkrwgJ3xHSV4SECThG+oaQMAGj\ndt8QEibhPNJnhAQIEBIgQEiAACEBAoQECBASIEBIcGybA+mEBKe2emqXkODUVicbERJc2uz0\nV0KCS4RkdRcPF4FVEJLVXTxcBNbBMZLNXTxcBNbBqJ3NXTxcBNbCeaT5d/FwEYASIQEChAQI\nEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASFjKNmenvkFIWMZW3y/xBiFhGVt9B98b\nhIRFbPY95W8QEhZBSEvcxcNFYFmEtMRdPFwEFsYx0gJ38XARWBijdgvcxcNFYHGcR5LfxcNF\nAEqEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEC\nhAQI2IZ0PmTZ42AON9UKvS4C8J9lSNf8bfmReZKWREgIjGVIR3PJ7uaQXcxRtkoZISE4liHl\nG6S7SdSfu0RICIwgpNhcJ4Z0O8X5XqCJky87goSEwFjv2t2vJsom7dqlB9P6fHNCQmDsBxuM\nOeUbpOvX+yUmutyLS49rlO8OStcKWJP18HeZxOHy/X6RuTeX7/lmTLpWwJocnpA1w4Mr/SKA\nlTgMiS3Scnb1Mdtesg7pGhcjd4/v93seI13Lm3GMpLWzL37wkm1IR1P8x9BEE0o6dkbtDql4\nrfZsZ19F5CXLkM7mmOYhnc3fhHvekuI8UhSfOI8ktLcvx/OSZUiRSZfYseAl8QtC8oBgZgMh\nrYyQPGAZ0qHaIuUTV79jitAyOEZan+YY6RqZ89f7MUVoKYzarc921C6eFEaBKULL4TzS2iTn\nkUw8YYYQJ2SxYf5METJdMxcBrIQpQoCARUjG/LYRYYoQtsthSEwRwnZZj9pF+Tv6btGUGUJM\nEcJmWYaUVMc998+7ajaLAAIgmCLUvyBBSAiM9aTVeov0cRSu5xyZw5d5EISEwFjv2kX54c41\nyj8B5Zt7bKJzdmKKELZH8sa+fG7D9/vdixsm5i/NHvHnuXmEhMBYn5C9FFOEvn8YV5b95QMS\nSbkPmH6eLU5ICIzzKULVtotPEcKmOA/pUu7TMUUIm2K/a3ecOvv7Lz86KqV/TBHCpqgGGya8\nHymNOmedPo+WExICY/0O2WKK0KR3yGZZUucTfZkHQUgIjPVnNtQnZKd8ZsOsRQABYIoQICDb\nIk2fIvTjIoAAOD1GmrUIIAAOR+3mLgLwn2iK0JTzSLMXAXjP4cwGvxYBKBESIEBIgIBtSKfm\nA71Va/SyCMB/liGdlvlwVEJCYKw/s0F6/mhsEfACnyP9mWqKkBb/Zp7hi2O+sQwpNh8/MXUu\n/sU8w1eZfWMZ0iM6fvnQ1Fn4F/OLGfyNF9a7dgw27AAhfUVI+I6QvuKELCbgGOkbQsIEjNp9\nQ0iYhPNInxESfkVTIwgJv2EvbxQh4TeMO4wiJPyEkfBxhISfENI4i5B+/lbzRdcKbhDSOELC\nbzhGGsWuHX7DqN0oQsKvOI80gl07QICQAAF27QABQgIErEO6xvleXfwQrc/YIgDv2YZ0LA+P\nTCQtiZBUGGFzxDKkszmm+T/V2fzJVikjJBXO+Thj/QGR6RL/WvzTazALwRnBB0QSkq+YF+eO\nZUiHaovEt5r7iJDc0Rwj8R2yfqmGGAjJHdtRu5jvkPVOu6/NMZIzkvNIfIesV9p8GLVzhpkN\nm9PboeM8kiOEtDkcGa3BNqQ0iZ5/Ron22114DVgYD4lN07IsQ3pE1W44U4T8MTLEwMHS0ixD\nOpq/fFuUJiZWrdFwEfjVSDUM3y1NMLOhf0GCf3E7w/04DpsWJ5hrl0sJyWcfQuLYScMypMQU\nX315O5pEtUbDRcDe25A4dlKRvB+JmQ2+e3eMxLGTivV5pEs+s+EonWnHv6zcmy0Px04ynJDd\nidFjIUKSIaQ9IyQZQto1jpFUCGnXGLVTIaSd4zySBiEBAhYhJSfpmowtAgiERUjNJwjpERIC\nYxXSg5CAgkVIf3ytC1CxCCmNCUmJ8bOQqd6PpLXDVxRndMJGSJ5gjkHYOI/kB2a9Bc7+bRRH\nPiBSgJACxxv7/EBIgbMM6Wyi6/MvPkTfGsdIYbMM6WDuxd98rYstRu3CxsdxeYPzSCGTbZEi\nzfq8LgIIAMdIgACjdoCA5uO4OI+EnWNmAyBASIAAIQEChAQIEBIgQEiAACEBApYhxdLvFxtd\nBBAA3moOCFhPWk1lq/JmEUAALENK4+I7ZNUICYGx3rXjc+0AQgIkGP4GBAgJELAO6Rrne3Xx\nY8o9b6fy48Lj5MsIBSEhMJJ3yD6vi76XlB46R1Sf31FLSAiM9Wc2HNM8pLP5+3q/xESX8qNS\nHtfIfJwSQUgIjGVIkUknfyJbVH3iUO7Lpw4REgIjmCI0NSQzvKN0rYA1CaYI5U1M+aRVtkjY\nLs0x0qTPtXseI13LIQmOkbA1tqN28aRRuNKxM2p3+DjZlZAQGMl5pKmfa3dLiu6i+MR5JGwL\nMxsAAUICBEQfWXyddE+mCGGrVB+iH3+/H1OEsF2WISXN17qcvt6PKULYLuspQtO/aIwTstgu\nh199+WWKkOn6fa2ANVnv2tVbpO8fcMcWCdtlPbOhOEa6Rd/fRcEUIWyYRUjG/Lg3xhQhbJbL\nkJgihM1iZgMgQEiAgMuQ0j9jjtVkIt4hi02xDSmJJh8jpVFnMhEhYVOszyNNH2xI8nfRpueo\nmGZHSNgU65kN399iXovKOz6iw4OQsDEOv2isvm16PBISNsZ61276F421X0p2OBIStsX6/UjH\nSZ/6nWs/jfVhjoSETbEN6frDzIakudH1y+0JCYGxDOn00xShe/M+2scfIWFLrN/YN33UbuYi\ngAA4HLWbuQggANa7dtNH7WYuAgiA7WDD6fjlHRGzEBICY71rt8jHLBASAkNIgADvRwIECAkQ\nICRAgGOkMPChmZ4jpBBM/b5rrEaza3c7Tvg2CrtF7Jrp/AkviY6RUjPho1btFrFjZvA3/KMa\nbGDXbkGE5D9RSOcJX+tiuYiwCA4a24cgJP/JBhu+f9HYzEWESDA40HsIjpG8JwrpoH1bUugv\nGcELv/cQjNp5jxOyCxDsir3s1ZGR3whpAQuEBM8R0gIIaX8sQvr9+5GWXCuvqI+R4D1CWoJ6\n1A7ek+za3Q8mugpW5sMiQiM9jwT/CULKv/ZIehZpCyFhZ+xDOhsTT/7Y4nmL2Bg2NRtkG9Lt\nYA76zxHa8guNg59NsgvpEf/yBUmzFrE5DMdtklVIJ2P++IDI33CCaJssQrpG5nCXrszLIjaI\nkLaJ80iOEdI2EZLK1KeAY6RNYq6dxvSxOEbtNomQNH7ZznAeaYMISYIjn70jJAlC2jtCkiCk\nvSMkDcbido6QNBiL2zlCUmEsbtcICRAgJECAkAABQgIECMlLjFyEhpA8xFh6eAjJQ5zdDQ8h\n+Yf5RgEiJP8QUoAIyT+EFCBC8hDHSOEhJA8xahceQvIS55FCQ0iAACEBAoQECBASIEBIgAAh\nAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKE9BFv+cY0hPQBH0KC\nqQjpAz4WC1MR0nt8UCMmI6T3CAmTEdJ7hITJCOkDjpEwFSF9wKgdpiKkjziPhGkICRAgJECA\nkAABQpqN4ye0CGkmRvTQRUjlAn9OgnNM6CKkbNbWhVkP6CGkbNbWhZDQQ0jzoiAk9Ow+JNMe\nHs3YJNERSjsPqXd09FtIjNqhw2lIt1OcbwBMnNyWWsSPzMufP9yXjNBwGFJ6MK3jIov4Vb0p\nYusCSw5DSkx0uReXHtfIJEss4lfFcqq0HS0S2+QwpMjcm8t3Ey2xiF+ZageNjGDJYUi9V+vn\nl67DwYYyI0KCnX1vkdqjI0qCFbfHSNdHccmjY6Ty6IhNEiy5HP4+dkbtDukii/iRaUa+CQlW\n3J5HSorzSFF88uQ8Ur1Px2ADLO13ZkO9T1eP3AEW9hqSMVl9+oiMYG+vU4RMPV5HRlDY6RSh\ndpQBUNjpFKF6UhCbI2js9IRsu2O39JKwD/5METJdMxfxw7qYrPemPsDKLrdI3WJJCQo7nCJU\n9VNXREgQ2OEUoWZ6XbVjR0mwt78pQuWmqHOAREiwt7uZDUVF9c7d0gvDbuwyJJPREbT2FlI9\nUbUZZWfUDgp7DKk9WcV5JIjsMKR2ghCg4nRmw+TJC0seIy29AOySw5DOfoTEgREW4HLX7h59\nfvOEYBGTHpyMIOf0GOn+eWKQYhHAKtwONpw781YXWgSwhr2N2gGLICRAgJAAAUICBAgJECAk\nQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJENhVSHxYA5ayo5DKT4Rc4pGB\n/YRklntogJAAgd2EZF4uADqEBAjsJqRPu3YMQcAWITGaB4H9hPQuGAYhILCjkN5sdwgJArsK\n6eOiKAkWCGmFZWJ7dh8Su3ZQICRCggAhMfwNAULKyAj2CAkQICRAgJAAAUICBAgJECAkQICQ\nAIHNhmQ4OQSHthmSyTMiJbizxZCMqUOiJDiywZDKqXPMoINLmwwp76h4DEqCI9sLqdog1RcA\nFzYZUhlQtWUCHNheSPWWqNkyAcvbZkjVwB0dwZUNhlRXZKwfCJhqwyEx1gB3NhhS/WkmZAR3\nNhySYkWAabYWUmc7RElwZ0shDQ6MCAnubCekZr53VRIdwaHNhFQNdhtCwhq2E5KpW6omfjd7\neIzeYXkbCak9OKrnNdQT7pgEDhe2EVI1F6jZvTO9q2c8IPCbrYTUOUYiJLi3iZCaWXXlO8zb\nu5vs9RKwgM2EVA8x9KaqEhIc2URI1e1fJjUYQoIjWwqptyUyzQc3zHlA4DfbCOnlM4NMk9LM\nBwR+spGQBueKmrNInEeCG5sJafT+1dlZy0cDvtpkSIwxwLXQQxp9RzkhwbWwQ6rPHQ1SIiS4\nFnRI1Qflv37xBIN1cCzskEwzxk1IWFXIIXUnew83SYx6w6nAQzLNuyZeBhzICA6FG1I1Bah+\n6wTZYE2hhtQcHhnDbhzWF2hI5Rsnmk/5Zj8OKws8pGbLREhYVZghNe83YlYq/BBwSN39OkLC\nusIMqRqraz+Ai5KwrrBCaoYVCAl+CSakdmiu3Z/rfCTk8usEfBBISP3RBFOfPjL1rQkJ6woi\npLG53Z0xBkLC6kIIaeR9e70RO07HYnX+h/T6/temHr5xGb7wPqTXpbWTvtu3IwHr8j2ksfG7\nzHS3R3QED3ge0tiy6lHv6gPzCQkeCCqkwXyg+jMgl18f4Au/Q+oPOpTTU+szs3VRbJLgAa9D\n6o45dCqqW+p8Tx+wrkBCarY9zZBdRkjwiM8h9TtqvkKsOU4ynV8AqwoipDqX7lQG0wlr+RUC\nPvM4pH5HzYao+5En9dspll8j4KOAQmqS6XxI8fhn2gGuBRBSp6N6n6/dtTOEBB8EFlLzh+lO\nWCUkrC2MkNrvm2j+7H6aHSFhbf6GNNgg9aKpr3O4SsAnTkO6neJiOxInt++LGN2za3/Xe/8E\nIWFlDkNKD50JPsevi3gJqZ2rWp9Tsl4lQMRhSImJLvfi0uMameTbIt6G1J6YtV4lQMRhSJG5\nN5fvJvq2iG5Iw01SZ8Kd1SoBIg5D6k3leZ3XM5ja/bpJage7m29GslwjQMXfLdLrJqkz1y5j\ngwSvuD1Guj6KS5OOkYYhtW9Jqn+2XiNAxeXw97Gz73ZIvy7CvPzUnoPtz1QlJKzN7XmkpDiP\nFMWnCeeRBiH1R+0yQoJX/J3Z8FJSM9jQz4yO4IEgQmoPl7r7di5XCPjM55A+DCfQEfwSSEif\nTkIREtbndUj9DU/7PWOuVwf4xu+QBsvqvAXJ5doAXwUV0sebAivyPKSvC6MjeMH3kL4sjY7g\nB+9D+vT5j3w0JHzhf0jvF0hG8EYIIY1vedgcwSNBhDRSDRnBK4GE1JtmN3I2CVhXMCGV19MQ\n/ORpSEBgZrzK9eEEseyZAlxl1tkJQvpJgKvMOjtBSD8JcJVZZycI6ScBrjLr7AQh/STAVWad\nnSCknwS4yqyzE4T0kwBXmXV2gpB+EuAqs85OENJPAlxl1tkJQvpJgKvMOjtBSD8JcJVZZycI\n6ScBrjLr7ER4awx4iJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAA\nAUICBAgJEFgtpCQyUZKutfTJuh+q3lllj9f+XP+Tjq+ul2ter3N4z3ZjrZCOxTN2WGnpk907\n/7SdVfZ47e/1VymMr66Xa16vc3jPdmulkG4mumf3yNzWWfxkdxPXFzur7PHaP9eq/CcdX10v\n17xZ5+Ce7Y6VQkrM9fnnxZzWWfxk53YNO6vs79qfzbHeMxpdXR/XvF3n0J7trpVCis0j6/0X\nyFNnc64vdlbZ37U3Sf2FvOOr6+Oat+sc2rPdtVJIzTfIrrP4yWJz/Xse6OYXO6vs79rfhys3\nWF0f17xd59Ce7S5C+iguj36PWTj/tMGFlHVCCu7ZbhDSR8ZcsixN8l2OUP5pAw4pwGe7QUgT\npPnYayj/tAGHVArq2W6stHZREE9OI1/Pzip7vfbVWo2vrqdr3l+fMNZ5YNVRu4fnIzGN/B+x\ns8per31v1G64up6u+WtI/q/zwEohnYpzA1eTrLP4ySKTz0wp/hE7q+z12lcvyvHV9XTNm61o\ncM92g5kNHyX5P19anBIM5Vx7eDMbmnUO8NlurLXjeWgGOr2WRsV6Fv8x7Kyyz2tf7yaNr66f\na16tc4DPdmOtkNJiRu9KC/9Bvp6Hc3OxWmWf174OaXx1/Vzz7jqH9Ww3/B4KAQJBSIAAIQEC\nhAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQE\nCBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIyzMdvV9cX274\n6UG0q6R8NBCSC+9COgyffEIKF0+oIyMv3ZerCClcPKGOENK28YQ60r50z4fym7vrXb1rbKov\n7e6+vJ+3isrv986SyCTV7zoX2xtcj8Yc2+MtYx6xiU7N4+V/Pv93Kq5LjEnK65Lmm8KbRzIm\nPZh4if/320dIjjSRHIuAjk1Ip/LgKcl6IcX1rao7xMXviot/xcX2BufyAc7tkqL851M/pGIx\n12O1qOIBq8dvH6m4NnHydGwOITlSR3Ix0T27R+bSvs4v+bUm64Z0Ncc0S4/m2t7B5Nd2LjY3\niMw9v9WhXdLzV+f8525IxXXln1ERW70WnUcqfo9ZCMmROpI4f8Xmr97+ntwgpNjkr+g038+K\nza24g2nva3o3MKY/jG6KO1Q7dM2l8rpH83P5SPHgkW5L/d/fPEJypI6k+rt9nWfZ43o6DkLq\nDJe/3qG82NzgedgT3+/DJQ1DGvvN8JEYgpiPp86R9yEdmzNM80LKTvkxUfToL4mQ3OKpc+Rt\nSH/mcL4+XkIa3nG8qco1OXSPkfo3+hrSyzridzx1jgyPkeLeq3sYUtwe95QXby/HSIP5RcMI\nm0Zu4yHdsuYY6fr6GPgVT50jo6N25bH/LbsPj5GKW2Xn/IV+HR2169zgUA77jWyRDuacj8eN\nhlQ+0rX3SIQ0H0+dI6/nkZ6v83wkOqkOUW69F3J5q+LAJ25PHh3bA6P2Bpfm/t0l5X+emzNQ\nryH9Fb/rL4qQ5uOpc6R9kZ6jcmZDdjvkIT0Pkszxdh1uEc7PzP7KAYRTb2bD8VZebG9QzGxo\nB6470Tzv+ffuGCkpZz90H4mQ5uOpC085IQFeIaSAFJMg0phZPB4ipIBU0/KitdcDrwgpJOfn\n0dCB7ZGPCAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAA\nAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAgX8gGmp2DjC5XwAAAABJ\nRU5ErkJggg==", + "text/plain": [ + "Plot with title \"Voronoï cells topology\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df$density <- (df$edges/(df$nodes*(df$nodes-1)))\n", + "plot(df$nodes ~ df$edges,\n", + " ylab=\"Number of cell nodes\",\n", + " xlab=\"Total edges number\",\n", + " main=\"Voronoï cells topology\",\n", + " cex = rescale(df$density, to = c(1, 5)))" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "2f3c9af6-56c6-4190-996a-29089c35e5cb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAAMFBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb3Hx8fQ0NDZ2dnh4eHp6enw8PD////QFLu4AAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAZyElEQVR4nO3d20LiShBA0QQQFQH//29HwAt4gR5T3Uj1Wg9ndIQJ1bIPkEQc\nnoHJhmvfAMhASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBA\nSBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBASBBA\nSBBASBBASBBASBBASBBASBBASBBASD8b3swfyi88LlZvn397ubtz/8j9OAxnL1BwK3593d9s\nfMr2crEOPxs+LP/7wt/fxZ7Gcwt+v7v2tUL61caF9MY6/OyojeHxfy789PzTXez8HW82DOtf\n39qCf/+sX21cSG+sw8/e7iXb5TDMSi+8en2C9JuQpt8tJ/wLv7qqkN5Yh5993EveP1rd7Z7/\n7F8FbYZhsf+7+f4h6P0i68NH313l9QHreBtHX/1yt9x9unr51+/WJ199/XP3x8NsmL1s+2Ec\n5k/PR3853m0O/8R2OQ7jcvP2tc3s5Enqf2z804WfN3fjMHs4+n/Nx3a29y9XGxYXH8NzEdLP\njkMa93/OX1PYF/QwDPcvfyw/PwKdhnR8la8hnf3q7uXW4e/WxzfnI6TDtTfL9+eTH395+HQz\nDidfe3n6Nv/dxk9Hf346fDJ/vcrxdt4+Pt5SB4T0s7c71ubudQfCYhiO704vd6PV8+NrZMeP\nSOPH5ydX+XJvPf/V9y8e9gF8DelgPLpJH1fZ36jx+JPDh4+/2/in0cePL3/ezt1+G9uXxSnY\n15mHkH72cWcZxu3L56uXDx62L09dhl1B+yd348vD0vv/7/dXOn2N9PkqJ/fVC1/dfTqu9vfM\n4XgLH5/Ot7uHxWG23v9xdJXdjXjcP2a+XGR7uGu/XuF3G/904cePzey+erKdl7/aPcXbFryu\nzERIPzsKabG7B969/U/29dnc/u77tsv46ML7J0OHu9jnq5zeW89/9fn1Hr79MaSnkz+OrrK7\n4y/2DyPbw98ujr72m41/uvDiYzO7r55sZxfX3fGG+iCknx23sXtIGl7vL7uHosO6zYa3V0/H\nF37bsfD89Sqn99bzX/1u78LXT7/94/WDo5t/vLVfbPzThU83c7qd+8NHvbUkpJ+9313W8/2L\npI+72ttHuzvN/ftf7c2X26OLfL7Kl5DOfDUypDP/etHGP134x5B2ny3fotp8WdHEhPSzo7vW\n/v+1x/9b3j8ObcfXx6rnL/fDb/5PPn651Pmv/jKko5sz/pDt/2/804U/hXS6neft42EXX1e7\n7YT0s5OQhv1LgdPXSIddWXefL3z0+eernF7q/Fe/KWd3Z366ENJ+t9z7a6TV13/uNxtffP8a\n6fH9q5+fyK3uPi9Icl0N+5/e7wq7/d/zr/u5Xu7S43r8tNfu9Mrf7Rr7eKFyecfZ8Z/j/vnl\n03ghpF1Ju91p94eda0/7P+Zf//X/2vinCz8c9to9vt6Wk+3M3vc8jP+/5LdLSD8bju3ua/P3\nz/aPQuNu/9zqdTfv9yF9c5Xjcws+ffV8SHcfN+bob7+GdLB/xvl+uOe7s//+a+PfzHF0W463\n87Ig883+5ePlM30TEdLPjjs63Cnmx3em+8PTnfvD/oYfQjq9yj6G45cOp189f1/evN6SCyEt\nPsLfP5C83/rPt/C/Nv7pwq9nNixev3qynbedDV29RBLSGR8ZLd5eAqzuxi/n2i32RyB/Cun4\nKocLn/yowslXL9yX17tnmI8X99o97M6Qez/XbvZ+67+E9F8b/zTH/tnu8bl2H9s5vD4q+Rmu\nTIQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQEAYQE\nAYQEAYQEAYQEARqENMCN+cW9PD6cK2wCIgkJAggJAggJAggJAggJAggJAggJAggJAggJAggJ\nAggJAggJAggJAggJAggJAggJAggJAgipJ7/6iWhKCKkf+4qkVIeQ+jEc/ZdgQurG8OlPIgmp\nG0KqSUjdEFJNQuqH10gVCakf9tpVJKSeOI5UjZAggJAggJAggJAggJAggJAggJAggJAggJAg\ngJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAg\ngJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAggJAg\n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\nX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrlnV9ITaUdrFDe+YXUVNrBCuWdX0hN\npR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrlnV9ITaUdrFDe+YXU1NC7a38DqhFSU9e+\nH1/dtb8B1QipqWvfj6/u2t+AaoTUVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF\n1FTawQrlnV9ITaUdrFDe+YXUVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTa\nwQrlnV9ITaUdrFDe+YXUVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrl\nnV9ITaUdrFDe+YXUVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrlnV9I\nTaUdrFDe+YXUVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrlnV9ITaUd\nrFDe+YXUVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrlnV9ITaUdrFDe\n+YXUVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrlnV9ITaUdrFDe+YXU\nVNrBCuWdX0hNpR2sUN75hdRU2sEK5Z1fSE2lHaxQ3vmF1FTawQrlnV9ITaUdrFDe+YXUVNrB\nCuWdX0hNpR2sUN75hdTU0LtrfwOqERIEEBIEEBIEEFJXLGwtQuqKha1FSF2xsLUIqSsWthYh\ndcXC1iIkCCAkCCAkCCCkrljYWoTUFQtbi5C6YmFrEVJXLGwtQuqKha1FSBBASBBASBBASF2x\nsLUIqSsWthYhdcXC1tI0pKf7xf49mRbLp1qb4CwLW0vDkLazo/c3m1fZRHrXeTO6I9degD+r\nYUjLYXxc7z/arMZhWWMTcCUNQxqH9fvH62GssQm4koYhnTwv+PokwTMIbphHJAjQ9jXSarP/\nyGsksmm5+3t+9Nxttq2yCbiOtseRlvvjSOPi3nEkcnFmAwQQEgQQEgQQEgQQEgQQEgQQEgQQ\nEgQQEgQQEgQQEgQQEgQQEgQQEgQQEgT4oyHBjfnFvTw+HOiPkCCAkCCAkCCAkCCAkCCAkCCA\nkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCA\nkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCA\nkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCA\nkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCA\nkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCA\nkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCAkCCA\nkCCAkCCAkCCAkCCAkCCAkCCAkCDAP5jyo9SVxrgjAAAAAElFTkSuQmCC", + "text/plain": [ + "Plot with title \"BoxPlot of number of nodes\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "boxplot(df$nodes,\n", + " ylab=\"Number of nodes\",\n", + " main=\"BoxPlot of number of nodes\"\n", + " )" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}