rescale_node_attrs {DiagrammeR} | R Documentation

## Rescale numeric node attribute values

### Description

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.

### Value

a graph object of class `dgr_graph`.

### 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()

    # 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()

[Package DiagrammeR version 1.0.1 Index]