## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(igraph) library(graphonmix) library(ggplot2) ## ----------------------------------------------------------------------------- mat <- matrix(c(0.9, 0.01, 0.02, 0.01, 0.8, 0.03, 0.02, 0.03, 0.7), nrow = 3, byrow = TRUE) W <- sbm_graphon(mat, 100) plot_graphon(W) + coord_fixed(ratio = 1) ## ----------------------------------------------------------------------------- gr <- sample_graphon(W, 100) plot(gr, vertex.size = 3, vertex.label = NA, main = "Graphon sampling") ## ----------------------------------------------------------------------------- gr1 <- sample_graphette(W, n= 100) plot(gr1, vertex.size = 3, vertex.label = NA, main = "Graphette sampling") ## ----------------------------------------------------------------------------- rho_n <- function(n) exp( -((n-100)/50 )) W250 <- rho_n(250)*W W300 <- rho_n(300)*W gr1 <- sample_graphon(W, 100) gr2 <- sample_graphon(W250, 250) gr3 <- sample_graphon(W300, 300) g1 <- plot_graphon(W) + coord_fixed(ratio = 1) g2 <- plot_graphon(W250) + coord_fixed(ratio = 1) g3 <- plot_graphon(W300) + coord_fixed(ratio = 1) gridExtra::grid.arrange(g1, g2, g3, nrow = 1) ## ----------------------------------------------------------------------------- par(mfrow = c(1,3)) plot(gr1, vertex.size = 3, vertex.label = NA, main = "From W") plot(gr2, vertex.size = 3, vertex.label = NA, main = "From W250") plot(gr3, vertex.size = 3, vertex.label = NA, main = "From W300") par(mfrow = c(1,1)) ## ----------------------------------------------------------------------------- gr4 <- sample_sparse_graphon(W, rho_n, n = 250) gr5 <- sample_sparse_graphon(W, rho_n, n = 300) par(mfrow = c(1,2)) plot(gr4, vertex.size = 3, vertex.label = NA, main = "n = 250") plot(gr5, vertex.size = 3, vertex.label = NA, main = "n = 300") par(mfrow = c(1,1)) ## ----------------------------------------------------------------------------- gr6 <- sample_graphette(W, rho_n, n = 250) gr7 <- sample_graphette(W, rho_n, n = 300) par(mfrow = c(1,2)) plot(gr6, vertex.size = 3, vertex.label = NA, main = "n = 250") plot(gr7, vertex.size = 3, vertex.label = NA, main = "n = 300") par(mfrow = c(1,1)) ## ----------------------------------------------------------------------------- gr8 <- sample_graphette(W, rho_n, "star_f1", n = 250, t_or_p = 2) gr9 <- sample_graphette(W, rho_n, "star_f1", n = 300, t_or_p = 2) par(mfrow = c(1,2)) plot(gr8, vertex.size = 3, vertex.label = NA, main = "n = 250") plot(gr9, vertex.size = 3, vertex.label = NA, main = "n = 300") par(mfrow = c(1,1)) ## ----------------------------------------------------------------------------- rho2 <- function(n)10/n gr10 <- sample_graphette(W, rho2, "star_f1", n = 250, t_or_p = 2) gr11 <- sample_graphette(W, rho2, "star_f1", n = 300, t_or_p = 2) par(mfrow = c(1,2)) plot(gr10, vertex.size = 3, vertex.label = NA, main = "n = 250") plot(gr11, vertex.size = 3, vertex.label = NA, main = "n = 300") par(mfrow = c(1,1)) ## ----------------------------------------------------------------------------- gr <- sample_graphette(W, rho_n, "add_rings", n = 100, t_or_p = 0.5, ring_sizes = c(10:15)) plot(gr, vertex.size = 3, vertex.label = NA) ## ----------------------------------------------------------------------------- gr <- sample_graphette(W, rho_n, "remove_cycles", n = 200) plot(gr, vertex.size = 3, vertex.label = NA)