Given a list of links and nodes (e.g. from extract_links_nodes func)
Uses igraph and ggraph to display the network plots
Must have the proper structure OR use extract_links_nodes()
,
which automatically returns this structure when given an adjacency
matrix and its legend (see documentation for this function)
network_data should be a list of 2 : edges, nodes
For edges (data.frame) : from, to, weight, width, sign (of the weight: neg/pos)
For nodes (data.frame) : name, title, family, family_color (optional)
graph_from_links_nodes(network_data, main_title = "",
node_type = c("point", "label"), node_label_title = TRUE,
family_palette = NULL, layout = "nicely", remove_null = TRUE,
edge_alpha = TRUE, edge_color = c("#6DBDE6", "#FF8C69"),
edge_width_range = c(0.2, 2), edge_alpha_range = c(0.4, 1),
node_label_size = 3, legend_label_size = 10, ...)
(list of two) : links, nodes with the proper structure
(string, optional) : the title of the network
: point
(default) for the graph to display points and
the label outside the point, or label
to have a node which is the label
itself (the text size will then be associated to the node degree)
(bool, default F) : should the node labels be the names or title column? (e.g. names : CRUDSAL_cat, title : Raw vegetables)
(list of key = value) : the keys are the family codes
(from family column in the legend), and the values are the corresponding
colors. Can be generated using the family_palette
func.
USEFUL if there is a need to compare multiple graphs of the same families,
so the color is consistent.
If NULL (default), the palette will be automatically generated using viridis
(chr) : the layout to be used to construct the graph
(bool) : should the nodes with 0 connections (degree 0) be removed from the graph. default is TRUE.
(bool) : should the edges have a transparent scale? In addition to the width scale.
(list) : list of 2. The first element is the color of the
negative edges, the second the positive. Default is c("#6DBDE6", "#FF8C69")
.
: range of the edges width. (default is 0.2 to 2)
: if edge_alpha
is TRUE, the range of the alpha
values (between 0 and 1). Default is 0.4 to 1.
: the size of the node labels. Default is 3.
: the size of the legend labels. Default is 10.
: other parameters to pass to ggraph create_layout
a list of 3 : igraph
: the igraph object, net
the graph,
deg
the degree table.
Csardi et al. (2006) <https://igraph.org>
Perdersen (2019) <https://ggraph.data-imaginist.com>
# NOT RUN {
adj_matrix <- cor(iris[,-5])
legend <- data.frame(name = colnames(iris[,-5]),
title = colnames(iris[,-5]))
graph_iris <- links_nodes_from_mat(adj_matrix, legend)
graph_from_links_nodes(graph_iris, main_title = "Iris graph")
# }
Run the code above in your browser using DataLab