From a graph object of class dgr_graph, take a set of numeric values for an
edge attribute, rescale to a new numeric or color range, then write to the
same edge attribute or to a new edge attribute column.
Usage
rescale_edge_attrs(
  graph,
  edge_attr_from,
  to_lower_bound = 0,
  to_upper_bound = 1,
  edge_attr_to = NULL,
  from_lower_bound = NULL,
  from_upper_bound = NULL
)Arguments
- graph
- A graph object of class - dgr_graph.
- edge_attr_from
- The edge 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. 
- edge_attr_to
- An optional name of a new edge attribute to which the recoded values will be applied. This will retain the original edge 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 edge creation and removal:
add_edge(),
add_edge_clone(),
add_edge_df(),
add_edges_from_table(),
add_edges_w_string(),
add_forward_edges_ws(),
add_reverse_edges_ws(),
copy_edge_attrs(),
create_edge_df(),
delete_edge(),
delete_edges_ws(),
delete_loop_edges_ws(),
drop_edge_attrs(),
edge_data(),
join_edge_attrs(),
mutate_edge_attrs(),
mutate_edge_attrs_ws(),
recode_edge_attrs(),
rename_edge_attrs(),
rev_edge_dir(),
rev_edge_dir_ws(),
set_edge_attr_to_display(),
set_edge_attrs(),
set_edge_attrs_ws()
Examples
# Create a random graph using the
# `add_gnm_graph()` function
graph <-
  create_graph() %>%
  add_gnm_graph(
    n = 10,
    m = 7,
    set_seed = 23) %>%
  set_edge_attrs(
    edge_attr = weight,
    values = rnorm(
      n = count_edges(.),
      mean = 5,
      sd = 1))
# Get the graph's internal edf
# to show which edge attributes
# are available
graph %>% get_edge_df()
#>   id from to  rel   weight
#> 1  1    2  8 <NA> 5.045437
#> 2  2    4  2 <NA> 6.575780
#> 3  3    4  6 <NA> 5.218288
#> 4  4    4  9 <NA> 3.953465
#> 5  5    6  5 <NA> 4.711311
#> 6  6    6 10 <NA> 5.481550
#> 7  7   10  9 <NA> 3.783624
# Rescale the `weight` edge
# attribute, so that its values
# are rescaled between 0 and 1
graph <-
  graph %>%
  rescale_edge_attrs(
    edge_attr_from = weight,
    to_lower_bound = 0,
    to_upper_bound = 1)
# Get the graph's internal edf
# to show that the edge attribute
# values had been rescaled
graph %>% get_edge_df()
#>   id from to  rel weight
#> 1  1    2  8 <NA>  0.452
#> 2  2    4  2 <NA>  1.000
#> 3  3    4  6 <NA>  0.514
#> 4  4    4  9 <NA>  0.061
#> 5  5    6  5 <NA>  0.332
#> 6  6    6 10 <NA>  0.608
#> 7  7   10  9 <NA>  0.000
# Scale the values in the `weight`
# edge attribute to different
# shades of gray for the `color`
# edge attribute and different
# numerical values for the
# `penwidth` attribute
graph <-
  graph %>%
  rescale_edge_attrs(
    edge_attr_from = weight,
    to_lower_bound = "gray80",
    to_upper_bound = "gray20",
    edge_attr_to = color) %>%
  rescale_edge_attrs(
    edge_attr_from = weight,
    to_lower_bound = 0.5,
    to_upper_bound = 3,
    edge_attr_to = penwidth)
# Get the graph's internal edf
# once more to show that scaled
# grayscale colors are now available
# in `color` and scaled numerical
# values are in the `penwidth`
# edge attribute
graph %>% get_edge_df()
#>   id from to  rel weight   color penwidth
#> 1  1    2  8 <NA>  0.452 #838383    1.630
#> 2  2    4  2 <NA>  1.000 #333333    3.000
#> 3  3    4  6 <NA>  0.514 #797979    1.785
#> 4  4    4  9 <NA>  0.061 #C2C2C2    0.652
#> 5  5    6  5 <NA>  0.332 #959595    1.330
#> 6  6    6 10 <NA>  0.608 #6B6B6B    2.020
#> 7  7   10  9 <NA>  0.000 #CCCCCC    0.500