The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
The goal of graphonmix is to generate \((U,W)\)-mixture graphs. These graphs are generated from a standard dense graphon \(W\) and a disjoint clique graphon \(U\), which acts as the sparse graphon. More details can be found at (Kandanaarachchi and Ong 2025).
You can install the development version of graphonmix from GitHub with:
# install.packages("pak")
::pak("sevvandi/graphonmix") pak
This is a basic example on how to sample a \((U,W)\)-mixture graph.
library(graphonmix)
library(igraph)
#>
#> Attaching package: 'igraph'
#> The following objects are masked from 'package:stats':
#>
#> decompose, spectrum
#> The following object is masked from 'package:base':
#>
#> union
# create the dense graphon W(x,y) = 0.1
<- matrix(0.1, nrow = 100, ncol = 100)
W # create the sparse part - a disjoint set of stars
<- c(0.5, 0.3, 0.2)
wts # single function to generate a graph mixture
<- sample_mixed_graph(W, wts, nd = 100, ns = 300, p = 0.5, option = 2)
gr1 plot(gr1,
edge.curved = 0.3,
vertex.size = degree(gr1)*0.1,
edge.color = "lightgray", # Light colored edges
vertex.label = NA,
vertex.color = "lightblue",
main = "(U,W) Graph mixture"
)
Or you can generate the two graphs separately and join them.
# sample the dense part and plot
<- sample_graphon(W, 100)
grdense plot(grdense,
edge.curved = 0.3,
vertex.size = degree(grdense)*0.1,
edge.color = "lightgray", # Light colored edges
vertex.label = NA,
vertex.color = "lightblue",
main = "Dense Part"
)
# sample the sparse part and plot
<- generate_star_union(wts, 300)
grsparse plot(grsparse,
edge.curved = 0.3,
vertex.size = degree(grsparse)*0.1,
edge.color = "lightgray", # Light colored edges
vertex.label = NA,
vertex.color = "lightblue",
main = "Sparse Part"
)
# join the two graphs and plot
<- graph_join(grdense, grsparse, option = 2)
gr2 plot(gr2,
edge.curved = 0.3,
vertex.size = degree(gr2)*0.1,
edge.color = "lightgray", # Light colored edges
vertex.label = NA,
vertex.color = "lightblue",
main = "(U,W) Graph mixture"
)
A big thank you to Sashenka Fernando for helping me with the hex sticker.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.