R/colorbar.R

Defines functions WColorBarH WColorBarV

Documented in WColorBarH WColorBarV

#' WColorBarV
#'
#' a vertical color bar
#'
#' @param data numeric vector
#' @param ... additional options to WHeatmap
#' @param label colorbar label
#' @param label.side t (for top) or b (for bottom)
#' @param label.fontsize label font size
#' @param label.space when label.use.data, the space between labels
#' @param label.use.data use data to show legend in situ
#' @param label.pad label padding
#' @return an object of class WColorBarV
#' @examples
#' WColorBarV(matrix(50:1))
#' @export
WColorBarV <- function(
    data, ...,
    label=NULL, label.side='t',
    label.fontsize = 12, label.pad = 0.005,
    label.space=0.05, label.use.data = FALSE) {

    cb.data <- matrix(data)
    if (!is.null(label)) {
        colnames(cb.data) <- label
        xticklabels <- TRUE
    } else {
        xticklabels <- FALSE
    }
    heat.gen <- WHeatmap(
        cb.data, sub.name='WColorBarV', xticklabels=xticklabels,
        xticklabel.side=label.side, xticklabel.fontsize=label.fontsize,
        yticklabel.pad=label.pad, yticklabel.use.data=label.use.data,
        yticklabel.space = label.space, ...)
    structure(function(group) {
        cb <- heat.gen(group)
        cb$orientation <- 'v'
        cb$cmp$cmap <- NULL
        cb
    }, class=c('WGenerator','WObject'))
}

#' WColorBarH
#'
#' a horizontal color bar
#'
#' @param data numeric vector
#' @param ... additional options to WHeatmap
#' @param label colorbar label
#' @param label.side l (for left) or r (for right)
#' @param label.fontsize label font size
#' @param label.pad label padding
#' @param label.space when label.use.data, the space between labels
#' @param label.use.data use data to show legend in situ
#' @return an object of class WColorBarH
#' @examples
#' WColorBarH(matrix(1:50))
#' @export
WColorBarH <- function(
    data, ...,
    label=NULL, label.side='r',
    label.fontsize = 12, label.pad = 0.005,
    label.space=0.05, label.use.data = FALSE) {
    
    cb.data <- matrix(data, nrow=1)
    if (!is.null(label)) {
        rownames(cb.data) <- label
        yticklabels <- TRUE
    } else {
        yticklabels <- FALSE
    }
    heat.gen <- WHeatmap(
        cb.data, sub.name='WColorBarH', yticklabels=yticklabels,
        yticklabel.side = label.side, yticklabel.fontsize=label.fontsize,
        xticklabel.pad = label.pad, xticklabel.use.data=label.use.data,
        xticklabel.space = label.space, ...)
    
    structure(function(group) {
        cb <- heat.gen(group)
        cb$orientation <- 'h'
        cb$cmp$cmap <- NULL
        cb
    }, class=c('WGenerator','WObject'))
}

Try the wheatmap package in your browser

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

wheatmap documentation built on March 18, 2022, 6:43 p.m.