Changelog
Source:NEWS.md
DiagrammeR 1.0.11
CRAN release: 2024-02-02
DiagrammeR now has a dependency on viridisLite instead of viridis (@olivroy, #511)
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 thetype
argument more strictly. (@olivroy, #506)DiagrammeR is compatible with igraph (>= 2.0.0) (@maelle, #500)
DiagrammeR 1.0.10
CRAN release: 2023-05-18
- Remove dependency on the influenceR package, which also means removing the
get_constraint()
andget_bridging()
graph inspection functions. (#486)
DiagrammeR 1.0.7
CRAN release: 2022-01-15
Fix malformed CSS selector in
htmlwidgets/grViz.js
Fixes for dev tidyr. Only call
replace_na(replace = "")
on character columns. (@DavisVaughan, #448)Added the
envir
argument to thegrViz()
andreplace_in_spec()
functions. (@atusy, #408)
DiagrammeR 1.0.6.1
CRAN release: 2020-05-08
- Removed the
set_df_as_node_attr()
,set_df_as_edge_attr()
, andget_attr_dfs()
functions.
DiagrammeR 1.0.5
CRAN release: 2020-01-16
- Removes the ability to save a DiagrammeR graph object as a Gephi file (.gexf) since the rgexf package is no longer maintained.
DiagrammeR 1.0.0
CRAN release: 2018-03-01
Added the helper functions
node_aes()
,node_data()
,edge_aes()
, andedge_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.Added traversal functions
trav_in_until()
andtrav_out_until()
.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.
Deprecated
create_complement_graph()
is deprecated in favor ofcreate_graph()
+transform_to_complement_graph()
.create_subgraph_ws()
is deprecated in favor ofcreate_graph()
+transform_to_subgraph_ws()
.edge_rel()
is deprecated in favor ofgraph$edges_df$rel
for edge relationships.create_random_graph()
is deprecated in favor ofcreate_graph()
+add_gnm_graph()
,add_growing_graph()
,add_islands_graph()
,add_smallworld_graph()
for the creation of randomized graphs.
Functions renamed: (old functions were removed)
-
add_to_series()
->add_graph_to_graph_series()
-
remove_from_series()
->remove_graph_from_graph_series()
-
get_graph_from_series()
->get_graph_from_graph_series()
-
create_series()
->create_graph_series()
-
subset_series()
->filter_graph_series()
-
render_graph_from_series()
->render_graph_from_graph_series()
-
series_info()
->get_graph_series_info()
-
graph_count()
->count_graphs_in_graph_series()
-
graph_info()
->get_graph_info()
-
node_present()
->is_node_present()
-
edge_present()
->is_edge_present()
-
edge_count()
->count_edges()
-
node_count()
->count_nodes()
-
edge_info()
->get_edge_info()
-
node_info()
->get_node_info()
-
node_type()
->get_node_attrs()
-
get_global_graph_attrs()
->get_global_graph_attr_info()
-
get_min_spanning_tree()
->transform_to_min_spanning_tree()
Functions removed:
cache_edge_attrs()
, cache_edge_attrs_ws()
, cache_edge_count_ws()
, cache_node_attrs()
, cache_node_attrs_ws()
, cache_node_count_ws()
, clear_global_graph_attrs()
, image_icon()
, set_global_graph_attrs()
.
Functions added
add_node_clones_ws()
, count_loop_edges()
, count_s_connected_cmpts()
, count_unconnected_nodes()
, count_w_connected_cmpts()
, delete_cache()
, delete_loop_edges_ws()
, deselect_edges()
, deselect_nodes()
, fully_connect_nodes_ws()
, fully_disconnect_nodes_ws()
, get_edge_df_ws()
, get_node_df_ws()
, is_graph_undirected()
, set_graph_directed()
, set_edge_attr_to_display()
DiagrammeR 0.9.2
CRAN release: 2017-09-06
Added functions to generate 2D and 3D grid graphs (
add_grid_2d()
andadd_grid_3d()
)Added
_ws()
(with selection) variants of themutate_[node/edge]_attrs()
functions for mutating node or edge attributes for only those nodes/edges in an active selectionIncorporated an
edges
argument into theselect_edges()
function in order to filter the selection of edges to a set of edge ID valuesReduced the dependency on R to version >= 3.2.0
DiagrammeR 0.9.1
CRAN release: 2017-08-21
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()
andset_df_as_edge_attr()
functions; theget_attr_dfs()
function allows for retrieval of stored data frame dataAdded two new graph-generating functions (
add_gnp_graph()
,add_pa_graph()
, andcreate_complement_graph()
)Added functions to clone existing nodes and edges (
add_n_node_clones()
andadd_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()
andmutate_edge_attrs()
functions now have simpler and more powerful interfaces for mutating node and edge attributesGraphs can be easily saved to disk (and read from disk) using the
save_graph()
andopen_graph()
functions
DiagrammeR 0.9.0
CRAN release: 2017-01-03
Modified basic structure of node and edge data frames such that ID values are automatically set as integer values
Just as nodes do, edges now have edge ID values (they can be obtained using
get_edge_ids()
and they can be used directly in theselect_edges_by_edge_id()
function)When created, a graph object automatically generates a graph ID and graph name (which can be modified using
set_graph_name()
)So long as node
label
values are unique, they may now be used to compose edges using theadd_edge()
function withuse_labels = TRUE
Quickly and flexibly add color to nodes and edges using the
colorize_node_attrs()
andcolorize_edge_attrs()
functionsAdded functions to selectively modify existing node and edge attributes:
copy_[node/edge]_attrs()
,drop_[node/edge]_attrs()
,mutate_[node/edge]_attrs()
,recode_[node/edge]_attrs()
,rename_[node/edge]_attrs()
, andrescale_[node/edge]_attrs()
.New node and edge attributes can now be easily added to a graph via a data frame using the
join_node_attrs()
andjoin_edge_attrs()
functionsSeveral graph generators are available for quickly adding graph primitives to a graph object (
add_balanced_tree()
,add_cycle()
,add_full_graph()
,add_path()
,add_prism()
, andadd_star()
)All traversal functions can now migrate numeric node or edge attribute values to the traversed edges (e.g.,
trav_out_edge()
,trav_in_node()
) by providing an attribute name tocopy_attrs_from()
; for those traversal functions where nodes or edges may receive multiple values, one can specify an aggregation type in theiragg
argument (e.g,.trav_in_node()
,trav_both_edge()
)Multiple conditions can be specified for all traversal types and for the
select_nodes()
andselect_edges()
functions, plus, they are much easier to writeAdded the
mk_cond()
helper function for creating conditions for any of the traversal functions (trav_...()
), and, theselect_nodes()
andselect_edges()
functions; this helper allows for easier composition of selection/traversal conditions using variables and/or function callsWith a selection of edges one can now use
select_rev_edges_ws()
to transform that selection to that of the selected edges’ reverse edges (where available); the option is there to add the reverse edges to the edge selection or to simply replace the current selectionCaching attributes for later use has been made simpler with a collection of
cache_...()
functions (or, set the cache explicitly usingset_cache()
); get the graph’s cache using theget_cache()
functionAdded functions to allow for layout control of nodes (
set_node_position()
,layout_nodes_w_string()
,nudge_node_positions()
)Added functions to convert DiagrammeR graphs to igraph graphs and vice versa (
to_igraph()
,from_igraph()
)Now you can create a graph from an adjacency matrix (
from_adj_matrix()
)Added functions to get community membership with a variety of algorithms:
get_cmty_edge_btwns()
,get_cmty_fast_greedy()
,get_cmty_l_eigenvec()
,get_cmty_louvain()
, andget_cmty_walktrap()
.Added functions to determine similarity coefficient scores for graph nodes:
get_dice_similarity()
andget_dice_similarity()
.Constraint scores for nodes can now be determined using the
get_constraint()
functionFunctions for getting information on nodes neighbors have been added:
get_nbrs()
,get_non_nbrs()
,get_similar_nbrs()
.Groups of nodes that are weakly or strongly connected components can be determined using the
get_w_connected_cmpts()
andget_s_connected_cmpts()
functionsGet articulation points (i.e., nodes that, when removed, disconnect the graph) with the
get_articulation_points()
functionObtain centrality measures for graph nodes using the
get_closeness()
andget_betweenness()
functionsGet the minimum-spanning tree subgraph from a graph with weighted edges using the
get_min_spanning_tree()
functionThe edge direction may be reversed for an entire graph (
rev_edge_dir()
) or for part of a graph using an edge selection (rev_edge_dir_ws()
)Depth-first search and breadth-first search algorithms are available in the
do_dfs()
anddo_bfs()
functionsDegree data for plots can now be easily obtained using the
get_degree_distribution()
andget_degree_histogram()
functionsGlobal graph attributes are now more easily modifiable using a set of functions for this purpose:
add_global_graph_attrs()
,delete_global_graph_attrs()
,get_global_graph_attr_info()
.Added option to display different text labels on nodes via the
display
node attribute; this is easily set with theset_node_attr_to_display()
functionRewrote many graph functions (e.g. traversals) so that they are faster for very large graphs
A log of all graph functions that directly modify the graph is now part of the graph object (
graph$graph_log
)Added functionality to automatically generate graph backups at every graph modification; this is in the form of RDS files deposited in a subdirectory (name is based on the graph ID) of the working directory; the option (
write_backups
, set toFALSE
by default) is available in all functions that initialize a graph object (create_graph()
,create_random_graph()
,from_igraph()
,from_adj_matrix()
)
DiagrammeR 0.8
CRAN release: 2015-10-08
Revised many graph functions so they work better together
Added many testthat tests to maintain the quality of the graph functions
Added functions
create_random_graph()
,import_graph()
,combine_graphs()
,country_graph()
andselect_graph_from_series()
Added support for visNetwork graphs as a rendering option with
render_graph()
DiagrammeR 0.7
CRAN release: 2015-06-11
Renamed functions
graphviz_graph()
andgraphviz_render()
tocreate_graph()
andrender_graph()
, respectivelyRemoved function
graphviz_export()
(exporting now handled withrender_graph()
)Added several new functions to inspect, analyze, and modify graphs:
display_graph_object()
,node_info()
,edge_info()
,node_present()
,edge_present()
,get_nodes()
,get_edges()
,get_predecessors()
,get_successors()
,node_count()
,edge_count()
,is_graph_empty()
,is_graph_directed()
,add_node()
,add_edges()
,delete_node()
,delete_edge()
,node_type()
,edge_relationship()
,create_series()
,add_to_series()
,remove_from_series()
,graph_count()
,subset_series()
,trigger_script()
,render_graph_from_series()
, andseries_info()
DiagrammeR 0.6
CRAN release: 2015-04-30
Added several functions to work with graphs:
create_node_df()
,create_edges()
,combine_nodes()
,combine_edges()
,scale_nodes()
,scale_edges()
,get_nodes()
,node_info()
,graphviz_graph()
,graphviz_render()
, andgraphviz_export()
Removed the
graphviz_nodes_edges_df()
andgraphviz_single_df()
functions
DiagrammeR 0.5
CRAN release: 2015-03-19
Added support for subgraphs and Gantt charts in mermaid diagrams
Added function
graphviz_nodes_edges_df()
for generating Graphviz DOT code that defines nodes and edges (and their attributes) from data in two data frames: one for nodes, the other for the edge operationsAdded function
graphviz_single_df()
for generating Graphviz DOT code from a single data frameIncorporated the new substitution operators
@_{...}
or@^{...}
ingrViz
statements for subscripting and superscripting, respectively