rigraphconvex-hull

how to convert a node list to an edge list in igraph?


I have a empty graph and need to plot the graph based on the convex hull with inner verticies.

My attemp is:

library(igraph)
set.seed(45)
n = 10

g <- graph.empty(n)
xy      <- cbind(runif(n), runif(n))
    
vp <- convex_hull(xy)$resverts + 1
#[1]  8 10  7  2  1

## convert node_list to edge_list

plot(g, layout=xy)

Expected result in right figure.

enter image description here

Question. How to convert a node list to an edge list in igraph??


Solution

  • You can use add_edges along with embed

    g2 <- g %>%
      add_edges(c(t(embed(vp, 2)), vp[1], vp[length(vp)])) %>%
      as.undirected()
    

    and plot(g2, layout = xy) in turn gives

    enter image description here