[R] Selecting complementary colours
Thomas Lumley
tlumley at u.washington.edu
Tue May 22 18:01:01 CEST 2007
On Mon, 21 May 2007, John Fox wrote:
>
> In retrospect, I didn't specify the problem clearly: What I want to be able
> to do is to place text on a background of arbitrary (but known RGB) colour
> so that the text is legible. I guess that this is better described as a
> "contrasting" than a "complementary" colour.
Since luminance contrasts are necessary and sufficient for readable text,
you could use white for dark colors and black for light colors.
Luminance is roughly proportional to 0.2*(R^2.4)+0.6*(G^2.4), suggesting
something like
lightdark<-function (color)
{
rgb <- col2rgb(color)/255
L <- c(0.2, 0.6, 0) %*% rgb
ifelse(L >= 0.2, "#000060", "#FFFFA0")
}
This uses a pale yellow for dark backgrounds and a dark blue for light
backgrounds, and it seems to work reasonably well.
-thomas
More information about the R-help
mailing list