graph_from_matrix: Display a graph from an adjacency matrix

Description Usage Arguments Value References See Also Examples

View source: R/graph_from_matrix.R

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

1
2
3
4
5
6
7
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 abs_threshold is set to TRUE, and threshold is set to 0.1, all weights between -0.1 and 0.1 will be set to 0

filter_nodes

(bool) : should the variables not in the adjacency matrix be displayed on the graph? Default is TRUE CAREFUL : if set to TRUE, be sure to have the same colors in the family legend of the graphs. A fixed palette can be set using family_palette. Default is TRUE.

main_title

(string, optional) : the title of the network

node_type

: 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)

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 family_palette. 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

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 c("#6DBDE6", "#FF8C69").

edge_width_range

: range of the edges width. (default is 0.2 to 2)

edge_alpha_range

: if edge_alpha is TRUE, the range of the alpha values (between 0 and 1). Default is 0.4 to 1.

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

graph_from_links_nodes

Examples

1
2
3
4
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")

vgasque/foodingraph documentation built on Nov. 5, 2019, 12:01 p.m.