## ----clipboard, echo=FALSE, results='asis'------------------------------------ if (!identical(Sys.getenv("IN_PKGDOWN"), "true")) { cat('') } ## ----Load packages for quick start, eval=TRUE, message=FALSE------------------ #--- Load required packages library("RGraphSpace") library("igraph") library("ggplot2") library("tidygraph") ## ----Quick start - 1, eval=TRUE, message=TRUE--------------------------------- # Load the bundled toy igraph object data("gtoy1", package = "RGraphSpace") # The most direct call: pass an igraph to plotGraphSpace() plotGraphSpace(gtoy1, node.labels = TRUE) ## ----Toy igraph - 1, eval=TRUE, message=TRUE---------------------------------- # Make a 'toy' igraph with 5 nodes and 4 edges; # ..either a directed or undirected graph gtoy1 <- make_star(5, mode = "out") # Check whether the graph is directed or not is_directed(gtoy1) # Check graph size vcount(gtoy1) ecount(gtoy1) # Assign 'x' and 'y' coordinates to each vertex; # ..this can be an arbitrary unit in (-Inf, +Inf) V(gtoy1)$x <- c(0, 2, -2, -4, -8) V(gtoy1)$y <- c(0, 0, 2, -4, 0) # Assign a name to each vertex V(gtoy1)$name <- paste0("n", 1:5) ## ----Toy igraph - 2, eval=TRUE, message=FALSE--------------------------------- # Plot the reconstructed 'gtoy1' using RGraphSpace plotGraphSpace(gtoy1, node.labels = TRUE) ## ----Toy igraph - 3, eval=TRUE, message=FALSE--------------------------------- # Same toy graph, as tidygraph gr <- as_tbl_graph(gtoy1) gr ## ----Toy igraph - 4, eval=TRUE, message=FALSE--------------------------------- plotGraphSpace(gr, node.labels = TRUE) ## ----Layout, eval=TRUE, message=FALSE----------------------------------------- # If your graph has no spatial coordinates, pass a layout directly: set.seed(42) GraphSpace(gtoy1, layout = igraph::layout_with_fr(gtoy1)) ## ----Node attributes, eval=TRUE, message=FALSE-------------------------------- # Node fill color (Hexadecimal or color name) V(gtoy1)$nodeFillColor <- c("red", "#00ad39", "grey80", "lightblue", "cyan") # Node line color (Hexadecimal or color name) V(gtoy1)$nodeLineColor <- "grey20" # Node color; shorthand for both fill and line, overridden by either # V(gtoy1)$nodeColor <- "grey80" # Node transparency (in [0,1]) V(gtoy1)$nodeAlpha <- 1 # Node size (numeric in [0, 100], as '%' of the plot space) V(gtoy1)$nodeSize <- c(8, 5, 5, 10, 5) # Node shape (integer code between 0 and 25; see 'help(points)') V(gtoy1)$nodeShape <- c(21, 22, 23, 24, 25) # Node line width (as in 'lwd' standard graphics; see 'help(gpar)') V(gtoy1)$nodeLineWidth <- 1 # Node labels ('NA' will omit the label) V(gtoy1)$nodeLabel <- c("V1", "V2", "V3", "V4", NA) # Node label size (in mm) V(gtoy1)$nodeLabelSize <- 3 # Node label color (Hexadecimal or color name) V(gtoy1)$nodeLabelColor <- "black" ## ----Edge attributes - 1, eval=TRUE, message=FALSE---------------------------- # Edge color (Hexadecimal or color name) E(gtoy1)$edgeColor <- c("red","green","blue","black") # Edge transparency (in [0,1]) E(gtoy1)$edgeAlpha <- 1 # Edge line width (as in 'lwd' standard graphics; see 'help(gpar)') E(gtoy1)$edgeLineWidth <- 0.8 # Edge line type (as in 'lty' standard graphics; see 'help(gpar)') E(gtoy1)$edgeLineType <- c("solid", "11", "dashed", "2124") ## ----Edge attributes - 2, eval=TRUE, message=FALSE---------------------------- # Arrowhead types in directed graphs ## Integer codes or token values: ## 0 = "--", 1 = "->", -1 = "-|" E(gtoy1)$arrowType <- 1 ## ----Edge attributes - 3, eval=TRUE, message=FALSE---------------------------- # Arrowhead types in undirected graphs ## Integer codes or token values: ## 0 = "--" ## 1 = "->", 2 = "<-", 3 = "<->", 4 = "|->" ## -1 = "-|", -2 = "|-", -3 = "|-|", -4 = "<-|" gtoy1_undir <- igraph::as_undirected(gtoy1, edge.attr.comb = "first") E(gtoy1_undir)$arrowType <- "->" # Note: in undirected graphs, this attribute overrides # the edge's orientation in the edge list and adds arrowheads # to edges that would otherwise be drawn without any ## ----A shortcut for RGraphSpace, eval=TRUE, message=FALSE--------------------- # Plot the fully attributed 'gtoy1' plotGraphSpace(gtoy1, node.labels = TRUE) ## ----Using geoms - 1, eval=TRUE, message=TRUE--------------------------------- # Load the toy graph used in the previous example data("gtoy1", package = "RGraphSpace") # Create a GraphSpace object gs <- GraphSpace(gtoy1) # Normalize the coordinates gs <- normalizeGraphSpace(gs) gs ## ----Using geoms - 2, eval=TRUE, message=FALSE-------------------------------- # Build a layered ggplot2 graph # geom_edgespace() draws edges; geom_nodespace() draws nodes # aes(label = nodeLabel) maps the 'nodeLabel' vertex attribute to node labels ggplot(gs) + geom_edgespace() + geom_nodespace(aes(label = nodeLabel)) + theme_gspace_coords(is_norm = TRUE) ## ----label='Session information', eval=TRUE, echo=FALSE----------------------- sessionInfo()