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
)A graph object of class dgr_graph.
The node attribute containing numeric data that is to be rescaled to new numeric or color values.
The lower bound value for the set of rescaled values. This can be a numeric value or an X11 color name.
The upper bound value for the set of rescaled values. This can be a numeric value or an X11 color name.
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.
An optional, manually set lower bound value for the rescaled values. If not set, the minimum value from the set will be used.
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.
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(),
colorize_node_attrs(),
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(),
set_node_attr_to_display(),
set_node_attr_w_fcn(),
set_node_attrs(),
set_node_attrs_ws(),
set_node_position()
# 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()
#> id type label value
#> 1 1 <NA> 1 5.3
#> 2 2 <NA> 2 4.4
#> 3 3 <NA> 3 5.8
#> 4 4 <NA> 4 5.9
#> 5 5 <NA> 5 6.2
# 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()
#> id type label value
#> 1 1 <NA> 1 0.500
#> 2 2 <NA> 2 0.000
#> 3 3 <NA> 3 0.778
#> 4 4 <NA> 4 0.833
#> 5 5 <NA> 5 1.000
# 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()
#> id type label value fillcolor fontcolor
#> 1 1 <NA> 1 0.500 #7B7B7B #767676
#> 2 2 <NA> 2 0.000 #CCCCCC #0D0D0D
#> 3 3 <NA> 3 0.778 #525252 #B9B9B9
#> 4 4 <NA> 4 0.833 #4A4A4A #C7C7C7
#> 5 5 <NA> 5 1.000 #333333 #F2F2F2