On 23/07/2023 2:15 p.m., Nick Wray wrote:
Hello I have a palette vector of colour blind colours (in hexadecimal)
which I’m using for plots, but they are not see-through, and as I wanted to
overlay some histograms I wanted to convert these colours to rgb, when you
can set the opacity.
I have found the function col2rgb(), which works in the sense that it gives
a vector of numbers but these don’t work directly in rgb because they are
too big. If I divide through to make them all less than 1 I don’t get the
corresponding colour-blind hue, but something somewhat off.
Here is the colour-blind palette in a plot:
*cb8<- c("#000000", "#E69F00", "#56B4E9", "#009E73","#F0E442", "#0072B2",
"#D55E00", "#CC79A7")*
*plot(0,0,xlim=c(1,8),ylim=c(0,1))*
*points(1:8,rep(0.5,8),col=cb8,pch=19,cex=2)*
so if I try to convert the red dot ("#D55E00") (number 7) I get
*col2rgb("#D55E00"*
[,1]
red 213
green 94
blue 0
*points(7,0.25,col=rgb(rgb(213,94,0)),pch=19,cex=2)*
gives me an error message and although if I divide through
*points(7,0.25,col=rgb(213/307,94/307,0),pch=19,cex=2)*
gives me a reddish dot, but not the same as in the colour-blind palette
Why are you dividing by 307? You should divide by 255.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.