color_scales: Add color scales to cells in a column

View source: R/color_scales.R

color_scalesR Documentation

Add color scales to cells in a column

Description

The 'color_scales()' function conditionally colors each cell of a column depending on their value in relation to other values in that particular column. The colors can be provided within a vector in 'colors' or via another column in the dataset by referencing the column by name with 'color_ref'. The opacity of the colors provided can be adjusted by providing a value between 0 and 1 in 'opacity'. 'text_color' can be used to change the color of the values. If values are displayed within a dark-colored background, 'brighten_text' will display the values in white text so they are more visible. The color of 'brighten_text_color' can be changed to a color other than white if desired. If the user wants to assign colors row-wise instead of column-wise, set 'span' equal to TRUE to apply across all columns. Or can provide the names of the columns by either column name or column position number to apply to only a subset of the columns. 'color_scales()' should be placed within the style argument in reactable::colDef.

Usage

color_scales(
  data,
  colors = c("#15607A", "#FFFFFF", "#FA8C00"),
  color_ref = NULL,
  color_by = NULL,
  opacity = 1,
  bias = 1,
  min_value = NULL,
  max_value = NULL,
  even_breaks = FALSE,
  text_size = NULL,
  text_color = "black",
  text_color_ref = NULL,
  show_text = TRUE,
  brighten_text = TRUE,
  brighten_text_color = "white",
  bold_text = FALSE,
  border_width = NULL,
  border_style = NULL,
  border_color = NULL,
  span = FALSE,
  animation = "background 1s ease"
)

Arguments

data

Dataset containing at least one numeric column.

colors

A vector of colors to color the cells. Colors should be given in order from low values to high values. Default colors provided are blue-white-orange: c("#15607A", "#FFFFFF", "#FA8C00"). Can use R's built-in colors or other color packages.

color_ref

Assign colors from another column that contains the colors for each row. Only one color can be provided per row. Default is NULL.

color_by

Assign colors to a column based on the values of another column. The column in reference must contain numeric data. The column in which the colors are being assigned to can be either numerical or character. Default is NULL.

opacity

A value between 0 and 1 that adjusts the opacity in colors. A value of 0 is fully transparent, a value of 1 is fully opaque. Default is 1.

bias

A positive value that determines the spacing between multiple colors. A higher value spaces out the colors at the higher end more than a lower number. Default is 1.

min_value

The minimum value used for the color assignments. This value must expand the range of the data within the column. Therefore, the value must be less than or equal to the minimum value within the column. Default is NULL.

max_value

The maximum value used for the color assignments. This value must expand the range of the data within the column. Therefore, the value must be greater than or equal to the maximum value within the column. Default is NULL.

even_breaks

Logical: if TRUE, the colors will be assigned to values in distinct quantile bins rather than on a normalized scale. The number of breaks in the quantile bins is equal to the number of colors provided within 'colors'. For example, if 4 colors are provided within 'colors', the values in the bottom 25 the values within 25-50 Default is FALSE.

text_size

Numeric value representing the size of the text labels. Default is NULL.

text_color

Assigns text color to values. Default is black.

text_color_ref

Assign text color from another column by providing the name of the column containing the text colors in quotes. Only one color can be provided per cell. Default is NULL.

show_text

Logical: show text or hide text. Default is TRUE.

brighten_text

Logical: automatically assign color to text based on background color of cell. Text within dark-colored backgrounds will turn white, text within light-colored backgrounds will be black. Default is TRUE.

brighten_text_color

Assigns text color to values if values are within a dark-colored backgrounds. Default is white.

bold_text

Logical: bold text. Default is FALSE.

border_width

The width of the four-sided border around the cell. Options are "thin", "medium", "thick", or a numeric value. Default is NULL.

border_style

The style of the four-sided border around the cell. Options are "solid", "dashed", "dotted", "double", "groove", "ridge", "inset", "outset", or "none". Default is NULL.

border_color

The color of the four-sided border around the cell. Default is NULL.

span

Optionally apply colors to values across multiple columns instead of by each column. To apply across all columns set to TRUE. If applying to a set of columns, can provide either column names or column positions. Default is set to FALSE.

animation

Control the duration and timing function of the animation when sorting/updating values shown on a page. See [CSS transitions](https://developer.mozilla.org/en-US/docs/Web/CSS/transition) for available timing functions and examples. Animation can be turned off by setting to "none". Default is "background 1s ease".

Value

a function that applies conditional colors to a column of numeric values.

Examples

data <- iris[10:29, ]

## By default, the colors_scales() function uses a blue-white-orange three-color pattern
reactable(data,
 columns = list(
 Petal.Length = colDef(style = color_scales(data))))

## If only two colors are desired,
## you can specify them with colors = 'c(color1, color2)';
reactable(data,
 columns = list(
 Petal.Length = colDef(style = color_scales(data,
 colors = c("red", "green")))))

## Apply color_scales() across all numeric columns using reactable::defaultColDef
reactable(data,
defaultColDef = colDef(style = color_scales(data)))

## Use span to apply colors to values in relation to the entire dataset
reactable(data,
defaultColDef = colDef(style = color_scales(data, span = TRUE)))

## Span can take column names
reactable(data,
defaultColDef = colDef(style = color_scales(data, span = c("Sepal.Length", "Sepal.Width"))))

## Or it can also take column positions instead
reactable(data,
defaultColDef = colDef(style = color_scales(data, span = 1:2)))


kcuilla/reactablefmtr documentation built on Jan. 13, 2023, 11:36 p.m.