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.
Usage
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
)Arguments
- graph
- A graph object of class - dgr_graph.
- 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. 
See also
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()
Examples
# 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