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
Somewhat mystified. Can anyone help?? Thanks Nick Wray
[[alternative HTML version deleted]]
Does adjustcolor() help?
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)
points(1:8,rep(0.75,8),col=adjustcolor(cb8, alpha.f = 0.3), pch=19,cex=2)
On 2023-07-23 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
>
>
>
> Somewhat mystified. Can anyone help?? Thanks Nick Wray
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
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 paletteWhy are you dividing by 307? You should divide by 255. Duncan Murdoch