colorize_node_attrs {DiagrammeR} | R Documentation |
Within a graph's internal node data frame (ndf), use a categorical node attribute to generate a new node attribute with color values.
colorize_node_attrs(graph, node_attr_from, node_attr_to, cut_points = NULL, palette = "Spectral", alpha = NULL, reverse_palette = FALSE, default_color = "#D9D9D9")
graph |
a graph object of class
|
node_attr_from |
the name of the node attribute column from which color values will be based. |
node_attr_to |
the name of the new node attribute to which the color values will be applied. |
cut_points |
an optional vector of numerical breaks for bucketizing continuous numerical values available in a node attribute column. |
palette |
can either be: (1) a palette name from
the RColorBrewer package (e.g., |
alpha |
an optional alpha transparency value to
apply to the generated colors. Should be in
the range of |
reverse_palette |
an option to reverse the order
of colors in the chosen palette. The default is
|
default_color |
a hexadecimal color value to
use for instances when the values do not fall into
the bucket ranges specified in the |
a graph object of class
dgr_graph
.
# Create a graph with 8 nodes and 7 edges graph <- create_graph() %>% add_path(n = 8) %>% set_node_attrs( node_attr = weight, values = c(8.2, 3.7, 6.3, 9.2, 1.6, 2.5, 7.2, 5.4)) # Find group membership values for all nodes # in the graph through the Walktrap community # finding algorithm and join those group values # to the graph's internal node data frame (ndf) # with the `join_node_attrs()` function graph <- graph %>% join_node_attrs(df = get_cmty_walktrap(.)) # Inspect the number of distinct communities get_node_attrs( graph = graph, node_attr = walktrap_group) %>% unique() %>% sort() #> [1] 1 2 3 # Visually distinguish the nodes in the different # communities by applying colors using the # `colorize_node_attrs()` function; specifically, # set different `fillcolor` values with an alpha # value of 90 and apply opaque colors to the node # border (with the `color` node attribute) graph <- graph %>% colorize_node_attrs( node_attr_from = walktrap_group, node_attr_to = fillcolor, palette = "Greens", alpha = 90) %>% colorize_node_attrs( node_attr_from = walktrap_group, node_attr_to = color, palette = "viridis", alpha = 80) # Show the graph's internal node data frame get_node_df(graph) #> id type label weight walktrap_group fillcolor color #> 1 1 <NA> 1 8.2 1 #E5F5E090 #44015480 #> 2 2 <NA> 2 3.7 1 #E5F5E090 #44015480 #> 3 3 <NA> 3 6.3 1 #E5F5E090 #44015480 #> 4 4 <NA> 4 9.2 3 #31A35490 #FDE72580 #> 5 5 <NA> 5 1.6 3 #31A35490 #FDE72580 #> 6 6 <NA> 6 2.5 2 #A1D99B90 #21908C80 #> 7 7 <NA> 7 7.2 2 #A1D99B90 #21908C80 #> 8 8 <NA> 8 5.4 2 #A1D99B90 #21908C80 # Create a graph with 8 nodes and 7 edges graph <- create_graph() %>% add_path(n = 8) %>% set_node_attrs( node_attr = weight, values = c(8.2, 3.7, 6.3, 9.2, 1.6, 2.5, 7.2, 5.4)) # We can bucketize values in `weight` using # `cut_points` and assign colors to each of the # bucketed ranges (for values not part of any # bucket, a gray color is assigned by default) graph <- graph %>% colorize_node_attrs( node_attr_from = weight, node_attr_to = fillcolor, cut_points = c(1, 3, 5, 7, 9)) # Now there will be a `fillcolor` node attribute # with distinct colors (the `#D9D9D9` color is # the default `gray85` color) get_node_df(graph) #> id type label weight fillcolor #> 1 1 <NA> 1 8.2 #2B83BA #> 2 2 <NA> 2 3.7 #FDAE61 #> 3 3 <NA> 3 6.3 #ABDDA4 #> 4 4 <NA> 4 9.2 #D9D9D9 #> 5 5 <NA> 5 1.6 #D7191C #> 6 6 <NA> 6 2.5 #D7191C #> 7 7 <NA> 7 7.2 #2B83BA #> 8 8 <NA> 8 5.4 #ABDDA4