view viridis.R @ 4:cf11fa0c47c8 draft default tip

planemo upload for repository https://github.com/workflow4metabolomics/tools-metabolomics commit b5f7f56b5ffc3c900236c077f72b321df20647be
author workflow4metabolomics
date Thu, 23 Jan 2025 15:28:44 +0000
parents 546c7ccd2ed4
children
line wrap: on
line source

viridis <- function(n, alpha = 1, begin = 0, end = 1, direction = 1, option = "D") {
    if (begin < 0 | begin > 1 | end < 0 | end > 1) {
        stop("begin and end must be in [0,1]")
    }
    if (abs(direction) != 1) {
        stop("direction must be 1 or -1")
    }
    if (direction == -1) {
        tmp <- begin
        begin <- end
        end <- tmp
    }
    option <- switch(EXPR = option,
        A = "A",
        magma = "A",
        B = "B",
        inferno = "B",
        C = "C",
        plasma = "C",
        D = "D",
        viridis = "D",
        E = "E",
        cividis = "E",
        {
            warning(paste0("Option '", option, "' does not exist. Defaulting to 'viridis'."))
            "D"
        }
    )
    map <- viridisLite::viridis.map[viridisLite::viridis.map$opt ==
        option, ]
    map_cols <- grDevices::rgb(map$R, map$G, map$B)
    fn_cols <- grDevices::colorRamp(map_cols,
        space = "Lab",
        interpolate = "spline"
    )
    cols <- fn_cols(seq(begin, end, length.out = n)) / 255
    grDevices::rgb(cols[, 1], cols[, 2], cols[, 3], alpha = alpha)
}