Draw a node-link diagram on a PlotSpec from vgraph(). mark_edges() draws
the edges (straight lines, batched), mark_nodes() the vertices (points), and
mark_node_text() the vertex labels. Draw order is fixed regardless of the
order you pipe them: edges under nodes under labels. Edges default to the edge
table (vgraph()'s edge_data), nodes and labels to the node table; the
x/y/xend/yend/label/name columns those tables carry are mapped
automatically, so bare mark_edges() |> mark_nodes() just works.
Usage
mark_edges(
plot,
...,
color = NULL,
linewidth = NULL,
alpha = NULL,
arrow = FALSE,
blend = NULL,
effects = list(),
sketch = NULL,
data = NULL
)
mark_nodes(
plot,
...,
size = NULL,
shape = NULL,
fill = NULL,
color = NULL,
alpha = NULL,
blend = NULL,
effects = list(),
sketch = NULL,
data = NULL
)
mark_node_text(
plot,
...,
label = NULL,
color = NULL,
size = NULL,
alpha = NULL,
blend = NULL,
data = NULL
)Arguments
- plot
- ...
Encodings mapping node/edge attributes to aesthetics. Nodes:
size,color/fill,shape,alpha. Edges:color,linewidth,alpha. The position channels are supplied byvgraph()and need not be mapped.- linewidth
For
mark_edges(), the edge width; a constant or (viascale_edge_width()) a mapped expression such aslinewidth = weight.- arrow
For
mark_edges(),TRUEto draw an arrowhead at each edge's target end (directed graphs). Edges are capped exactly at each endpoint's node boundary (per vertex, at any size/resolution), so the head sits on the node edge; self-loops are drawn as teardrop loops sized to the node, with the head on the node boundary.- blend
Optional blend mode (see
mark_point()).- effects
A list of layer render effects (
glow(),outline(),shadow()) applied to the mark at draw time.- sketch
A
sketch()spec giving the layer a hand-drawn look,NA/FALSEto force it crisp, orNULL(default) to inherit.- data
Optional layer data; overrides the default table.
- size, shape
For
mark_nodes(), the node size (mm) / shape; a constant or a mapped expression.- fill, color, alpha
Convenience aesthetics; a constant or a mapped expression. For nodes,
fill(orcolor) is the marker colour.- label
For
mark_node_text(), the label expression (default the vertexname).
Value
The modified PlotSpec.
Details
These are thin over the point / segment / text marks; igraph need not be
installed to use them (only vgraph() needs it).
Examples
if (FALSE) { # \dontrun{
g <- igraph::make_graph("Zachary")
vgraph(g) |>
mark_edges(alpha = 0.5) |>
mark_nodes(size = 4, fill = "steelblue")
} # }
