colorize_edge_attrs {DiagrammeR} | R Documentation

## Apply colors based on edge attribute values

### Description

Within a graph's internal edge data frame (edf), use a categorical edge attribute to generate a new edge attribute with color values.

### Usage

    colorize_edge_attrs(graph, edge_attr_from, edge_attr_to, cut_points = NULL,
      palette = "Spectral", alpha = NULL, reverse_palette = FALSE,
      default_color = "#D9D9D9")

### Arguments

`graph` | a graph object of class `dgr_graph`.
`edge_attr_from` | the name of the edge attribute column from which color values will be based.
`edge_attr_to` | the name of the new edge attribute to which the color values will be applied.
`cut_points` | an optional vector of numerical breaks for bucketizing continuous numerical values available in a edge attribute column.
`palette` | can either be: (1) a palette name from the RColorBrewer package (e.g., `Greens`, `OrRd`, `RdYlGn`), (2) `viridis`, which indicates use of the `viridis` color scale from the package of the same name, or (3) a vector of hexadecimal color names.
`alpha` | an optional alpha transparency value to apply to the generated colors. Should be in the range of `0` (completely transparent) to `100` (completely opaque).
`reverse_palette` | an option to reverse the order of colors in the chosen palette. The default is `FALSE`.
`default_color` | a hexadecimal color value to use for instances when the values do not fall into the bucket ranges specified in the `cut_points` vector.

### Value

a graph object of class `dgr_graph`.

### Examples

    # Create a graph with 5
    # nodes and 4 edges
    graph <-
      create_graph() %>%
      add_path(n = 5) %>%
      set_edge_attrs(
        edge_attr = weight,
        values = c(3.7, 6.3, 9.2, 1.6))

    # We can bucketize values in
    # the edge `weight` attribute using
    # `cut_points` and, by doing so,
    # assign colors to each of the
    # bucketed ranges (for values not
    # part of any bucket, a gray color
    # is assigned by default)
    graph <-
      graph %>%
      colorize_edge_attrs(
        edge_attr_from = weight,
        edge_attr_to = color,
        cut_points = c(0, 2, 4, 6, 8, 10),
        palette = "RdYlGn")

    # Now there will be a `color`
    # edge attribute with distinct
    # colors (from the RColorBrewer
    # Red-Yellow-Green palette)
    get_edge_df(graph)
    #>   id from to  rel weight   color
    #> 1  1    1  2 <NA>    3.7 #FDAE61
    #> 2  2    2  3 <NA>    6.3 #A6D96A
    #> 3  3    3  4 <NA>    9.2 #1A9641
    #> 4  4    4  5 <NA>    1.6 #D7191C

[Package DiagrammeR version 0.9.2 Index]