Use `add_legend()` to place a legend below a reactable table. The legend can be used to display the color scale of a color palette used within the table. Supply the name of the dataset used with `data` and the name of the column you would like to show a legend for with `col_name`. By default, the colors within `colors` are the default color palette used in `color_tiles()` and `color_scales()`, but can be modified to match the color palette used in the column of the reactable table. The number of bins for the legend can be changed to any number. By default, label bins are given. The labels under the bins can be formatted with `number_fmt` or hidden by setting `labels` to FALSE. Use `title` to place a title above the legend, and `footer` to place a footer below the legend. The legend can be aligned to either the bottom-left or bottom-right of the table.
Usage
add_legend(
table,
data = NULL,
col_name = NULL,
bins = 5,
colors = NULL,
bias = 1,
labels = TRUE,
number_fmt = NULL,
title = NULL,
footer = NULL,
align = "right"
)
Arguments
- table
A reactable table.
- data
Dataset containing at least one numeric column.
- col_name
The name of a column containing numeric data within the dataset.
- bins
The number of bins for the legend. Default is 5.
- colors
The color palette to be displayed in the legend. By default, the colors are shown to match the default colors used in `color_tiles()` and v`color_scales()`.
- 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.
- labels
Logical. Show or hide the labels next to the legend. Default is TRUE.
- number_fmt
Optionally format numbers using formats from the scales package. Default is NULL.
- title
The title above the legend. Default is NULL.
- footer
The footer below the legend. Default is NULL.
- align
The horizontal alignment of the legend. Options are 'left' or 'right'. Default is 'right'.
Examples
library(magrittr)
## Create the reactable table and then pipe in the legend
data <- iris[10:29, ]
table <- reactable(data,
columns = list(Sepal.Length = colDef(
cell = color_tiles(data))))
table %>%
add_legend(data = data,
col_name = "Sepal.Length")
#> Error in x$width %||% settings$fig.width * settings$dpi: non-numeric argument to binary operator
## The legend can be aligned to either the left or right side
table %>%
add_legend(data = data,
col_name = "Sepal.Length",
align = "left")
#> Error in x$width %||% settings$fig.width * settings$dpi: non-numeric argument to binary operator
## Change the number of bins within the legend
table %>%
add_legend(data = data,
col_name = "Sepal.Length",
bins = 9)
#> Error in x$width %||% settings$fig.width * settings$dpi: non-numeric argument to binary operator
## Add a title and footer to the legend
table %>%
add_legend(data = data,
col_name = "Sepal.Length",
title = "Sepal Length",
footer = "measured in cm")
#> Error in x$width %||% settings$fig.width * settings$dpi: non-numeric argument to binary operator
## If custom colors are used in the table, you can assign those to the legend as well
table <- reactable(data,
columns = list(Sepal.Length = colDef(
style = color_scales(data, colors = c("red","white","blue")))))
table %>%
add_legend(data = data,
col_name = "Sepal.Length",
colors = c("red","white","blue"))
#> Error in x$width %||% settings$fig.width * settings$dpi: non-numeric argument to binary operator