[R] dichromat, regexp, and grid objects
baptiste auguie
baptiste.auguie at googlemail.com
Mon Sep 28 11:27:34 CEST 2009
Dear list,
The dichromat package defines a dichromat function which "Collapses
red-green color distinctions to approximate the effect of the two
common forms of red-green colour blindness, protanopia and
deuteranopia."
library(dichromat)
library(grid)
colorStrip <-
function (colors = 1:3, draw = TRUE)
{
x <- seq(0, 1 - 1/length(colors), length = length(colors))
y <- rep(0.5, length(colors))
my.grob <- grid.rect(x = unit(x, "npc"), y = unit(y, "npc"),
width = unit(1/length(colors), "npc"),
height = unit(1, "npc"), just = "left", hjust =
NULL, vjust = NULL,
default.units = "npc", name = NULL,
gp = gpar(fill = colors, col = colors, draw =
draw, vp = NULL))
my.grob
}
colorStrip(1:3)
colorStrip(dichromat(1:3))
Now what would be nice is a function that can edit the colours (col
and fill parameters) of an existing grob.
dichromatit <- function(x){
.NotYetImplemented()
}
dichromatit(colorStrip())
It could allow high-level testing for visual perception of lattice and
ggplot2 plots,
p1 = xyplot(1~1)
p2 = qplot(1,1, colour= I("red"))
dichromatit(p1)
p2 + dichromatit()
One approach could be to use only integer codes for colours, and
modify the current palette() (works also for base graphics). But this
is quite a stringent request for lattice and ggplot2 which define many
named colours in their various themes and scales. Therefore I'd like
to think of an approach based on a recursive modification of a grob's
gpar components. Does this seem doable with some regular expression
magic [*]?
All the best,
baptiste
[*]: http://xkcd.com/208/
More information about the R-help
mailing list