rgexf is back on CRAN! The package was archived on CRAN on 2026-05-18 because outstanding check issues were not corrected in time. This release fixes those issues and returns the package to CRAN.
plot.gexf() now renders graphs as an interactive htmlwidget powered by
sigma.js v3 and
graphology. Node positions, colours, and
sizes are read from the viz:* attributes in the GEXF document.
New sigmajs() function creates a sigma.js htmlwidget from a gexf object
or a path to a .gexf file. Shiny helpers sigmajsOutput() and
renderSigmajs() are also available.
The legacy gexf-js file-server renderer is preserved as plot_gexfjs().
The gexfjs() htmlwidget (inline iframe approach) is likewise kept for
backward compatibility.
gexfjs() now accepts a gexf object in addition to a file path,
matching sigmajs().
gexfjs() has an explicit sizing policy: the widget now defaults to the
full available width ("100%") and a height of "400px" in knitr
documents, the browser, and Shiny alike. Both gexfjs() and sigmajs()
honor user-supplied width/height, and their documented defaults were
clarified.
The gexfjs() widget rendered an empty main canvas: the bundled
config.js (which sets zoomLevel, showEdges, and other gexf-js
defaults) was never loaded into the iframe, making every screen
coordinate NaN.
Icons and images in the gexfjs() widget (zoom, lens, edge buttons,
search icon, Gephi logo) did not display: relative url(...) references
in the CSS cannot resolve inside a srcdoc iframe, so images are now
inlined as base64 data URIs.
The gexfjs() widget's node-attribute panel was blank and search did
not work: the generated DOM was missing the #leftcontent element, the
search form id had a typo (reacherche), and the autocomplete list was
clipped by the title bar.
We now have a hex sticker!
Users can now cite properly rgexf with JOSS (see citation(package="rgexf")).
Added a few extra breaks across the examples (suggested by @corneliusfritz).
Improved documentation regarding spells and dynamic graphs (suggested by @jonjoncardoso).
New head() function allows a glimpse of the n first nodes/edges.
Passing colors with four values (alpha) no longer fails during checks. (reported by @IsabelFE).
The summary function prints nodes' attributes as expected.
gexf.to.igraph correctly processes edge attributes (#38 reported by @balachia).
Time range is now correctly computed (#19).
Non-integer ids were incorrectly processed when reading GEXF files.
Function write.gexf has a new argument for specifying the GEXF version
for now it only changes the header.
plot.gexf method now uses gexf-js instead of sigma.js.
Now igraph.to.gexf passes arguments to gexf. Before, it was only passing
position. This way users have more flexibility specifying attributes.
gexf's nodesVizAtt now has defaults for color, size, and position; this is
a requirement of gexf-js.
gexf 's nodesVizAtt color and size now support passing a default for all
the nodes. Also, color can be specified as a character scalar (name of the)
color, or as an integer (number in colors()).
gexf has a new argument, rescale.node.size. When set to TRUE, the
size vector in nodesVizAtt is rescaled such that when calling the plot
method the largest node spans roughly 5% of the plot.
read.gexf now parses viz attributes (color, position, and size).
igraph.to.gexf and vice versa now pass viz attributes and layout.
gexf has been introduced as an eventual replacement of
write.gexf since it makes more sense. write.gexf should only be for
writing the gexf file on the disk (effective starting vers 0.17.0).Modernization of the project (roxygen, new CRAN standards, etc.)
Updated emails.
Remove broken links.
Some data management functions were fully ported to R.
New option -digits- in several functions allows controlling for printing precision (reported in issue 16, thanks Nico!).
Function -igraph.to.gexf- now imports attributes.
Option -defaultedgetype- in the -write.gexf- function now works for static graphs (reported in issue 17, thanks Avitus!).
-datetime- time format in -write.gexf- now works for other formats different from numeric datetime types (reported as issue 15, thanks Thomas Ullmann!).
Correcting errors in -plot.gexf- method, now visual attributes are imported correctly.
Included class checks in -gexf- class functions (thanks to Samuel Finegold).
write.gexf does not fails when dynamics different from double
are passed (thank you, Samuel Finegold!).
Passing weights from igraph to gexf has now been fix (thank you Roberto Brunelli!).
Fixing encoding issues thanks to Yong Cha's suggestion (thank you!).
New S3 method plot.gexf, implemented by Joshua B Kunst, shows the
graph in the web browser by means of Sigma.js (!).
New functions igraph.to.gexf and gexf.to.igraph converts objects
between igraph and gexf classes. Colors and attributes
are preserved.
Improving general documentation.
Just starting to add new options to add.gexf.node/edge, more
precisely, passing attributes.
sprintf error when using other formats rather than double
(issue 10).
in .addNodesEdges, add support to case “!attributes &&
vizattributes” (issue 9).
New functions add.node.spell and add.edge.spell now allow to
work with nodes and edges time spells.
New function check.dpl.edges, written in C, analyzes links and
reports duplicates (marking them) and number of times the same link
is repeated considering if the graph is directed or not.
New function switch.edges, also written in C, allows to order
links representations (source and target) in order to set the
smallest id as source and the highest as target.
Function write.gexf now has an improved error handler. Now parses
objects before even opening the XML graph.
Edges support id assignment and labeling.
Small bug detected in viz attributes fixed.
Edges thickness viz att XML representation (viz:thickness) was
replaced by viz:size (as it should be).
"Library" replaced by "Package" everywhere (ups!)
.addNodesEdges rewritten now works faster in most of CPUs (some of
them with very high speedups) (Thanks to Duncan Temple Lang,
RXML author)
Several code routines have been extracted from "bigger functions" and written as functions themselves.
New functions new.gexf.graph, add.gexf.node, add.gexf.edge,
rm.gexf.node and rm.gexf.edge allow to build and manipulate
gexf objects from scratch.
New function read.gexf allows to import gexf files as gexf
class objects.
gexf function now it is called write.gexf.
Edges now allow weighting.
Viz Attributes (color, shape, size, etc.) can be included in both, nodes and edges.
Real-life datasets have been included.
New function edge.list builds a dataframe of nodes from an
edge list.
New methods for gexf objects: print.gexf and summary.gexf.
gexf class objects are now a standard.
Function gexf is now named write.gexf.
Faster net build.
More demos + improve ones.
Cleaner code.
Fixing big issue at attvalues XML tag: it was replaced from "att" to "attvalue".
Fixing problem with XML value printing: Leading spaces where removed from XML values at ids, source, target, etc.