## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "png/" ) ## ----eval = FALSE------------------------------------------------------------- # devtools::install_github("m-jahn/WeightedTreemaps") ## ----------------------------------------------------------------------------- library(WeightedTreemaps) # load example data data(mtcars) mtcars$car_name = gsub(" ", "\n", row.names(mtcars)) ## ----eval = FALSE------------------------------------------------------------- # # generate treemap; set seed to obtain same pattern every time # tm <- voronoiTreemap( # data = mtcars, # levels = c("gear", "car_name"), # cell_size = "wt", # shape = "rounded_rect", # seed = 123 # ) ## ----fig.width = 5, fig.height = 5, out.width = "50%", fig.align = 'center', eval = FALSE---- # drawTreemap(tm, label_size = 2.5, label_color = "white") ## ----fig.width = 9, fig.height = 9, out.width = "100%", fig.align = 'center', warning = FALSE, eval = FALSE---- # drawTreemap(tm, title = "treemap 1", label_size = 2, # color_type = "categorical", color_level = 1, # layout = c(2, 2), position = c(1, 1), legend = TRUE) # # drawTreemap(tm, title = "treemap 2", label_size = 2, # color_type = "categorical", color_level = 2, border_size = 3, # add = TRUE, layout = c(2, 2), position = c(1, 2), legend = TRUE) # # drawTreemap(tm, title = "treemap 3", label_size = 2, # color_type = "both", color_level = 1, # add = TRUE, layout = c(2, 2), position = c(2, 1), legend = TRUE) # # drawTreemap(tm, title = "treemap 4", label_size = 2, # color_type = "cell_size", color_level = 2, # color_palette = heat.colors(10), # border_color = grey(0.4), label_color = grey(0.4), # add = TRUE, layout = c(2, 2), position = c(2, 2), # title_color = "black", legend = TRUE) ## ----fig.width = 12, fig.height = 4, out.width = "100%", fig.align = 'center', eval = FALSE---- # convergence <- c("slow", "intermediate", "fast") # # for (i in 1:3) { # tm <- voronoiTreemap( # data = mtcars, # levels = c("gear", "car_name"), # cell_size = "wt", # shape = "rounded_rect", # seed = 123, # convergence = convergence[i], # verbose = TRUE # ) # drawTreemap( # tm, # title = paste0("convergence = ", convergence[i]), # label_size = 2.5, # label_color = "white", # layout = c(1, 3), # position = c(1, i), # add = ifelse(i == 1, FALSE, TRUE) # ) # } ## ----message = FALSE, error = FALSE, results = 'hide', eval = FALSE----------- # # set seed to obtain same df every time # set.seed(123) # df <- data.frame(A = sample(10:100, 45)) # # tm1 <- voronoiTreemap( # data = df, levels = "A", # cell_size = "A", # shape = "rounded_rect", # positioning = "random" # ) # # tm2 <- voronoiTreemap( # data = df, levels = "A", # cell_size = "A", # shape = "rounded_rect", # positioning = "regular" # ) # # tm3 <- voronoiTreemap( # data = df, levels = "A", # cell_size = "A", # shape = "rounded_rect", # positioning = "clustered" # ) ## ----fig.width = 12, fig.height = 4, out.width = "100%", fig.align = 'center', warning = FALSE, eval = FALSE---- # drawTreemap(tm1, title = "positioning = 'random'", border_size = 3, # layout = c(1,3), position = c(1, 1)) # # drawTreemap(tm2, title = "positioning = 'regular'", border_size = 3, # add = TRUE, layout = c(1,3), position = c(1, 2)) # # drawTreemap(tm3, title = "positioning = 'clustered'", border_size = 3, # add = TRUE, layout = c(1,3), position = c(1, 3)) ## ----------------------------------------------------------------------------- # different initial shapes, the more squared the better house_coords <- list( x = c(0, 10, 10, 5, 0), y = c(0, 0, 10,15,10)) rect_coords <- list( x = c(0, 10, 10, 0), y = c(0, 0, 3, 3)) oct_coord <- list( x = sin(seq(0, 2, 2/8)*pi) * 1000 + 1000, y = cos(seq(0, 2, 2/8)*pi) * 1000 + 1000 ) ## ----message = FALSE, error = FALSE, results = 'hide', eval = FALSE----------- # tm1 <- voronoiTreemap(data = df, levels = "A", # shape = house_coords) # # tm2 <- voronoiTreemap(data = df, levels = "A", # shape = rect_coords) # # tm3 <- voronoiTreemap(data = df, levels = "A", # shape = oct_coord) ## ----fig.width = 12, fig.height = 4, out.width = "100%", fig.align = 'center', warning = FALSE, eval = FALSE---- # drawTreemap(tm1, layout = c(1,3), position = c(1, 1)) # drawTreemap(tm2, add = TRUE, layout = c(1,3), position = c(1, 2)) # drawTreemap(tm3, add = TRUE, layout = c(1,3), position = c(1, 3)) ## ----------------------------------------------------------------------------- # generate data frame set.seed(123) df <- data.frame( A = rep(c("a", "b", "c"), each = 15), B = sample(letters[4:12], 45, replace = TRUE) ) head(df) ## ----results = 'hide'--------------------------------------------------------- # by default cell (sector) size is encoded by number of members per group tm <- sunburstTreemap( data = df, levels = c("A", "B") ) ## ----fig_sunburst, fig.width = 12, fig.height = 4, out.width = "100%", fig.align = 'center', warning = FALSE---- # draw treemap with default options drawTreemap(tm, title = "A sunburst treemap", legend = TRUE, border_size = 2, label_color = grey(0.6), layout = c(1, 3), position = c(1, 1) ) # use custom color palette drawTreemap(tm, title = "Use custom palette", legend = TRUE, color_palette = rep(c("#81E06E", "#E68CFF", "#76BBF7"), c(3, 4, 5)), border_size = 2, label_level = 2, label_size = 0.7, label_color = grey(0.5), layout = c(1, 3), position = c(1, 2), add = TRUE ) # color cells (sectors) based on cell size drawTreemap(tm, title = "Coloring encoded by cell size", color_type = "cell_size", legend = TRUE, color_palette = rev(heat.colors(10)), border_size = 3, border_color = grey(0.3), label_level = 1, label_size = 2, label_color = grey(0.3), layout = c(1, 3), position = c(1, 3), add = TRUE )