graph_from_matrix {foodingraph} | R Documentation |
Display a graph from an adjacency matrix
Description
Given an adjacency matrix and a legend, displays the graph.
This is a shortcut function, rather than using links_nodes_from_mat()
and graph_from_links_nodes()
.
Usage
graph_from_matrix(adjacency_matrix, legend, threshold = 0,
abs_threshold = TRUE, filter_nodes = TRUE, 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, ...)
Arguments
adjacency_matrix |
: a matrix of size n x n, each element being a number explaining the relationship (coefficient, information) between two variables given in the column and row names /!\ As this code is to draw undirected graphs, only the lower triangular part of association matrix is used to extract the information |
legend |
: a data frame of columns in order : 1) name, str : name of the node in the adjacency matrix, e.g. CRUDSAL_cat 2) title, str : name of the node, e.g. Raw vegetables 3) family, factor : (optional) the family the node belongs to, e.g. Vegetables |
threshold |
numeric) : a number defining the minimal threshold. If the weights are less than this threshold, they will be set to 0. |
abs_threshold |
(bool) : should the threshold keep negative values,
e.g. if |
filter_nodes |
(bool) : should the variables not in the adjacency
matrix be displayed on the graph? Default is TRUE
CAREFUL : if set to |
main_title |
(string, optional) : the title of the network |
node_type |
: |
node_label_title |
(bool, default F) : should the node labels be the names or title column? (e.g. names : CRUDSAL_cat, title : Raw vegetables) |
family_palette |
(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 |
layout |
(chr) : the layout to be used to construct the graph |
remove_null |
(bool) : should the nodes with 0 connections (degree 0) be removed from the graph. Default is TRUE. |
edge_alpha |
(bool) : should the edges have a transparent scale? In addition to the width scale. |
edge_color |
(list) : list of 2. The first element is the color of the
negative edges, the second the
positive. Default is |
edge_width_range |
: range of the edges width. (default is 0.2 to 2) |
edge_alpha_range |
: if |
node_label_size |
: the size of the node labels. Default is 3. |
legend_label_size |
: the size of the legend labels. Default is 10. |
... |
: other parameters to pass to ggraph 'create_layout' |
Value
a list of 3 : igraph
: the igraph object, net
the graph,
deg
the degree table.
References
Csardi et al. (2006) <https://igraph.org>
Perdersen (2019) <https://ggraph.data-imaginist.com>
See Also
Examples
adj_matrix <- cor(iris[,-5])
legend <- data.frame(name = colnames(iris[,-5]),
title = colnames(iris[,-5]))
graph_from_matrix(adj_matrix, legend, main_title = "Iris graph")