inst/doc/color_pals.R

## ----setup, include = FALSE---------------------------------------------------
org_opt <- options()  # store original user options

options(max.print = "75")

knitr::opts_chunk$set(collapse = FALSE, 
                      comment = "#>", 
                      prompt = FALSE,
                      tidy = FALSE,
                      echo = TRUE, 
                      message = FALSE,
                      warning = FALSE,
                      # Default figure options:
                      dpi = 100, 
                      fig.align = 'center',
                      fig.height = 5.0,
                      fig.width  = 7.5,
                      out.width = "600px")

# URLs: ------ 

# unicol package: 
url_unicol_cran   <- "https://CRAN.R-project.org/package=unicol"
url_unicol_github <- "https://github.com/hneth/unicol"

url_github_doc_rel <- "https://hneth.github.io/unicol/"      # release version  
url_github_doc_dev <- "https://hneth.github.io/unicol/dev/"  # dev version

# unikn / Uni Konstanz:
url_unikn <- "https://www.uni-konstanz.de"

# unikn package: 
url_unikn_cran   <- "https://CRAN.R-project.org/package=unikn"
url_unikn_github <- "https://github.com/hneth/unikn"

## ----load-unicol-pkg, message = FALSE, warning = FALSE------------------------
# install.packages('unicol')  # install unicol from CRAN client
library('unicol')             # load the package

## ----unicol-stats, echo = FALSE-----------------------------------------------
n_pals <- length(unique(unicol_data$pal))
n_inst <- length(unique(unicol_data$inst))

## ----unicol-pals-table-static, echo = FALSE, eval = FALSE---------------------
#  # Data:
#  all_pals_df <- unicol_data
#  names(all_pals_df) <- c("Institution", "(aka.)", "URL", "Palette name")
#  
#  tab_caption <- paste0("Overview of ", n_pals, " unicol palettes (from ", n_inst, " institutions).")
#  
#  # Print table:
#  knitr::kable(all_pals_df, caption = tab_caption, row.names = TRUE)

## ----source-util-funs, echo = FALSE-------------------------------------------
# 1. Utility functions: ------

source("../R/5_util.R")

## ----unicol-data-table, echo = FALSE------------------------------------------

# 2. Process unicol_data: ------

my_pals <- unicol_data$pal

# Look up URLs and create links for my_pals:
pal_urls <- lookup(my_pals, unicol_data, v_1 = "pal", v_2 = "url")
pal_inst_links <- link_inst(my_pals)
pal_doc_links  <- link_github_doc(my_pals)
pal_lengths    <- sapply(X = unicol_data$pal, FUN = n_col)

# Determine countries from URLs:
pal_countries <- url_2_country(pal_urls)

# Create summary df:
my_df <- data.frame(inst = pal_inst_links, 
                    # url = pal_urls, 
                    country = pal_countries, 
                    pal = pal_doc_links,
                    n_col = pal_lengths)

row.names(my_df) <- 1:nrow(my_df)
col_names <- c("University / Institution", 
               # "URL", 
               "Country", 
               "Color palette", 
               "N of colors")


# 3. Print df as table: ------

df_caption <- paste0("Overview of ", n_pals, " unicol palettes (from ", n_inst, " institutions).")

knitr::kable(my_df, caption = df_caption, col.names = col_names, row.names = TRUE)

## ----unicol-pals-example, echo = FALSE, eval = TRUE---------------------------
# Parameters:
N <- length(unicol_data$pal)
n <- 50 # N

set.seed(24) # reproducible randomness

# A: Get sample_n of my_pals from all unicol_data$pal:
sample_n <- sort(sample(x = 1:N, size = n, replace = FALSE))
my_pals <- unicol_data$pal[sample_n]

# B: Get sample_n of primary_pals:
is_pal_1 <- grepl(pattern = "_1", unicol_data$pal)
# sum(is_pal_1)
primary_pals <- unicol_data$pal[is_pal_1]

N <- length(primary_pals)
sample_n <- sort(sample(x = 1:N, size = n, replace = FALSE))
my_pals <- primary_pals[sample_n]

# Initialize data structures:
pal_list  <- vector(mode = "list", length = n)
pal_names <- vector(mode = "character", length = n)
col_count <- 0

# Loop: Iterate through n palettes:
for (i in 1:n){
  
  cur_name  <- my_pals[i]
  cur_pal   <- get(cur_name)
  cur_count <- length(cur_pal)
    
  pal_list[[i]] <- cur_pal
  pal_names[i]  <- cur_name
  col_count     <- col_count + cur_count
    
} # for i loop end.

# Check:
# pal_list
# pal_names

# Captions:
tab_caption <- paste0("A sample of ", n, " unicol palettes (containing ", col_count, " colors).")
fig_caption <- paste0("Figure 1: A sample of ", n, " unicol palettes (containing ", col_count, " colors).")
my_main     <- paste0("Illustrating ", n, " unicol palettes (with ", col_count, " colors)")

## ----unicol-pals-example-stats, echo = FALSE, eval = FALSE--------------------
#  # Stats (for n <- N):
#  n_pals  # number of color palettes: 236 on 2023-09-14.
#  n_inst  # number of institutions:   102 on 2023-09-14.
#  # Colors (in current set):
#  length(unlist(pal_list))          # number of colors: 253 on 2023-09-14.
#  length(unique(unlist(pal_list)))  # number of unique colors: 222 on 2023-09-14.

## ----unicol-pals-table-sample, echo = FALSE, eval = FALSE---------------------
#  knitr::kable(unicol_data[sample_n, ], caption = tab_caption)

## ----unicol-pals-figure-sample, echo = FALSE, eval = FALSE, fig.asp = 1.5, fig.cap = fig_caption----
#  # Figure: Illustrate color palettes:
#  unikn::seecol(pal = pal_list,
#                pal_names = pal_names,
#                main = my_main)

## ----restore-org-options, include = FALSE-------------------------------------
options(org_opt)  # restore original user options

Try the unicol package in your browser

Any scripts or data that you put into this service are public.

unicol documentation built on May 29, 2024, 7:17 a.m.