| rescale_node_attrs {DiagrammeR} | R Documentation |
From a graph object of class
dgr_graph, take a set of numeric values for a
node attribute, rescale to a new numeric or color
range, then write to the same node attribute or to
a new node attribute column.
rescale_node_attrs(graph, node_attr_from, to_lower_bound = 0, to_upper_bound = 1, node_attr_to = NULL, from_lower_bound = NULL, from_upper_bound = NULL)
graph |
a graph object of class
|
node_attr_from |
the node attribute containing numeric data that is to be rescaled to new numeric or color values. |
to_lower_bound |
the lower bound value for the set of rescaled values. This can be a numeric value or an X11 color name. |
to_upper_bound |
the upper bound value for the set of rescaled values. This can be a numeric value or an X11 color name. |
node_attr_to |
an optional name of a new node attribute to which the recoded values will be applied. This will retain the original node attribute and its values. |
from_lower_bound |
an optional, manually set lower bound value for the rescaled values. If not set, the minimum value from the set will be used. |
from_upper_bound |
an optional, manually set upper bound value for the rescaled values. If not set, the minimum value from the set will be used. |
a graph object of class dgr_graph.
# Create a random graph using the
# `add_gnm_graph()` function
graph <-
create_graph() %>%
add_gnm_graph(
n = 5,
m = 10,
set_seed = 23) %>%
set_node_attrs(
node_attr = value,
values = rnorm(
n = count_nodes(.),
mean = 5,
sd = 1) %>% round(1))
# Get the graph's internal ndf
# to show which node attributes
# are available
graph %>%
get_node_df()
# Rescale the `value` node
# attribute, so that its values
# are rescaled between 0 and 1
graph <-
graph %>%
rescale_node_attrs(
node_attr_from = value,
to_lower_bound = 0,
to_upper_bound = 1)
# Get the graph's internal ndf
# to show that the node attribute
# values had been rescaled
graph %>%
get_node_df()
# Scale the values in the `value`
# node attribute to different
# shades of gray for the `fillcolor`
# and `fontcolor` node attributes
graph <-
graph %>%
rescale_node_attrs(
node_attr_from = value,
to_lower_bound = "gray80",
to_upper_bound = "gray20",
node_attr_to = fillcolor) %>%
rescale_node_attrs(
node_attr_from = value,
to_lower_bound = "gray5",
to_upper_bound = "gray95",
node_attr_to = fontcolor)
# Get the graph's internal ndf
# once more to show that scaled
# grayscale colors are now available
# in the `fillcolor` and `fontcolor`
# node attributes
graph %>%
get_node_df()