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"
)A graph object of class dgr_graph.
The name of the node attribute column from which color values will be based.
The name of the new node attribute to which the color values will be applied.
An optional vector of numerical breaks for bucketizing continuous numerical values available in a edge attribute column.
Can either be: (1) a palette name from the RColorBrewer
package (e.g., Greens, OrRd, RdYlGn), (2) viridis, which indicates
use of the viridis color scale from the package of the same name, or (3)
a vector of hexadecimal color names.
An optional alpha transparency value to apply to the generated
colors. Should be in the range of 0 (completely transparent) to 100
(completely opaque).
An option to reverse the order of colors in the chosen
palette. The default is FALSE.
A hexadecimal color value to use for instances when the
values do not fall into the bucket ranges specified in the cut_points
vector.
A graph object of class dgr_graph.
Other node creation and removal:
add_n_node_clones(),
add_n_nodes(),
add_n_nodes_ws(),
add_node(),
add_node_clones_ws(),
add_node_df(),
add_nodes_from_df_cols(),
add_nodes_from_table(),
copy_node_attrs(),
create_node_df(),
delete_node(),
delete_nodes_ws(),
drop_node_attrs(),
join_node_attrs(),
layout_nodes_w_string(),
mutate_node_attrs(),
mutate_node_attrs_ws(),
node_data(),
recode_node_attrs(),
rename_node_attrs(),
rescale_node_attrs(),
set_node_attr_to_display(),
set_node_attr_w_fcn(),
set_node_attrs(),
set_node_attrs_ws(),
set_node_position()
# 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
graph %>%
get_node_attrs(
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
graph %>% get_node_df()
#> id type label weight walktrap_group fillcolor color
#> 1 1 <NA> 1 8.2 2 #A1D99B90 #21908C80
#> 2 2 <NA> 2 3.7 2 #A1D99B90 #21908C80
#> 3 3 <NA> 3 6.3 2 #A1D99B90 #21908C80
#> 4 4 <NA> 4 9.2 3 #31A35490 #FDE72580
#> 5 5 <NA> 5 1.6 3 #31A35490 #FDE72580
#> 6 6 <NA> 6 2.5 1 #E5F5E090 #44015480
#> 7 7 <NA> 7 7.2 1 #E5F5E090 #44015480
#> 8 8 <NA> 8 5.4 1 #E5F5E090 #44015480
# 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)
graph %>% get_node_df()
#> 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