| 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
graph %>%
get_node_attrs(
node_attr = walktrap_group) %>%
unique() %>%
sort()
# 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()
# 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()