Graph and network visualization using tabular data in R
DiagrammeR now has a dependency on viridisLite instead of viridis (@olivroy, #511)
DiagrammeR nows uses testthat 3rd edition (@olivroy, #498)
No longer use deprecated features from tibble, igraph and tidyselect (>= 1.2.0) (@olivroy, #497, #507)
Error messages have been reviewed and now use cli (@olivroy, #499, #502)
It is now easier to install suggested packages on the fly. DiagrammeR now uses rlang::check_installed()
internally. (@olivroy, #499)
DiagrammeR()
checks the type
argument more strictly. (@olivroy, #506)
DiagrammeR is compatible with igraph (>= 2.0.0) (@maelle, #500)
get_constraint()
and get_bridging()
graph inspection functions.grViz()
and mermaid()
Fix malformed CSS selector in htmlwidgets/grViz.js
Only call replace_na(replace = "")
on character columns
Added the envir
argument to the grViz
and replace_in_spec
functions.
set_df_as_node_attr()
, set_df_as_edge_attr()
, and get_attr_dfs()
functions.Added the helper functions node_aes()
, node_data()
, edge_aes()
, and edge_data()
to facilitate the binding of node and edge aesthetic and data attribute values; several functions now have namesake arguments that accept these functions' output.
Information about the graph is now displayed in the console when the graph object is called
Error messages are now more helpful and try to provide pointers for the more common errors
Added functions to generate 2D and 3D grid graphs (add_grid_2d()
and add_grid_3d()
)
Added _ws
(with selection) variants of the mutate_[node/edge]_attrs()
functions for mutating node or edge attributes for only those nodes/edges in an active selection
Incorporated an edges
argument into the select_edges()
function in order to filter the selection of edges to a set of edge ID values
Reduced the dependency on R to version >= 3.2.0
Simplified many functions internally
Added a default print method for graph objects
Allowed use of bare node or edge attribute names in many functions
Implemented graph actions as a means to run one or more functions at every graph transformation step; for example, this can be used to automatically update a node attribute such as betweenness
whenever modifications to the graph are made (e.g., adding nodes, removing edges, etc.)
Data frames can be set as node or edge attributes with the set_df_as_node_attr()
and set_df_as_edge_attr()
functions; the get_attr_dfs()
function allows for retrieval of stored data frame data
Added two new graph-generating functions (add_gnp_graph()
, add_pa_graph()
, and create_complement_graph()
)
Added functions to clone existing nodes and edges (add_n_node_clones()
and add_edge_clone()
)
Added several count_*
functions (count_asymmetric_node_pairs()
, count_automorphisms()
, etc.)
Added new functions to obtain graph properties (get_adhesion()
, get_girth()
, get_reciprocity()
, etc.)
Added several is_*
functions for graph and edge properties (e.g., is_edge_loop()
, is_graph_dag()
, etc.)
The mutate_node_attrs()
and mutate_edge_attrs()
functions now have simpler and more powerful interfaces for mutating node and edge attributes
Graphs can be easily saved to disk (and read from disk) using the save_graph()
and open_graph()
functions