Add nodes and edges to a sigmajs graph.

sg_nodes(sg, data, ...)

sg_edges(sg, data, ...)

sg_edges2(sg, data)

sg_nodes2(sg, data)



An object of class sigmajsas intatiated by sigmajs.


Data.frame (or list) of nodes or edges.


Any column name, see details.


nodes: Must pass id (unique), size and color. If color is omitted than specify defaultNodeColor in sg_settings otherwise nodes will be transparent. Ideally nodes also include x and y, if they are not passed then they are randomly generated, you can either get these coordinates with sg_get_layout or sg_layout.

edges: Each edge also must include a unique id as well as two columns named source and target which correspond to node ids. If an edges goes from or to an id that is not in node id.


node also takes a SharedData.


  • Functions ending in 2 take a list like the original sigma.js JSON.

  • Other functions take the arguments described above.


nodes <- sg_make_nodes() edges <- sg_make_edges(nodes) sg <- sigmajs() %>% sg_nodes(nodes, id, label, size, color) %>% sg_edges(edges, id, source, target) sg # no layout # layout sg %>% sg_layout() # directed graph edges$type <- "arrow" # directed # omit color sigmajs() %>% sg_nodes(nodes, id, label, size) %>% sg_edges(edges, id, source, target, type) %>% sg_settings(defaultNodeColor = "#141414") # all source and target are present in node ids all(c(edges$source, edges$target) %in% nodes$id)
#> [1] TRUE