{"id":13858338,"url":"https://github.com/mplex/multigraph","last_synced_at":"2026-02-21T03:32:39.658Z","repository":{"id":43932980,"uuid":"65555684","full_name":"mplex/multigraph","owner":"mplex","description":"multigraph: Plot and Manipulate Multigraphs in R     ","archived":false,"fork":false,"pushed_at":"2025-05-26T10:26:00.000Z","size":2700,"stargazers_count":22,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-12-09T11:44:44.023Z","etag":null,"topics":["bipartite-graphs","bipartite-network","graph","graph-visualization","network-analysis","network-visualization","plot"],"latest_commit_sha":null,"homepage":"https://CRAN.R-project.org/package=multigraph","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mplex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-08-12T13:35:47.000Z","updated_at":"2025-05-26T10:26:04.000Z","dependencies_parsed_at":"2024-01-17T01:35:46.954Z","dependency_job_id":"7df9bdbc-7452-4c06-bf63-4f885382560b","html_url":"https://github.com/mplex/multigraph","commit_stats":{"total_commits":243,"total_committers":3,"mean_commits":81.0,"dds":"0.028806584362139898","last_synced_commit":"6b8c42ea154194b1255c36625c8c8d87d9c317b0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mplex/multigraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplex%2Fmultigraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplex%2Fmultigraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplex%2Fmultigraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplex%2Fmultigraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mplex","download_url":"https://codeload.github.com/mplex/multigraph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mplex%2Fmultigraph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29672704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T03:11:15.450Z","status":"ssl_error","status_checked_at":"2026-02-21T03:10:34.920Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bipartite-graphs","bipartite-network","graph","graph-visualization","network-analysis","network-visualization","plot"],"created_at":"2024-08-05T03:02:04.938Z","updated_at":"2026-02-21T03:32:39.618Z","avatar_url":"https://github.com/mplex.png","language":"R","funding_links":[],"categories":["R"],"sub_categories":[],"readme":"\r\n\u003c!-- [![Build Status](https://travis-ci.org/mplex/multigraph.svg?branch=master)](https://travis-ci.org/mplex/multigraph) --\u003e\r\n[![CRAN version](https://www.r-pkg.org/badges/version/multigraph?color=green)](https://cran.r-project.org/package=multigraph)\r\n[![CRAN downloads](https://cranlogs.r-pkg.org/badges/grand-total/multigraph?color=blue)](https://r-pkg.org/pkg/multigraph)\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\n### **`multigraph`**: Plot and Manipulate Multigraphs in R\r\n#### Antonio Rivero Ostoic (@mplex)\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\nTo install **`multigraph`** with the **R** console,\r\n**R** IDE, or Notebook with **R** kernel in.\r\n\r\n```r\r\n# from CRAN\r\ninstall.packages(\"multigraph\")\r\n```\r\n\r\nor\r\n\r\n```r\r\n# from Github\r\ndevtools::install_github(\"mplex/multigraph\")\r\n```\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\nWhen you load the package then **`multiplex`** is automatically invoked.\r\n\r\n```r\r\nlibrary(\"multigraph\")\r\n# Loading required package: multiplex\r\n```\r\n\r\n\u003cbr /\u003e\r\n\r\n### Multigraph: Florentine Families dataset\r\n\r\nPadgett's Florentine Families dataset is publicly available as a Ucinet DL file format. \r\nUse function `read.dl` of the **`multiplex`** package to retrieve this data.\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\n```r\r\n# read the Padgett Florentine Families dataset as a Ucinet DL file\r\n# from a public repository and storage it as an object\r\n\r\nfloflies \u003c- multiplex::read.dl(file = \"http://moreno.ss.uci.edu/padgett.dat\")\r\n# or mirror\r\nfloflies \u003c- multiplex::read.dl(file = \"http://vlado.fmf.uni-lj.si/pub/networks/data/ucinet/padgett.dat\")\r\n\r\n\r\n# adjacency matrices\r\nfloflies\r\n\r\n, , PADGM\r\n\r\n          ACCIAIUOL ALBIZZI BARBADORI BISCHERI CASTELLAN GINORI GUADAGNI LAMBERTES MEDICI PAZZI PERUZZI PUCCI RIDOLFI SALVIATI STROZZI TORNABUON\r\nACCIAIUOL         0       0         0        0         0      0        0         0      1     0       0     0       0        0       0         0\r\nALBIZZI           0       0         0        0         0      1        1         0      1     0       0     0       0        0       0         0\r\nBARBADORI         0       0         0        0         1      0        0         0      1     0       0     0       0        0       0         0\r\nBISCHERI          0       0         0        0         0      0        1         0      0     0       1     0       0        0       1         0\r\nCASTELLAN         0       0         1        0         0      0        0         0      0     0       1     0       0        0       1         0\r\nGINORI            0       1         0        0         0      0        0         0      0     0       0     0       0        0       0         0\r\nGUADAGNI          0       1         0        1         0      0        0         1      0     0       0     0       0        0       0         1\r\nLAMBERTES         0       0         0        0         0      0        1         0      0     0       0     0       0        0       0         0\r\nMEDICI            1       1         1        0         0      0        0         0      0     0       0     0       1        1       0         1\r\nPAZZI             0       0         0        0         0      0        0         0      0     0       0     0       0        1       0         0\r\nPERUZZI           0       0         0        1         1      0        0         0      0     0       0     0       0        0       1         0\r\nPUCCI             0       0         0        0         0      0        0         0      0     0       0     0       0        0       0         0\r\nRIDOLFI           0       0         0        0         0      0        0         0      1     0       0     0       0        0       1         1\r\nSALVIATI          0       0         0        0         0      0        0         0      1     1       0     0       0        0       0         0\r\nSTROZZI           0       0         0        1         1      0        0         0      0     0       1     0       1        0       0         0\r\nTORNABUON         0       0         0        0         0      0        1         0      1     0       0     0       1        0       0         0\r\n\r\n, , PADGB\r\n\r\n          ACCIAIUOL ALBIZZI BARBADORI BISCHERI CASTELLAN GINORI GUADAGNI LAMBERTES MEDICI PAZZI PERUZZI PUCCI RIDOLFI SALVIATI STROZZI TORNABUON\r\nACCIAIUOL         0       0         0        0         0      0        0         0      0     0       0     0       0        0       0         0\r\nALBIZZI           0       0         0        0         0      0        0         0      0     0       0     0       0        0       0         0\r\nBARBADORI         0       0         0        0         1      1        0         0      1     0       1     0       0        0       0         0\r\nBISCHERI          0       0         0        0         0      0        1         1      0     0       1     0       0        0       0         0\r\nCASTELLAN         0       0         1        0         0      0        0         1      0     0       1     0       0        0       0         0\r\nGINORI            0       0         1        0         0      0        0         0      1     0       0     0       0        0       0         0\r\nGUADAGNI          0       0         0        1         0      0        0         1      0     0       0     0       0        0       0         0\r\nLAMBERTES         0       0         0        1         1      0        1         0      0     0       1     0       0        0       0         0\r\nMEDICI            0       0         1        0         0      1        0         0      0     1       0     0       0        1       0         1\r\nPAZZI             0       0         0        0         0      0        0         0      1     0       0     0       0        0       0         0\r\nPERUZZI           0       0         1        1         1      0        0         1      0     0       0     0       0        0       0         0\r\nPUCCI             0       0         0        0         0      0        0         0      0     0       0     0       0        0       0         0\r\nRIDOLFI           0       0         0        0         0      0        0         0      0     0       0     0       0        0       0         0\r\nSALVIATI          0       0         0        0         0      0        0         0      1     0       0     0       0        0       0         0\r\nSTROZZI           0       0         0        0         0      0        0         0      0     0       0     0       0        0       0         0\r\nTORNABUON         0       0         0        0         0      0        0         0      1     0       0     0       0        0       0         0\r\n```\r\n\r\n\u003cbr /\u003e \r\n\r\nObject `floflies` represents the Florentine families network where `\"PADGM\"` are marriage relations and `\"PADGB\"` correspond to business ties among the 16 actors.\r\n\r\n\u003cbr /\u003e \r\n\r\n\r\n### Plotting multigraphs\r\n\r\nGraph of the Florentine families network using `multigraph` function with the default circular layout:\r\n\r\n```r\r\nmultigraph(floflies)\r\n```\r\n![Default layout of `multigraph`](figs/floflies.png)\r\n\r\n\r\n\u003cbr /\u003e \r\n\r\nCheck also out the [vector image](figs/floflies.pdf) of this multigraph, and *note that with vector graphics the rendering may vary according to the device used.*\r\n\r\n\u003cbr /\u003e \r\n\r\n\r\n#### Force-directed layout\r\n\r\nBesides a circular layout, another possibility is to apply a *force-directed* layout for the visualization of the multiplex network. \r\nFunction `multigraph` provides a number of arguments for graph, edges, and nodes levels, which can be recorded in an object list \r\nnamed `scp` to be used in the `scope` argument of the function.\r\n\r\n\r\n\r\n\u003cbr /\u003e \r\n\r\n\r\n```r\r\n# define scope of node / edge / graph characteristics as list object\r\nscp \u003c- list(directed = FALSE, cex = 6, fsize = 7, pos = 0, vcol = 8, ecol = 1, lwd = 2, bwd = .5)\r\n\r\n# plot graph with customized format\r\nmultigraph(floflies, layout = \"force\", seed = 2, scope = scp)\r\n```\r\n![Force directed layout of `multigraph`](figs/floflies-force.png)\r\n[vector image](figs/floflies-force.pdf)\r\n\r\n\u003cbr /\u003e\r\n\u003cbr /\u003e \r\n\r\n\r\n```r\r\n# plot graph with customized format\r\nmultigraph(floflies, layout = \"force\", seed = 2, scope = scp, lty = 2:1, pch = 13)\r\n```\r\n![Force directed layout of `multigraph` different shapes](figs/floflies-force2.png)\r\n[vector image](figs/floflies-force2.pdf)\r\n\r\n\u003cbr /\u003e\r\n\r\nNote that when the graph is depicted as *undirected*, then the reciprocal ties by default are collapsed. \r\nYou can prevent this to happen by setting the argument `collRecip`  to  `FALSE`. \r\nSome arguments such as `cex`, `lwd`, `lty`, `pch` are graphical parameters of the **`graphics`** package \r\nto set the shape of both the vertices and the edges. \r\nOther arguments like `bwd` to specify the width of the bundle type, `fsize` for the size of the font used in node labels, \r\nor `ecol` and `vcol` for the color of respectively edges and vertices are complementary in **`multigraph`**. \r\nMoreover, by setting the `pos` argument to `0`, the actor labels are placed in the middle of the nodes.\r\n\r\n\r\n\u003cbr /\u003e \r\n\u003cbr /\u003e \r\n\r\n\r\n## Multigraphs with Actor Attributes\r\n\r\n\r\nSome actor attributes of the Florentine Families network.\r\n\r\n```r\r\nflofliesatt \u003c- multiplex::read.dl(file = \"http://moreno.ss.uci.edu/padgw.dat\")\r\n# or mirror\r\nflofliesatt \u003c- multiplex::read.dl(file = \"http://vlado.fmf.uni-lj.si/pub/networks/data/ucinet/padgw.dat\")\r\n\r\n```\r\n\r\nLook at `flofliesatt` that storages attribute information\r\n\r\n\r\n```r\r\nflofliesatt\r\n\r\n          WEALTH #PRIORS #TIES\r\nACCIAIUOL     10      53     2\r\nALBIZZI       36      65     3\r\nRIDOLFI       27      38     4\r\nSTROZZI      146      74    29\r\nBARBADORI     55       0    14\r\nBISCHERI      44      12     9\r\nCASTELLAN     20      22    18\r\nGUADAGNI       8      21    14\r\nLAMBERTES     42       0    14\r\nMEDICI       103      53    54\r\nPAZZI         48       0     7\r\nPERUZZI       49      42    32\r\nSALVIATI      10      35     5\r\nTORNABUON     48       0     7\r\nGINORI        32       0     9\r\nPUCCI          3       0     1\r\n```\r\n\r\n\u003cbr /\u003e \r\n\r\n\r\nHowever, in order to depict the multigraph of `floflies` with the information contained in `flofliesatt`, be sure that the order of the actors matches in both objects.\r\n\r\n\r\n```r\r\nflofliesatt \u003c- flofliesatt[order(rownames(flofliesatt)), ]\r\n\r\nflofliesatt\r\n\r\n          WEALTH #PRIORS #TIES\r\nACCIAIUOL     10      53     2\r\nALBIZZI       36      65     3\r\nBARBADORI     55       0    14\r\nBISCHERI      44      12     9\r\nCASTELLAN     20      22    18\r\nGINORI        32       0     9\r\nGUADAGNI       8      21    14\r\nLAMBERTES     42       0    14\r\nMEDICI       103      53    54\r\nPAZZI         48       0     7\r\nPERUZZI       49      42    32\r\nPUCCI          3       0     1\r\nRIDOLFI       27      38     4\r\nSALVIATI      10      35     5\r\nSTROZZI      146      74    29\r\nTORNABUON     48       0     7\r\n```\r\n\r\nNow ` flofliesatt` matches ` floflies` for the plotting.\r\n\r\n\r\n\u003cbr /\u003e \r\n\u003cbr /\u003e \r\n\r\nRedefine the scope in `scp` to depict this network in a way that the size of the vertices reflects the wealth of the actors.\r\n\r\n```r\r\n# redefine scope of node / edge / graph characteristics \r\nscp \u003c- list(directed = FALSE, fsize = 8, pos = 0, lwd = 2, ecol = 1, vcol = 5)\r\n\r\n# plot graph with customized format and actor attributes\r\nmultigraph(floflies, layout = \"force\", seed = 1, scope = scp, cex = flofliesatt[,1])\r\n```\r\n![Force directed layout layout of `multigraph` with attributes](figs/flofliesatt-force.png)\r\n[vector image](figs/flofliesatt-force.pdf)\r\n\r\n\r\n\u003cbr /\u003e \r\n\r\nThe `clu` argument serves to establish the clustering of the network with three classes of actors differentiated by the colors of the vertices.\r\n\r\n\r\n```r\r\n# define scope of node / edge / graph characteristics \r\nscp2 \u003c- list(directed = FALSE, fsize = 8, pos = 0, lwd = 2, ecol = \"white\", \r\n+  vcol = c(\"orange\",\"blue\",\"white\"), clu = c(1,1,1,2,2,1,2,2,1,1,2,3,1,1,2,1), alpha = c(.5, 1, .2))\r\n\r\n# plot graph with customized format and actor attributes\r\nmultigraph(floflies, layout = \"force\", seed = 1, scope = scp2, cex = flofliesatt[,1], bg = 1)\r\n```\r\n![Force directed layout of `multigraph` with clustering](figs/flofliesatt-force2.png)\r\n[vector image](figs/flofliesatt-force2.pdf)\r\n\r\nAs a result, there are different ways to set the colors, and the `alpha` vector argument serves to set the transparency of colors in vertices, \r\nedges, and the graph background.\r\n\r\n\r\n\r\n\u003cbr /\u003e \r\n\r\n___\r\n\r\n\u003cbr /\u003e \r\n\r\n\r\n### Bipartite Graph: Southern Women dataset\r\n\r\nSupport for the visualization of two-mode networks is also given by **`multigraph`**, and for the Southern Women classic dataset \r\nto illustrate some of the layout options with this package.\r\n\r\n```r\r\n# read the Ucinet DL file of Davis, Gardner, Gardner Southern Women\r\n# dataset from a public repository and storage it as an object\r\n\r\nswomen \u003c- multiplex::read.dl(file = \"http://moreno.ss.uci.edu/davis.dat\")\r\n# or mirror\r\nswomen \u003c- multiplex::read.dl(file = \"http://vlado.fmf.uni-lj.si/pub/networks/data/ucinet/davis.dat\")\r\n\r\n\r\n### take a look\r\nswomen\r\n\r\n          E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14\r\nEVELYN     1  1  1  1  1  1  0  1  1   0   0   0   0   0\r\nLAURA      1  1  1  0  1  1  1  1  0   0   0   0   0   0\r\nTHERESA    0  1  1  1  1  1  1  1  1   0   0   0   0   0\r\nBRENDA     1  0  1  1  1  1  1  1  0   0   0   0   0   0\r\nCHARLOTTE  0  0  1  1  1  0  1  0  0   0   0   0   0   0\r\nFRANCES    0  0  1  0  1  1  0  1  0   0   0   0   0   0\r\nELEANOR    0  0  0  0  1  1  1  1  0   0   0   0   0   0\r\nPEARL      0  0  0  0  0  1  0  1  1   0   0   0   0   0\r\nRUTH       0  0  0  0  1  0  1  1  1   0   0   0   0   0\r\nVERNE      0  0  0  0  0  0  1  1  1   0   0   1   0   0\r\nMYRA       0  0  0  0  0  0  0  1  1   1   0   1   0   0\r\nKATHERINE  0  0  0  0  0  0  0  1  1   1   0   1   1   1\r\nSYLVIA     0  0  0  0  0  0  1  1  1   1   0   1   1   1\r\nNORA       0  0  0  0  0  1  1  0  1   1   1   1   1   1\r\nHELEN      0  0  0  0  0  0  1  1  0   1   1   1   1   1\r\nDOROTHY    0  0  0  0  0  0  0  1  1   1   0   1   0   0\r\nOLIVIA     0  0  0  0  0  0  0  0  1   0   1   0   0   0\r\nFLORA      0  0  0  0  0  0  0  0  1   0   1   0   0   0\r\n```\r\n\r\nIn this case, the information can be contained in a data frame or an array as before.\r\n\r\n\r\n\u003cbr/\u003e\r\n\r\n\r\n#### Plotting two-mode data\r\n\r\nFunction `bmgraph` serves to plot two-mode data or an affiliation network as a bipartite graph.\r\n\r\n```r\r\nbmgraph(swomen)\r\n```\r\n![Default layout of `bmgraph`](figs/swomen.png)\r\n[vector image](figs/swomen.pdf)\r\n\r\n\r\nIn this case, actor and events have different shape by default.\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\nSimilarly to `multigraph` the color and shape of edges and vertices can be modified by equal arguments, and we can mirror the *X* axis of the plot.\r\n\r\n```r\r\n# define scope of node / edge / graph characteristics as list object\r\nscp3 \u003c- list(cex = 3, fsize = 8, pch = c(19, 15), lwd = 1.5, vcol = 2:3, fsize = 7)\r\n\r\n# Plot bipartite graph with customized format and horizontal reflection\r\nbmgraph(swomen, scope = scp3, mirrorX = TRUE)\r\n```\r\n![Mirror X of `bmgraph`](figs/swomen2.png)\r\n[vector image](figs/swomen2.pdf)\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\nOption `bip3` splits the actors in two columns, whereas `bip3e` will split the events.\r\n\r\n\r\n```r\r\nbmgraph(swomen, layout = \"bip3\", scope = scp3)\r\n```\r\n![Mirror X of `bmgraph`](figs/swomen3.png)\r\n[vector image](figs/swomen3.pdf)\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\nBipartite graph with clustering information of Southern Women network as in Batagelj et al, 2014 (p. 29).\r\n\r\n```r\r\n# clustering of network members for permutation \r\nclup \u003c- list(c(8,9,7,6,1,4,2,3,5,17,18,13,16,11,10,15,14,12),\r\n        c(5,1,4,2,3,9,8,7,6,11,12,10,13,14))\r\n\r\n# clustering of network members for layout \r\nclunm \u003c- list(c(rep(1,9),rep(2,9)),c(rep(1,5),rep(2,4),rep(3,5)))\r\n\r\n# bipartite graph with clustering\r\nbmgraph(swomen, layout = \"bipc\", scope = scp3, clu = clunm, perm = clup)\r\n```\r\n![clustering `bmgraph`](figs/swomenc.png)\r\n[vector image](figs/swomenc.pdf)\r\n\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\nThe binomial projection of a two-mode dataset allows obtaining a force directed layout that in this case the image is clockwise rotated 65 degrees.\r\n\r\n```r\r\nbmgraph(swomen, layout = \"force\", seed = 1, scope = scp3, rot = 65)\r\n```\r\n![Force directed layout of `bmgraph`](figs/swomen-force.png)\r\n[vector image](figs/swomen-force.pdf)\r\n\r\n\r\n\u003cbr /\u003e\r\n\u003cbr /\u003e\r\n\r\nFunction `bmgraph` stands for a bipartite *multigraph* because the actors can be affiliated by different means.\r\n\r\n```r\r\nbmgraph(floflies, ecol = 1)\r\n```\r\n![bipartite graph of `floflies`](figs/floflies-bmgraph.png)\r\n[vector image](figs/floflies-bmgraph.pdf)\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\n\u003cbr /\u003e\r\n\r\n### Cayley graph\r\n\r\nSee [Plot partially ordered semigroup](https://htmlpreview.github.io/?https://github.com/mplex/sunbelt2023/blob/main/pres/Multilevel%20Structure%20of%20G20%20Trade%20Network.html#plot-partially-ordered-semigroup)\r\n\r\nor \r\n\r\n```r\r\n?ccgraph\r\n```\r\n\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\n\u003cbr /\u003e\r\n\r\n### Multilevel graph\r\n\r\nSee [Multilevel Structure of G20 Trade Network](https://htmlpreview.github.io/?https://github.com/mplex/sunbelt2023/blob/main/pres/Multilevel%20Structure%20of%20G20%20Trade%20Network.html#multilevel-structures)\r\n\r\n\r\nor\r\n\r\n```r\r\n?mlgraph\r\n```\r\n\r\n\u003cbr /\u003e\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\n### Miscellaneous: Time and geography\r\n\r\nFunction `multigraph` with argument `\"new\"` allows superimposing graphs over a cartographical map, for example, as with the animated plot below produced together with packages [`gifski`](https://CRAN.R-project.org/package=gifski) and [`sdam`](https://CRAN.R-project.org/package=sdam) that represents a network dynamic in ancient Mediterranean Sea (cf. [Shipwrecks network in the Mediterranean Basin](https://htmlpreview.github.io/?https://github.com/sdam-au/R_code/blob/master/HTML/Shipwrecks%20Network%20in%20the%20Mediterranean%20Basin.html) ).\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\n```r\r\n# pseudo-code\r\nsdam::plot.map(type=\"med\", new=TRUE)\r\nmultigraph(net, ..., new=TRUE)\r\n```\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\n![Time and geography network animated](figs/shipwrecks-animation.gif)\r\n\r\n\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\n\r\n\r\n##### **Notice** for **R** (\u003e4.0.0), use **`multiplex`** version 3 or higher.\r\n\r\n\u003cbr /\u003e\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmplex%2Fmultigraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmplex%2Fmultigraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmplex%2Fmultigraph/lists"}