The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
{knitr} from Suggests: it was used solely by
the tutorial tests, which now extract the tutorials’ {r}
chunks with the same small scanner used in {manynet} and
{netrics} (verified to yield an identical expression set to
knitr::purl() on the autograph tutorial){tidygraph} from Imports: its only functional
use was reading the edgelist’s target column in
.infer_end_cap(), which now uses
igraph::as_edgelist() (verified to give identical end
caps){graphlayouts} from Suggests to Imports, since
it is required for grapht()’s default “stress”
layout (without it, wave-to-wave node transitions silently degraded to a
static aggregate layout) and is installed regardless as
{ggraph} imports it; its
requireNamespace()/thisRequires() guards have
been removed{manynet} version
(>= 2.2.1)actions/checkout@v7,
actions/upload-artifact@v7,
actions/download-artifact@v8), replacing some long-outdated
@v2 pinsr-lib/actions/setup-pandoc from @v1 to
@v2, matching every other r-lib/actions
stepAUTOGRAPH_STRICT_AUDIT=true, which the CI check step now
sets, so a broken layout or plot method can no longer pass CI greenskip() aborts the enclosing test_that(), the
first such mismatch had been silently preventing every later layout from
being audited at all (the layout audit goes from 21 to 108
assertions)NOT_CRAN=true, without
which every skip_on_cran() test — most of the suite — was
skipped while covr ran, badly under-reporting coveragerelease and pkgdown no longer run under
if: always(), so a failing R CMD check can no
longer tag a release or deploy the websitegraphr()’s sweep over every bundled
{manynet} dataset with a representative sample, and dropped
the plot.* smoke tests now subsumed by the plot-method
audit; CRAN-visible test time falls while CRAN-visible assertions
risetest-functional_errors.R), an
audit of the user-facing layout_* aliases, and examples for
the ag_* palette accessors and configurational layouts,
none of which were previously coveredon.exit(), so global theme state cannot leak between
parallel test workersstop(), warning()
and stopifnot() calls to the {manynet} cli
interfacegraphs()/grapht() erroring (“Can’t
combine ..1 ..2 active flag and
numeric height/mass in fict_starwars)
to_waves() that coerces the offending attributes when
{manynet}’s splitter cannot combine themgraphr(..., snap = TRUE) erroring (“‘-’ only
defined for equally-sized data frames”) whenever a node sat exactly on a
grid point
depth_first_recursive_search() compared each node
against a distance vector that still included its own zero
self-distance, so an exact hit selected that entry and yielded an empty
grid point; the self-distance is now dropped before the nearest vacant
point is chosengraphr() to ignore snap = TRUE
for layered layouts (“hierarchy”, “railway”, “ladder”, “alluvial”,
“multilevel”, “lineage”, “layered”)
graphr() erroring with “argument "node_color" is
missing, with no default” when passed a list of networks; the call is
now forwarded to graphs() as written, rather than argument
by argumentgraphr() checks the attribute names given
to its aesthetic arguments
graphr(net, node_color = "welth") reported “Unknown colour
name: welth” at draw time, and now reports that “welth” was not found
among the node attributes and asks whether “wealth” was meantnode_shape (previously “Shape
aesthetic contains invalid value”), node_size and
edge_size (previously “Aesthetics must be either length 1
or the same as the data (8)”), node_group, and
edge_coloras_tidygraph()isolates being validated only when the network
happened to contain isolates, so the same typo errored on one network
and was ignored on anothernode_size values between 0 and 1 being silently
multiplied by ten; node_size = 0.5 now means 0.5, while a
vector of proportions is still rescaled to stay visiblegraphs() producing empty panels by checking
waves against the number of networks availableR/graph_checks.R) shared by graphr(),
graphs(), grapht(), the
layout_*() functions, and stocnet_theme()
{ggplot2}, {grid}, or match.arg()
(so isolates = "drop" reports isolates, rather
than “‘arg’ should be one of …”)node_color = "Wealth" finds the wealth
attributegraphr() and
constant-colour note shared by graphr() and
grapht() so that their wording cannot driftplot.node_member() to draw its dendrogram with
{ggraph}
hclust object’s own merge heights to the
dendrogram layout to reproduce the previous plot’s leaf order, merge
heights, cluster label colours, and cutpoint lineag_base() rather than black,
matching the height axis and so respecting the active
stocnet_theme(){ggdendro} from Importsplot.node_member(), which pointed at
manynet::node_in_community(); that function moved to
{netrics} in manynet 2.0.0plot.node_motif()/plot.network_motif()
(“Cannot plot these motifs yet, sorry.”), match_color(),
plot.diff_model(), and the concentric and hierarchy layouts
(“Duplicated nodes in layers!”)layout, which now
names the argument, suggests the nearest layout, and lists autograph’s
own layouts, rather than reporting “object ‘layout_tbl_graph_stresss’
not found”
layout = igraph::layout_with_fr), rather than its
name, now says so instead of erroring with “invalid indexing”membership/level/rank arguments
that the partition layouts require, which name the argument and offer
the closest matchstocnet_theme() to error with the nearest
match on an unrecognised theme name, instead of warning and silently
leaving the previous theme in place; giving more than one theme name is
also caughtgrapht() example, which took too long to run, by
couching it in \donttest{}graphs() to accept bare longitudinal or
dynamic networks
grapht()), instead of erroring with “invalid to use
names()<- on an S4 object of class ‘dgCMatrix’”graphr()/graphs() on signed, directed, or
changing networks:
graphr() on a complex network
strength parameter now excludes loop edges,
which are drawn separately by geom_edge_loop0()graphr() on a changing network without any
adoption events (e.g. fict_potter)
graphr() on a signed multiplex network
(e.g. fict_marvel)
NA to gridgraphr()/graphs() on signed
longitudinal or directed networks
(e.g. to_waves(ison_monks))
aes()
(with an identity scale) so ggraph’s edge geoms expand and subset them
consistently with edge colour and widthgraphr(..., snap = TRUE) erroring on two-mode
networks: their default “hierarchy” layout is now left un-snapped (with
an informative message) since collapsing its layered coordinates onto a
square grid is not meaningful, while snapping a two-mode network under a
force-directed layout continues to work; also hardened the grid-snapping
search so a coordinate landing exactly on a grid point is no longer
mistaken for a node’s zero self-distancetests/testthat/helper-functional.R and
test-functional_*.R) for:
plot.* S3 method familyag_* palette accessors across all themesgraphr()’s aesthetic arguments each enumerated
automatically and audited against fixture gridsseq_nodes()ggpizza()
from coverage{migraph} to Suggests (used in tests only)graphr() treats labels
label_dist adding a further
points-based gap (mirroring igraph’s vertex.label.dist) and
label_repel = FALSE selecting a fixed offset instead of
repulsion.grapht() has been rewritten for smoother, more
consistent animations of dynamic networks
{graphlayouts}
(layout_as_dynamic()), with a new alpha
argument controlling layout stability; other layouts are computed once
on the aggregate network and held fixedisolates argument ("keep" or
"fade") controls whether temporarily isolated nodes stay
visible or fade out; keep_isolates is deprecatedirps_nuclear are now split automatically into cumulative
time slices via manynet::to_slices(), so a single dynamic
network object passed to grapht() works without manual
conversionbegin/end lifespans, such as
irps_wwi, are now split automatically into one snapshot per
change point showing the ties active in that spell, so
grapht(irps_wwi) works directly (previously it errored
because such networks are dynamic but carry no time
attribute for to_slices()); irps_wwi is now a
runnable example in the documentationgrapht() now uses the dynamic stress layout by default
even for two-mode networks (rather than a hierarchy layout, which
collapsed many nodes onto a line), suppresses node labels by default for
networks with more than 30 nodes to keep frames legible, and fades
densely overlapping ties so they read as a density gradient rather than
a solid massgraphr(): directed networks
get arrowheads on segments trimmed at the target node, signed networks
distinguish positive/negative ties by linetype and colour, mapped
aesthetics use the same palettes with factor levels consistent across
frames, and legends transition along with the animationgraphr() and grapht() (new R/graph_aes.R), so
styling cannot drift between static and animated plotsgrapht() (no gif rendering
required)to_waves()
silently ignoring a time attribute not named “wave” — will be fixed in
{manynet} 2.2.2, and the tutorial example now uses a
wave attribute, which splits correctly with
{manynet} 2.2.1edge_bundle argument to graphr()
for bundling edges in dense networks (closes #19):
TRUE/"force" uses force-directed bundling,
with "path" and "minimal" selecting the other
non-hierarchical algorithms(>= 2.2.0)edge_size = 0 not fully suppressing edges on
directed networks (closes #50): arrowhead length was hard-coded
regardless of edge_size, leaving a visible arrowhead when
the line was hidden. Arrow length now scales with the resolved edge
width (capped so heavily-weighted edges don’t get oversized heads) and
is omitted entirely when the width is 0graphr() returning an empty plot for networks
consisting only of isolates (e.g. the empty dyad/triad motifs): isolates
are now kept whenever removing them would empty the graphgraphs() erroring on lists containing tie-less
networks (e.g. plot() on motif censuses): panels sharing a
layout now keep isolates so every node has a coordinate in every
wavegraphr() erroring on weight or size attributes
carrying measure classes (e.g. tie_measure results from
{netrics} stored as attributes)graphs()’
ego-network detectiontie_closeness() (closes #39): the
tutorial now loads {netrics} and uses its measure functions
(tie_by_closeness(), tie_is_triangular()), and
every tutorial code chunk is now exercised by the functional tests
below{manynet} v2.2 tutorials
edge_bundle,
label_repel/label_dist, the
isolates argument, snap grid-snapping,
autograph’s own special-purpose layouts, and programmatic export with
ggsave()edge_size), automatic
mode shapes in two-mode networks, and manually adjusting a layout’s
coordinate table before passing it back via
x/y{manynet}tests/testthat/test-tutorials_autograph.R), mirroring
{manynet}’s tutorial testing infrastructurelayout_tbl_graph_layered() ordering nodes by the
names rather than the positions of their neighbours in adjacent layers,
which degraded every barycenter sweep to NA and raised warningsdplyr::case_match() with
dplyr::recode_values()plot.matrix() erroring when no
membership argument was supplied, for both one-mode and
two-mode matricesergm_res by serializing it, moving to extdata, and loading
it via load_ergm_res()ergm_resggplot2::scale_colour_discrete() to tweak colour
outputnode_shape to accept more categoriesnode_is_isolate and
node_adoption_time to internal helpers to reduce
dependenciesgrapht().to_factor() in
plot.ag_gof() to correct numeric ordering of statistics,
and dropped cumulative correction in plot.sienaGOF()plot.influenceTable()snet_theme to
stocnet_theme in plot.selectionTable() and
plot.influenceTable()ag_font() to migraph model plots for consistent
typographyscale_fill_*()) instead of colour aesthetics
(scale_colour_*())graphr() now auto-dispatches to graphs()
when passed a list of graphsgraphs() no longer requires {patchwork} to
be loaded separatelycolor to
fill using fillable shape codes (21–25) for nodes to
support fill-based colour scalesgraph_legends() helpergraphr():
"legend" (default) removes isolates from the graph but
notes them in the legend"caption" removes isolates from the graph but notes
them in the caption"keep" retains isolates in the graph as-is (closes
#12)scale_*() functions as redundant with better
theme support and match_color(){Rgraphviz} (Bioconductor) with
igraph::layout_with_sugiyama for Sugiyama/hierarchy
layouts, removing the Bioconductor dependencyplot.gof.ergm() (closes #31)
plot.goldfish.changepoints()plot.goldfish.outliers()plot.mnet() to avoid
igraph::plot.igraph() dispatchingggplot2::geom_violin() call in
graphr() to avoid warnings with ggplot2 v4.0.0graphr() internals to rely on a NULL “layout”
parameter and .infer_layout()graphr() to use match_color() for
diffusion palettesgraphs() handling of changing networksplot.ag_conv() by dropping +.ggplot()plot.ag_conv() to fix
{ggplot2} v4.0.0-related node overflow issuestocnet_theme() documentationstocnet_theme() to register a font family for
plots
{extrafont}ag_font() for retrieving the registered font
familymatch_colors() documentationis_dark() and made it vectorisedmatch_colors() and is_dark()
teststheme_*() functions in favour of
stocnet_theme()theme_*() testsstocnet_theme() testsgraphr() by using registered fonts where
availablegraphr() by using
ag_qualitative() for discrete colour scalesplot.selectionTable() and
plot.influenceTable() documentation by consolidating them
together into one help fileplot.ag_conv(), plot.ag_gof(),
and plot_interp by using registered fonts where availableplot.sienaGOF() to use lower case auxiliary
statistic descriptionres_monan_traces to
monan_convres_monan_gof to monan_gofres_ergm_gof to ergm_gofres_siena_gof to siena_gofres_siena_influence to
siena_influenceres_siena_selection to
siena_selectionplot.ag_conv() as a new plotting method for
convergence diagnostics
{MoNAn} trace objects by using
plot.ag_conv()plot.mcmc.list() for plotting MCMC samples from
ergm::ergm results objects, using
plot.ag_conv()ergm_res for testing and illustration of
plot.mcmc.list(), use ergm_res$sample to
access the MCMC sample{tidyr}, {cli}, and
{concaveman}graphr() not using theme colours for node and
edge aestheticsplot.sienaGOF() and
plot.gof.stats.monan() to use new plotting methodplot.gof.ergm() for plotting ERGM GOF
objectscumulative = FALSE by
defaultset_stocnet_theme() alias for
stocnet_theme()res_ergm_gof for testing and illustration of
plot.gof.ergm()igraph::plot(), ggraph::ggraph(), and
graphr()graphr()
and the visualisation dimensions to which they relate{patchwork},
graphs(), and grapht()graphr(), graphs(), and
grapht() from manynet for quick plotting of one or more
graphs+.ggplot() to check whether second object
inherits ggplot class (thanks @teunbrand for fixing #110)graphr() and
othersstocnet_theme() to add option to
“stocnet_theme” (previously “snet_theme”)is_dark() to check whether a theme is dark or
lightmatch_color() to return closest matching colors
from a paletteag_sequential()plot.traces.monan()plot.gof.stats.monan()stocnet_theme() for setting a theme that can then
be reused across successive plots (closes #3)
stocnet_theme("iheid") for IHEID colour
themeag_*() palettes, for example:
ag_highlight() to select the highlight colours of a
particular palettematch_color() for matching one or more hexcodes
to a palette’s offeringsplot.diff_model()plot.matrix()plot.learn_model()plot.network_measures()plot.network_motif()plot.tie_measure()plot.node_measure()plot.node_member()plot.node_members()plot.node_motif()plot.netlm()plot.netlogit()plot.network_test()plot.diffs_model()plot.sienaGOF()plot.influenceTable()plot.selectionTable()layout_tbl_graph_matching() for positioning nodes
according to their manynet::to_matching() partnerslayout_tbl_graph_layered() for
layering nodes according to a Sugiyama-type layoutThese binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.