
Base R Graphics Network Plotting
Source:R/plot-bootstrap.R, R/plot-communities.R, R/plot-mlvar.R, and 3 more
splot.RdPlots a network with base R graphics (polygon(),
lines(), xspline()). splot() uses the same
snake_case argument names as the grid-based soplot().
Result objects of tna, Nestimate and cograph analyses are plotted by the
methods described in Details.
Usage
splot.net_bootstrap(
x,
display = c("styled", "significant", "full"),
show_ci = FALSE,
show_stars = TRUE,
inherit_style = TRUE,
...
)
splot.tna_communities(x, ...)
splot.cograph_communities(x, ...)
splot.net_mlvar(x, type = "temporal", combined = TRUE, ...)
splot.netobject(x, ...)
splot.boot_glasso(
x,
use_thresholded = TRUE,
show_inclusion = TRUE,
inclusion_threshold = NULL,
edge_positive_color = "#2E7D32",
edge_negative_color = "#C62828",
...
)
splot.wtna_mixed(x, type = c("overlay", "group"), ...)
splot.net_permutation(
x,
show_nonsig = FALSE,
show_effect = FALSE,
edge_positive_color = "#009900",
edge_negative_color = "#C62828",
edge_nonsig_color = "#888888",
edge_nonsig_style = 2L,
show_stars = TRUE,
...
)
splot(
x,
layout = "oval",
directed = NULL,
seed = 42,
theme = NULL,
node_size = NULL,
node_size2 = NULL,
scale_nodes_by = NULL,
node_size_range = c(2, 8),
scale_nodes_scale = 1,
node_shape = "circle",
node_svg = NULL,
svg_preserve_aspect = TRUE,
node_fill = NULL,
node_border_color = NULL,
node_border_width = 1,
node_alpha = 1,
labels = TRUE,
label_abbrev = NULL,
label_size = NULL,
label_color = "black",
label_position = "center",
label_fontface = "plain",
label_fontfamily = "sans",
label_hjust = 0.5,
label_vjust = 0.5,
label_angle = 0,
pie_values = NULL,
pie_colors = NULL,
pie_border_width = NULL,
donut_fill = NULL,
donut_values = NULL,
donut_color = NULL,
donut_colors = NULL,
donut_border_color = NULL,
donut_border_width = NULL,
donut_inner_border_color = NULL,
donut_inner_border_width = NULL,
donut_outer_border_color = NULL,
donut_line_type = "solid",
donut_border_lty = NULL,
donut_inner_ratio = 0.8,
donut_bg_color = "gray90",
donut_shape = "circle",
donut_show_value = FALSE,
donut_value_size = 0.8,
donut_value_color = "black",
donut_value_fontface = "bold",
donut_value_fontfamily = "sans",
donut_value_digits = 2,
donut_value_prefix = "",
donut_value_suffix = "",
donut_empty = TRUE,
donut2_values = NULL,
donut2_colors = NULL,
donut2_inner_ratio = 0.4,
edge_color = NULL,
edge_width = NULL,
edge_size = NULL,
esize = NULL,
edge_width_range = c(0.1, 4),
edge_scale_mode = "linear",
edge_cutoff = NULL,
cut = NULL,
edge_alpha = 0.8,
edge_labels = FALSE,
edge_label_size = 0.8,
edge_label_color = "gray30",
edge_label_bg = NA,
edge_label_position = 0.5,
edge_label_offset = 0,
edge_label_fontface = "plain",
edge_label_shadow = FALSE,
edge_label_shadow_color = "gray40",
edge_label_shadow_offset = 0.5,
edge_label_shadow_alpha = 0.5,
edge_label_halo = TRUE,
edge_style = 1,
curvature = 0,
curve_scale = TRUE,
curve_shape = 0,
curve_pivot = 0.5,
curves = TRUE,
arrow_size = 1,
arrow_angle = pi/6,
show_arrows = TRUE,
bidirectional = FALSE,
loop_rotation = NULL,
show = NULL,
edge_start_style = "solid",
edge_start_length = 0.15,
edge_start_dot_density = "12",
edge_ci = NULL,
edge_ci_scale = 2,
edge_ci_alpha = 0.15,
edge_ci_color = NA,
edge_ci_style = 2,
edge_ci_arrows = FALSE,
edge_priority = NULL,
edge_label_style = "none",
edge_label_template = NULL,
edge_label_digits = 2,
edge_label_oneline = TRUE,
edge_label_ci_format = "bracket",
edge_label_leading_zero = TRUE,
edge_ci_lower = NULL,
edge_ci_upper = NULL,
edge_label_p = NULL,
edge_label_p_diff = NULL,
edge_label_p_digits = 3,
edge_label_p_prefix = "p=",
edge_label_stars = NULL,
weight_digits = 2,
threshold = 0,
minimum = 0,
maximum = NULL,
edge_positive_color = "#2E7D32",
positive_color = NULL,
edge_negative_color = "#C62828",
negative_color = NULL,
edge_duplicates = NULL,
title = NULL,
title_size = 1.2,
margins = c(0.1, 0.1, 0.1, 0.1),
background = "white",
rescale = TRUE,
layout_scale = 1,
layout_margin = 0.15,
aspect = TRUE,
use_pch = FALSE,
usePCH = NULL,
scaling = "default",
align_panels = FALSE,
legend = FALSE,
legend_position = "topright",
legend_size = 0.8,
legend_edge_colors = TRUE,
legend_node_sizes = FALSE,
groups = NULL,
node_names = NULL,
tna_styling = NULL,
psych_styling = NULL,
predictability = NULL,
i = NULL,
filetype = "default",
filename = file.path(tempdir(), "splot"),
width = 7,
height = 7,
res = 600,
...
)Arguments
- x
Network input. Can be:
A square numeric matrix (adjacency/weight matrix)
A data frame with edge list (from, to, optional weight columns)
An igraph object
A CographNetwork or cograph_network object
A tna object (from tna package)
A group_tna object (list of tna objects from tna package). Use parameter
ito select a specific group, or omit to plot all groups.A result object handled by one of the methods:
net_bootstrap,net_permutation,boot_glasso,netobject,net_mlvarandwtna_mixedfrom Nestimate,tna_communitiesfrom tna, andcograph_communities.
- display
Display mode of
splot.net_bootstrap():"styled"(default),"significant"or"full".- show_ci
Logical. Add the confidence bounds to the edge labels of a
net_bootstrapplot. DefaultFALSE.- show_stars
Logical. Show significance stars in the edge labels of a
net_bootstrapornet_permutationplot. DefaultTRUE.- inherit_style
Logical. Take labels, layout and colors from the original network of a
net_bootstrapobject. DefaultTRUE.- ...
For
splot(), additional arguments passed to the layout function. For the methods, additional arguments passed tosplot(), or toplot_mixed_network()forsplot.wtna_mixed()withtype = "overlay". Arguments supplied here override the styling defaults of a method. For a multi-panel input, such as agroup_tna,group_tna_bootstrap,group_tna_permutationornet_permutation_groupobject,combined = TRUE(default) arranges the panels withgraphics::par(mfrow = ...), andcombined = FALSEplots them into a layout set up beforehand, for example withpanel_layout(). It has no effect for a single network.- type
For a
net_mlvarobject, the network to plot:"temporal"or"t"(default),"contemporaneous"or"c","between"or"b", or"all"or"a"for a 1 x 3 panel, matched without regard to case. For awtna_mixedobject,"overlay"(default) plots both networks on one canvas withplot_mixed_network, the co-occurrences as straight undirected edges and the transitions as curved directed edges, and"group"plots each network in its own panel.- combined
Logical. With
type = "all"for anet_mlvarobject,TRUE(default) arranges the three panels in a 1 x 3 grid, andFALSEplots them into a layout set up beforehand, for example withpanel_layout(). Ignored for a single network.- use_thresholded
Logical. Plot
$thresholded_pcorof aboot_glassoobject, or$original_pcorwhenFALSE. DefaultTRUE.- show_inclusion
Logical. Map the inclusion probability of each edge of a
boot_glassoobject to its opacity, from 0.2 to 1. DefaultTRUE.- inclusion_threshold
Numeric. Minimum inclusion probability of a plotted
boot_glassoedge.NULL(default) uses1 - x$alpha, or 0.95 whenx$alphais absent.- edge_positive_color
Color for positive weights. The default is
"#2E7D32", and"#009900"forsplot.net_permutation().- edge_negative_color
Color for negative weights. Default
"#C62828".- show_nonsig
Logical. Show non-significant edges of a
net_permutationplot. DefaultFALSE.- show_effect
Logical. Show the effect size in parentheses in the edge labels of a
net_permutationplot. DefaultFALSE.- edge_nonsig_color
Color of non-significant edges. Default
"#888888".- edge_nonsig_style
Line type of non-significant edges. Default 2.
- layout
Layout algorithm: "oval" (default), "circle", "spring", "groups", "target" (qgraph-style focal-node BFS levels; node of interest via
target), "saqr" (Start/End transition flow;start/end/jitter), or a matrix of x,y coordinates, or an igraph layout function. Also supports igraph two-letter codes: "kk", "fr", "drl", "mds", "ni", etc.- directed
Logical. Force directed interpretation. NULL for auto-detect.
- seed
Random seed for deterministic layouts. Default 42.
- theme
Theme name: "classic", "dark", "minimal", "colorblind", etc.
- node_size
Node size(s). Single value or vector. Default NULL, which resolves to 7 with default scaling.
- node_size2
Secondary node size for ellipse/rectangle height.
- scale_nodes_by
Scale node sizes by a centrality measure. Can be:
A measure name: "degree", "strength", "betweenness", "closeness", "eigenvector", "pagerank", "authority", "hub", "harmonic", etc.
A directional shorthand: "indegree", "outdegree", "instrength", "outstrength", "incloseness", "outcloseness", "inharmonic", "outharmonic", "ineccentricity", "outeccentricity".
A list with measure and parameters: list("pagerank", damping = 0.9)
When used, node_size is ignored. Use node_size_range to control the min/max size. Default NULL (no centrality scaling).
- node_size_range
Size range for centrality-based scaling. Numeric vector c(min_size, max_size). Default c(2, 8).
- scale_nodes_scale
Dampening exponent for centrality-based sizing. Values < 1 compress differences (e.g., 0.5 applies square root), values > 1 exaggerate differences. Default 1 (linear).
- node_shape
Node shape(s): "circle", "square", "triangle", "diamond", "pentagon", "hexagon", "star", "heart", "ellipse", "cross", or any custom SVG shape registered with register_svg_shape().
- node_svg
Custom SVG for nodes: path to SVG file OR inline SVG string.
- svg_preserve_aspect
Logical: maintain SVG aspect ratio? Default TRUE.
- node_fill
Node fill color(s).
- node_border_color
Node border color(s).
- node_border_width
Node border width(s).
- node_alpha
Node transparency (0-1). Default 1.
- labels
Node labels: TRUE (use node names/indices), FALSE (none), or character vector.
- label_abbrev
Controls label abbreviation in the same way as
plot_mcml():NULLkeeps full labels, an integer truncates labels to that maximum number of characters, and"auto"adapts the maximum length to the number of nodes.- label_size
Label character expansion factor.
- label_color
Label text color.
- label_position
Label position: "center", "above", "below", "left", "right".
- label_fontface
Font face for labels: "plain", "bold", "italic", "bold.italic". Default "plain".
- label_fontfamily
Font family for labels: "sans", "serif", "mono". Default "sans".
- label_hjust
Horizontal justification (0=left, 0.5=center, 1=right). Default 0.5.
- label_vjust
Vertical justification (0=bottom, 0.5=center, 1=top). Default 0.5.
- label_angle
Text rotation angle in degrees. Default 0.
- pie_values
List of numeric vectors for pie chart nodes. Each element corresponds to a node and contains values for pie segments. If a simple numeric vector with values between 0 and 1 is provided (e.g., centrality scores), it is automatically converted to donut_fill for convenience.
- pie_colors
List of color vectors for pie segments.
- pie_border_width
Border width for pie slice dividers. NULL uses node_border_width.
- donut_fill
Numeric value (0-1) for donut fill proportion. This is the qgraph-style API: 0.1 = 10% filled, 0.5 = 50% filled, 1.0 = fully filled. Can be a single value (all nodes) or vector (per-node values).
- donut_values
Deprecated. Use donut_fill for simple fill proportion.
- donut_color
Fill color(s) for the donut ring. Single color sets fill for all nodes. Two colors set fill and background for all nodes. More than 2 colors set per-node fill colors (recycled to n_nodes). Default: "maroon" fill, "gray90" background when node_shape="donut".
- donut_colors
Deprecated. Use donut_color instead.
- donut_border_color
Border color for donut rings. NULL uses node_border_color.
- donut_border_width
Border width for donut rings. NULL uses node_border_width.
- donut_inner_border_color
Color for the inner boundary (where the donut meets its hole). NULL (default) uses
donut_border_color. Can be scalar or per-node vector.- donut_inner_border_width
Width for the inner boundary border. NULL (default) uses
donut_border_width. Can be scalar or per-node vector.- donut_outer_border_color
Color for outer boundary border (enables double border). NULL (default) shows single border. Set to a color for double border effect. Can be scalar or per-node vector.
- donut_line_type
Line type for donut borders: "solid", "dashed", "dotted", or numeric (1=solid, 2=dashed, 3=dotted). Can be scalar or per-node vector.
- donut_border_lty
Deprecated. Use
donut_line_typeinstead.- donut_inner_ratio
Inner radius ratio for donut (0-1). Default 0.8.
- donut_bg_color
Background color for unfilled donut portion.
- donut_shape
Base shape for donut: "circle", "square", "hexagon", "triangle", "diamond", "pentagon". Can be a single value or per-node vector. Default inherits from node_shape (e.g., hexagon nodes get hexagon donuts). Set explicitly to override (e.g., donut_shape = "hexagon" for hexagon donuts on all nodes regardless of node_shape).
- donut_show_value
Logical: show value in donut center? Default FALSE.
- donut_value_size
Font size for donut center value.
- donut_value_color
Color for donut center value.
- donut_value_fontface
Font face for donut center value: "plain", "bold", "italic", "bold.italic". Default "bold".
- donut_value_fontfamily
Font family for donut center value: "sans", "serif", "mono". Default "sans".
- donut_value_digits
Decimal places for donut center value. Default 2.
- donut_value_prefix
Text before donut center value (e.g., "$"). Default "".
- donut_value_suffix
Text after donut center value (e.g., "%"). Default "".
- donut_empty
Logical: render empty donut rings for NA values? Default TRUE.
- donut2_values
List of values for inner donut ring (for double donut).
- donut2_colors
List of color vectors for inner donut ring segments.
- donut2_inner_ratio
Inner radius ratio for inner donut ring. Default 0.4.
- edge_color
Edge color(s). If NULL, uses edge_positive_color/edge_negative_color based on weight.
- edge_width
Edge width(s). If NULL, scales by weight using edge_size and edge_width_range.
- edge_size
Maximum edge size for weight scaling. NULL (default) uses the upper bound of
edge_width_range. Larger values = thicker edges overall.- esize
Deprecated. Use
edge_sizeinstead.- edge_width_range
Output width range as c(min, max) for weight-based scaling. Default c(0.1, 4). Edges are scaled to fit within this range unless
edge_sizesupplies the maximum.- edge_scale_mode
Scaling mode for edge weights: "linear" (default, qgraph-style), "log" (logarithmic for wide weight ranges), "sqrt" (moderate compression), or "rank" (equal visual spacing regardless of weight distribution).
- edge_cutoff
Optional cutoff for edge emphasis. NULL (default) or 0 disables cutoff fading. Positive values fade edges whose absolute weights are below the cutoff; width scaling remains continuous.
- cut
Deprecated. Use
edge_cutoffinstead.- edge_alpha
Edge transparency (0-1). Default 0.8.
- edge_labels
Edge labels: TRUE (show weights), FALSE (none), or character vector.
- edge_label_size
Edge label size.
- edge_label_color
Edge label text color.
- edge_label_bg
Edge label background color.
- edge_label_position
Position along edge (0-1).
- edge_label_offset
Perpendicular offset for edge labels (0 = on line, positive = above).
- edge_label_fontface
Font face: "plain", "bold", "italic", "bold.italic".
- edge_label_shadow
Logical: enable drop shadow for edge labels? Default FALSE.
- edge_label_shadow_color
Color for edge label shadow. Default "gray40".
- edge_label_shadow_offset
Offset distance for shadow in points. Default 0.5.
- edge_label_shadow_alpha
Transparency for shadow (0-1). Default 0.5.
- edge_label_halo
Logical: enable white halo/outline around edge labels for readability over dark edges? Default TRUE. When TRUE, overrides shadow settings.
- edge_style
Line type(s): 1=solid, 2=dashed, 3=dotted, etc.
- curvature
Edge curvature. 0 for straight, positive/negative for curves.
- curve_scale
Not used.
- curve_shape
Spline tension (-1 to 1). Default 0.
- curve_pivot
Position along edge for curve control point (0-1).
- curves
Curve mode: TRUE (default) = single edges straight, reciprocal edges curve as ellipse (two opposing curves); FALSE = all straight; "force" = all curved.
- arrow_size
Arrow head size.
- arrow_angle
Arrow head angle in radians. Default pi/6 (30 degrees).
- show_arrows
Logical or vector: show arrows on directed edges?
- bidirectional
Logical or vector: show arrows at both ends?
- loop_rotation
Angle(s) in radians for self-loop direction.
- show
Dispatch-only placeholder used by method dispatch (e.g.,
splot.tna_disparity). Not intended for direct use.- edge_start_style
Style for the start segment of edges: "solid" (default), "dashed", or "dotted". Use dashed/dotted to indicate edge direction (source node).
- edge_start_length
Fraction of edge length for the styled start segment (0-0.5). Default 0.15 (15% of edge). Only applies when edge_start_style is not "solid".
- edge_start_dot_density
Pattern for dotted start segments. A two-character string where the first digit is dot length and second is gap length (in line width units). Default "12" (1 unit dot, 2 units gap). Use "11" for tighter dots, "13" for more spacing. Only applies when edge_start_style = "dotted".
- edge_ci
Numeric vector of CI widths (0-1 scale). Larger values = more uncertainty.
- edge_ci_scale
Width multiplier for underlay thickness. Default 2.
- edge_ci_alpha
Transparency for underlay (0-1). Default 0.15.
- edge_ci_color
Underlay color. NA (default) uses main edge color.
- edge_ci_style
Line type for underlay: 1=solid, 2=dashed, 3=dotted. Default 2.
- edge_ci_arrows
Logical: show arrows on underlay? Default FALSE.
- edge_priority
Numeric vector of edge priorities. Higher values render on top. Useful for ensuring significant edges appear above non-significant ones.
- edge_label_style
Preset style: "none", "estimate", "full", "range", "stars".
- edge_label_template
Template with placeholders: {est}, {range}, {low}, {up}, {p}, {p_diff}, {stars}. Overrides edge_label_style if provided.
- edge_label_digits
Decimal places for estimates. Default 2.
- edge_label_oneline
Logical: single line format? Default TRUE.
- edge_label_ci_format
CI format: "bracket" for
[low, up]or "dash" forlow-up.- edge_label_leading_zero
Logical: show leading zero for values < 1? Default TRUE. Set to FALSE to display ".5" instead of "0.5".
- edge_ci_lower
Numeric vector of lower CI bounds for labels.
- edge_ci_upper
Numeric vector of upper CI bounds for labels.
- edge_label_p
Numeric vector of p-values for edges.
- edge_label_p_diff
Probability-of-difference values for the
{p_diff}template placeholder: a per-edge numeric vector, or a full node-by-node matrix, which is indexed at each plotted edge and so stays aligned whenminimumorthresholdremove edges. A matrix with dimnames is aligned to the plot's node names, so it may be supplied in any node order.- edge_label_p_digits
Decimal places for p-values. Default 3.
- edge_label_p_prefix
Prefix for p-values. Default "p=".
- edge_label_stars
Stars for labels: character vector, TRUE (compute from p), or numeric (treated as p-values).
- weight_digits
Number of decimal places to which the weights of a matrix input are rounded before plotting, so edges that round to zero are removed. Default 2.
NULLdisables rounding.- threshold
Minimum absolute weight to display.
- minimum
Alias for threshold (qgraph compatibility). Uses max of threshold and minimum.
- maximum
Maximum weight for scaling. NULL for auto.
- positive_color
Deprecated. Use
edge_positive_colorinstead.- negative_color
Deprecated. Use
edge_negative_colorinstead.- edge_duplicates
How to handle duplicate edges in undirected networks. NULL (default) = stop with error listing duplicates. Options: "sum", "mean", "first", "max", "min", or a custom aggregation function.
- title
Plot title.
- title_size
Title font size.
- margins
Margins as c(bottom, left, top, right).
- background
Background color.
- rescale
Logical: rescale layout to -1 to 1 range?
- layout_scale
Scale factor for layout. >1 expands (spreads nodes apart), <1 contracts (brings nodes closer). Use "auto" to automatically scale based on node count (compact for small networks, expanded for large). Default 1.
- layout_margin
Margin around the layout as fraction of range. Default 0.15. Set to 0 for no extra margin (tighter fit). Affects white space around nodes.
- aspect
Logical: maintain aspect ratio?
- use_pch
Logical: use points() for simple circles (faster). Default FALSE.
- usePCH
Deprecated. Use
use_pchinstead.- scaling
Scaling mode: "default" for qgraph-matched scaling where node_size=6 looks similar to qgraph vsize=6, or "legacy" to preserve pre-v2.0 behavior.
- align_panels
Logical. If
TRUE, forces a uniform symmetric plot box (c(-layout_scale, layout_scale)on each axis) so two networks plotted side-by-side in apar(mfrow)grid render at identical absolute scales, for example bootstrap panels or networks with different numbers of nodes. DefaultFALSEuses bounds computed from the layout, which fill the canvas more tightly. The fixed box is applied only when the layout is rescaled, soalign_panels = TRUEhas no effect withrescale = FALSE.- legend
Logical: show legend?
- legend_position
Position: "topright", "topleft", "bottomright", "bottomleft".
- legend_size
Legend text size.
- legend_edge_colors
Logical: show positive/negative edge colors in legend?
- legend_node_sizes
Logical: show node size scale in legend?
- groups
Group assignments for node coloring/legend.
- node_names
Alternative names for legend (separate from labels).
- tna_styling
Logical or NULL. If
TRUE, applies TNA visual defaults (oval layout, TNA color palette, edge labels as estimates, dotted edge starts, etc.) as a base layer. Any explicitly provided argument overrides the TNA default. IfFALSE, no TNA styling is applied. IfNULL(default), automatically set toTRUEwhenxis a tna object,FALSEotherwise. Can be used with any input type (matrix, igraph, cograph_network).- psych_styling
Logical or NULL. Undirected counterpart of
tna_styling. IfTRUE, applies psychometric-network defaults (spring layout, Okabe-Ito palette, no arrows, solid edge lines, andminimum = 0.01) as a base layer. IfNULL(default),splot.netobjectauto-enables it on correlation-family input (glasso, cor, pcor, ising) and on the undirected constituents ofnet_mlvar. Explicit user args always win.- predictability
Logical or NULL. Draws a per-node predictability ring (a donut fill) from a
predictabilitycolumn on the network's node table, the wayqgraph/bootnetshow node predictability. IfTRUE, draws it when the column is present; ifFALSE, never; ifNULL(default), draws it when the object marks it as its default (network$meta$predictability_default, set e.g. by apsychnetglasso network). A caller's ownpie_values/donut_filltakes precedence.- i
Group index or name when x is a group_tna object. If NULL (default), plots all groups in a grid. If specified (e.g., i = 1 or i = "Treatment"), plots only that group.
- filetype
Output format: "default" (screen), "png", "pdf", "svg", "jpeg", "tiff".
- filename
Output filename (without extension).
- width
Output width in inches.
- height
Output height in inches.
- res
Resolution in DPI for raster outputs (PNG, JPEG, TIFF). Default 600.
Value
splot() returns the plotted cograph_network object
invisibly. splot.net_bootstrap(), splot.netobject(),
splot.boot_glasso(), splot.tna_communities() and
splot.cograph_communities() return the cograph_network
built by splot(), and splot.net_permutation() returns it or
NULL when there is no edge to plot. splot.net_mlvar() and
splot.wtna_mixed() return x. All are called for the side
effect of plotting.
Details
splot.net_bootstrap() plots a net_bootstrap object from the
Nestimate package. It shows the original network, whose weights are taken
from $original$weights, with the edges styled by bootstrap
significance.
splot.tna_communities() plots the tna model stored in
attr(x, "tna") by tna::communities(), with nodes colored by
community. The walktrap assignment is used when present, and the
first algorithm column of x$assignments otherwise.
splot.cograph_communities() plots the network stored in
attr(x, "network") by detect_communities(), with
nodes colored by community.
splot.net_mlvar() plots one or all of the temporal, contemporaneous
and between-subjects networks of a net_mlvar object from
Nestimate::build_mlvar().
splot.netobject() plots a netobject from Nestimate. Networks
estimated by a transition-type method ("relative",
"frequency", "attention", "co_occurrence",
"wtna", "wtna_cooccurrence", "entropy") get
tna_styling = TRUE, and other methods, such as correlation and
partial correlation networks, get psych_styling = TRUE. When the
method is not recorded, directed networks get the TNA styling. Arguments
supplied by the caller override these defaults.
splot.boot_glasso() plots the partial-correlation network of a
boot_glasso object from Nestimate, with the bootstrap inclusion
probability of each edge mapped to its opacity.
splot.wtna_mixed() plots a wtna_mixed object from
Nestimate::wtna(..., method = "both"), either as one overlaid
network or as two panels.
splot.net_permutation() plots the edge differences of a
net_permutation object from Nestimate, with significant
differences highlighted. The direction of the network is taken from
x$x$directed.
Edge Curve Behavior
Edge curving is controlled by two interacting arguments:
curvesMode for automatic curving.
FALSE= all straight,TRUE(default) = curve only reciprocal edge pairs as an ellipse,"force"= curve all edges inward toward network center.curvatureManual curvature amount (0-1 typical). Sets the magnitude of curves. Default 0 uses automatic 0.175 for curved edges. Positive values curve edges; the direction is automatically determined.
For reciprocal edges (A->B and B->A both exist), the edges curve
in opposite directions to form a visual ellipse, making bidirectional
relationships clear.
Weight Scaling Modes (edge_scale_mode)
Controls how edge weights are mapped to visual widths:
"linear"(default)Width proportional to weight. Best when weights are similar in magnitude.
"log"Logarithmic scaling. Best when weights span multiple orders of magnitude (e.g., 0.01 to 100).
"sqrt"Square root scaling. Moderate compression, good for moderately skewed distributions.
"rank"Rank-based scaling. Ignores actual values; uses relative ordering. All edges get equal visual spacing regardless of weight distribution.
Donut vs Pie vs Double Donut
Three ways to show additional data on nodes:
- Donut (
donut_fill) Single ring showing a proportion (0-1). Ideal for completion rates, probabilities, or any single metric per node. Use
donut_colorfor fill color anddonut_bg_colorfor unfilled portion.- Pie (
pie_values) Multiple colored segments showing category breakdown. Ideal for composition data. Values are normalized to sum to 1. Use
pie_colorsfor segment colors.- Double donut (
donut2_values) Two concentric rings for comparing two metrics per node. Outer ring uses
donut_fill/donut_color, inner ring usesdonut2_values/donut2_colors.
CI Underlay System
Confidence interval underlays draw a wider, semi-transparent edge behind the main edge to visualize uncertainty:
edge_ciVector of CI widths (0-1 scale). Larger = more uncertainty.
edge_ci_scaleMultiplier for underlay width relative to main edge. Default 2 means underlay is twice as wide as main edge at CI=1.
edge_ci_alphaTransparency of underlay (0-1). Default 0.15.
edge_ci_styleLine type: 1=solid, 2=dashed (default), 3=dotted.
Edge Label Templates
For statistical output, use templates to format complex labels:
edge_label_templateTemplate string with placeholders:
{est}for estimate/weight,{low}/{up}for CI bounds,{range}for formatted range,{p}for p-value,{p_diff}for the probability of the difference (Bayesian comparisons),{stars}for significance stars.edge_label_stylePreset styles:
"estimate"(weight only),"full"(estimate + CI),"range"(CI only),"stars"(significance).
Producer-Supplied splot Metadata
Packages that create cograph_network-compatible objects can attach a
small plotting contract at x$meta$splot. This lets producer packages
such as Nestimate, lagdynamics, or other modeling packages describe their
preferred cograph rendering without adding a new cograph-side class branch for
every object type.
The contract is optional. Objects without meta$splot follow the normal
splot() path and all existing class-specific dispatch remains in place.
When present, the supported fields are:
rendererCharacter scalar naming the cograph renderer to use.
"network"(also"splot","default", or"base") means the object follows the normalsplot()path, including any class-specific method, with the metadata defaults applied. Other values are resolved through a cograph-maintained whitelist of existing renderers, for example"difference","bootstrap","permutation","stability","mlvar","netobject","netobject_group","netobject_ml","boot_glasso", and"wtna_mixed". Arbitrary function names are never evaluated.weightOptional character scalar naming the default edge weight to render. If it names an edge column, that column is copied to
edges$weightfor the plot (the producer's edge set is kept, and theweightsmatrix is rebuilt to match). If it names a matrix stored on the object, that matrix becomes the rendered network: it is copied toweightsand the drawn edge set is rebuilt from its nonzero cells (aligned to the object's node order via dimnames when present). This is useful when the analytical object stores several edge quantities (for example counts, probabilities, residuals, effects) but has one preferred plot view. When the name matches both an edge column and a stored matrix, the matrix form wins.defaultsNamed list of
splot()or renderer arguments. These are defaults only: any argument explicitly supplied by the user wins. Defaults can include regularsplot()arguments such aslayout,node_fill,edge_labels,weight_digits, or renderer-specific arguments such asdisplayfor bootstrap renderers.
The precedence rule is always:
user arguments > x$meta$splot$defaults > cograph defaults
Example producer-side metadata:
