# Requirements: None ########################################################################## # COLOR.CODING attributes: v, color, mark # # color.coding constructor from a logical vector and a scalar color.coding <- function(v, color, mark=1) { val <- list(v=v, color=color, mark=mark) class(val) <- 'color.coding' val } is.color.coding <- function(x) inherits(x, 'color.coding') confidence.curve.color <- 3 bad.channel.replicate.color <- 4 bad.replicate.ratio.color <- 5 central.line.color <- 6 top.ten.color <- 7 significant.color <- 8 bottom.ten.solo.color <- 9 bottom.ten.color <- 10 boring.point.color <- 11 top.ten.solo.color <- 12 fold.difference.color <- 13 worst.channel.replicate.color <- 16 ########################################################################## # COLOR.CODED.PAIR attributes: x, y, ccl # # color.coded.pair constructor from two vectors and a list # that contains color.codings # plot scatter plot with colors color.coded.pair <- function(x, y, ccl) { val <- list(x=x, y=y, color.code.list=ccl) class(val) <- 'color.coded.pair' val } plot.color.coded.pair <- function(ob, pch=1, ...) { plot(ob$x, ob$y, type='n', ...) points(ob$x, ob$y, col=boring.point.color, pch=pch) if (is.list(ob$color.code.list)) { lapply(ob$color.code.list, function(cc, x, y) { if (sum(cc$v) > 0) { points(x[cc$v], y[cc$v], col=cc$color, pch=cc$mark) } }, ob$x, ob$y) } else if (is.color.coding(ob$color.code.list)) { v <- ob$color.code.list$v if (sum(v) > 0) { points(ob$x[v], ob$y[v], col=ob$color.code.list$color, pch=ob$color.code.list$mark) } } invisible(ob) }