tableHTML

Here we are exploring the different themes that can be used with tableHTML

library(tableHTML)

Specifying a theme

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.

scientific

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')
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
Duster 360 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
AMC Javelin 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
Camaro Z28 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
Porsche 914-2 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
Maserati Bora 15 8 301 335 3.54 3.57 14.6 0 1 5 8
Volvo 142E 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2


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')
col1 col2 col3
mpg cyl disp hp drat wt qsec vs am gear carb
Group 1 21 6 160 110 3.9 2.62 16.46 0 1 4 4
21 6 160 110 3.9 2.875 17.02 0 1 4 4
22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Group 2 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
10.4 8 460 215 3 5.424 17.82 0 0 3 4
14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Group 3 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
15 8 301 335 3.54 3.57 14.6 0 1 5 8
21.4 4 121 109 4.11 2.78 18.6 1 1 4 2

rshiny-blue

This theme matches the color of the standard shiny apps.

tableHTML(mtcars, widths = c(140, rep(50, 11))) %>%
 add_theme('rshiny-blue')
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
Duster 360 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
AMC Javelin 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
Camaro Z28 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
Porsche 914-2 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
Maserati Bora 15 8 301 335 3.54 3.57 14.6 0 1 5 8
Volvo 142E 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2


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')
col1 col2 col3
mpg cyl disp hp drat wt qsec vs am gear carb
Group 1 21 6 160 110 3.9 2.62 16.46 0 1 4 4
21 6 160 110 3.9 2.875 17.02 0 1 4 4
22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
Group 2 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
10.4 8 460 215 3 5.424 17.82 0 0 3 4
14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
Group 3 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
15 8 301 335 3.54 3.57 14.6 0 1 5 8
21.4 4 121 109 4.11 2.78 18.6 1 1 4 2

colorize

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')
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78


df <- mtcars[, 1:6]
df %>%
  tableHTML(widths = c(150, rep(70, ncol(df))), rownames = TRUE) %>%
  add_theme('colorize', color = 'darkgreen')
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78


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'))
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78
Mean 20.090625 6.1875 230.721875 146.6875 3.5965625 3.21725


Here we are hightlighting the last row which contains the average of the columns.

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))
mpg cyl disp hp drat wt
Mazda RX4 21 6 160 110 3.9 2.62
Mazda RX4 Wag 21 6 160 110 3.9 2.875
Datsun 710 22.8 4 108 93 3.85 2.32
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.44
Valiant 18.1 6 225 105 2.76 3.46
Duster 360 14.3 8 360 245 3.21 3.57
Merc 240D 24.4 4 146.7 62 3.69 3.19
Merc 230 22.8 4 140.8 95 3.92 3.15
Merc 280 19.2 6 167.6 123 3.92 3.44
Merc 280C 17.8 6 167.6 123 3.92 3.44
Merc 450SE 16.4 8 275.8 180 3.07 4.07
Merc 450SL 17.3 8 275.8 180 3.07 3.73
Merc 450SLC 15.2 8 275.8 180 3.07 3.78
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25
Lincoln Continental 10.4 8 460 215 3 5.424
Chrysler Imperial 14.7 8 440 230 3.23 5.345
Fiat 128 32.4 4 78.7 66 4.08 2.2
Honda Civic 30.4 4 75.7 52 4.93 1.615
Toyota Corolla 33.9 4 71.1 65 4.22 1.835
Toyota Corona 21.5 4 120.1 97 3.7 2.465
Dodge Challenger 15.5 8 318 150 2.76 3.52
AMC Javelin 15.2 8 304 150 3.15 3.435
Camaro Z28 13.3 8 350 245 3.73 3.84
Pontiac Firebird 19.2 8 400 175 3.08 3.845
Fiat X1-9 27.3 4 79 66 4.08 1.935
Porsche 914-2 26 4 120.3 91 4.43 2.14
Lotus Europa 30.4 4 95.1 113 3.77 1.513
Ford Pantera L 15.8 8 351 264 4.22 3.17
Ferrari Dino 19.7 6 145 175 3.62 2.77
Maserati Bora 15 8 301 335 3.54 3.57
Volvo 142E 21.4 4 121 109 4.11 2.78
Mean 20.090625 6.1875 230.721875 146.6875 3.5965625 3.21725

Totals with add_theme_colorize

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))
Month x1 x2 x3
Jan 22 47 38
Feb 6 89 1
Mar 93 13 3
Apr 29 43 33
May 70 26 45
Jun 96 28 52
Jul 91 18 42
Aug 18 45 85
Sep 42 73 99
Oct 36 79 84
Nov 57 62 40
Dec 40 44 22
Total 600 567 544


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)
Month x1 x2 x3
Q1 Jan 22 47 38
Feb 6 89 1
Mar 93 13 3
Sum1 121 149 42
Q2 Apr 29 43 33
May 70 26 45
Jun 96 28 52
Sum2 195 97 130
Q3 Jul 91 18 42
Aug 18 45 85
Sep 42 73 99
Sum3 151 136 226
Q4 Oct 36 79 84
Nov 57 62 40
Dec 40 44 22
Sum4 133 185 146