knitr::opts_chunk$set(echo = TRUE)
Here we are exploring the different themes that can be used with tableHTML
library(tableHTML)
Although the package has been designed so that it gives the utmost freedom to the user to style the
HTML table as they please, some themes have been included for those who need something quick and nice.
The package offers three themes for now: scientific, rshiny-blue, and colorize. To use them, you need to use the
add_theme
function.
Notice: When working with themes you can still add extra css (using the add_css_* family from below) but you will not be able to overwrite the styling that is there e.g. to change the width of the lines.
This is the scientifc theme where the table design resembles scientific tables for publishing.
tableHTML(mtcars, widths = c(140, rep(50, 11))) %>% add_theme('scientific')
\
tableHTML(mtcars, rownames = FALSE, widths = c(140, rep(50, 11)), row_groups = list(c(10, 10, 12), c('Group 1', 'Group 2', 'Group 3')), second_headers = list(c(3, 4, 5), c('col1', 'col2', 'col3'))) %>% add_theme('scientific')
This theme matches the color of the standard shiny apps.
tableHTML(mtcars, widths = c(140, rep(50, 11))) %>% add_theme('rshiny-blue')
\
tableHTML(mtcars, rownames = FALSE, widths = c(140, rep(50, 11)), row_groups = list(c(10, 10, 12), c('Group 1', 'Group 2', 'Group 3')), second_headers = list(c(3, 4, 5), c('col1', 'col2', 'col3'))) %>% add_theme('rshiny-blue')
This theme is used to create MS Excel-like tables (with any color you like). You can also use it to highlight
specific rows (usually corresponding to some aggregation function, for example totals or averages). The arguments that can be
used with the colorize theme are color
, total_rows
, and id_column
. The default color is
steelblue and by default no rows are chosen to be highlighted. You can also highlight the first column
with the id_column
argument. The documentation can be found at ?add_theme_colorize
.
df <- mtcars[, 1:6] df %>% tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>% add_theme('colorize')
\
df <- mtcars[, 1:6] df %>% tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>% add_theme('colorize', color = 'darkgreen')
\
df <- mtcars[, 1:6] df['Mean', ] <- (df %>% apply(2, mean)) df %>% tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>% add_theme('colorize', color = c('steelblue', 'red'))
\
df <- mtcars[, 1:6] df['Mean', ] <- (df %>% apply(2, mean)) df %>% tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>% add_theme('colorize', color = c('steelblue', 'red'), total_rows = nrow(df))
Instead of using the umbrella function add_theme
, you could also explicitly use add_theme_colorize
. The two functions are identical in
terms of the output. To see the documentation visit ?add_theme_colorize
.
# one total row x1 <- sample(1:100, 12) x2 <- sample(1:100, 12) x3 <- sample(1:100, 12) df <- data.frame(Month = month.abb, x1, x2, x3, stringsAsFactors = FALSE) df[nrow(df) + 1, ] <- c('Total', sum(x1), sum(x2), sum(x3)) df %>% tableHTML(widths = rep(50, 4), rownames = FALSE) %>% add_theme_colorize(color = 'darkred', total_rows = nrow(df))
\
df_q <- rbind( df[1:3, ], c('Sum1', sum(x1[1:3]), sum(x2[1:3]), sum(x3[1:3])), df[4:6, ], c('Sum2', sum(x1[4:6]), sum(x2[4:6]), sum(x3[4:6])), df[7:9, ], c('Sum3', sum(x1[7:9]), sum(x2[7:9]), sum(x3[7:9])), df[10:12, ], c('Sum4', sum(x1[10:12]), sum(x2[10:12]), sum(x3[10:12]))) # Two colors and an id_column df_q %>% tableHTML(widths = rep(50, 5), rownames = FALSE, row_groups = list(c(4, 4, 4, 4), c('Q1', 'Q2', 'Q3', 'Q4'))) %>% add_theme_colorize(color = c('pink3', 'yellow2'), total_rows = c(4, 8, 12, 16), id_column = TRUE)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.