[R] col2rgb() function

Achim Zeileis Ach|m@Ze||e|@ @end|ng |rom u|bk@@c@@t
Sun Jul 23 22:13:23 CEST 2023


Just one addition which may or may not be useful: The color palette you 
use is also known as "Okabe-Ito" and it is the default set of colors in 
the palette.colors() function. This function also has an optional alpha 
argument. So if you want to generate these colors with an alpha of 0.3 you 
can also do:

palette.colors(8, alpha = 0.3)

or more explicitly

palette.colors(8, palette = "Okabe-Ito", alpha = 0.3)

On Sun, 23 Jul 2023, Nick Wray wrote:

> Thanks That works nicely  Nick
>
> On Sun, 23 Jul 2023 at 19:26, Ben Bolker <bbolker using gmail.com> wrote:
>
>>    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 using 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.
>>
>> ______________________________________________
>> R-help using 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.
>>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using 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.
>


More information about the R-help mailing list