Skip to content

Plotting rgb proportions in R

6 messages · Tasha O'Hara, Jeff Newmiller, Jim Lemon +2 more

#
Hello,

I am trying to plot specific rgb color proportions of a marine specimen in
a stacked plot using R and I was looking for some help. I have several
rgb proportions per specimen (an example of one is below).  I've run into
different examples of people using vegan or grDevices. Can anyone help with
this?

Red    Green  Blue   %
249 158 37 56.311
249 158 68 4.319
249 158 98 0.058
249 128 7 13.965
249 128 37 12.87
188 128 37 0.029
249 128 68 0.161
188 128 68 0.015
188 98 7 0.029
219 128 7 2.773
219 128 37 2.583
188 98 68 0.058
219 128 68 0.525
249 188 37 0.876
249 188 68 1.08
219 98 7 0.482
249 188 98 0.015
249 158 7 3.852
#
I can't figure out what message you are hoping to convey in your plot from your posting... what are you comparing to what? Comments like "I've run into different examples of people using vegan (an analysis package with some diagnostic display functionality) or grDevices (a package supporting different device and graphic file formats)" fail to inform us as to where we can catch up with your reading or whether you liked what they did or not. Is there some missing analysis step or do you just want to present the raw data? Even a hand drawn sketch in PNG format would be some improvement in clarity.

Note that this is the wrong place to ask for help on theory... if you want to know what type of analysis you should attempt then you came here too soon... this is where we try to help you apply R to the problem once you know what your analysis strategy will be.
On December 18, 2018 9:17:24 AM PST, Tasha O'Hara <tasha.eileen at gmail.com> wrote:

  
    
#
Hi Tasha,
I may be right off the track, but you could plot RGB proportions on a
3D plot. The easiest way I can think if would be to convert your 0-255
values to proportions:

rgb_prop<-read.table(text="Red Green Blue pct
249 158 37 56.311
249 158 68 4.319
249 158 98 0.058
249 128 7 13.965
249 128 37 12.87
188 128 37 0.029
249 128 68 0.161
188 128 68 0.015
188 98 7 0.029
219 128 7 2.773
219 128 37 2.583
188 98 68 0.058
219 128 68 0.525
249 188 37 0.876
249 188 68 1.08
219 98 7 0.482
249 188 98 0.015
249 158 7 3.852",header=TRUE)
rgb_prop$Red<-rgb_prop$Red/255
rgb_prop$Green<-rgb_prop$Green/255
rgb_prop$Blue<-rgb_prop$Blue/255
library(scatterplot3d)
scatterplot3d(rgb_prop[,1:3],cex.symbols=sqrt(rgb_prop[,4]),
 color=rgb(rgb_prop[,1],rgb_prop[,2],rgb_prop[,3]),pch=19)

then plot the RGB values on a 3D scatterplot. I have included
arguments to make the symbols the actual RGB colors that you specify
and their size proportional to the square root of the percentages.

Jim
On Wed, Dec 19, 2018 at 5:17 AM Tasha O'Hara <tasha.eileen at gmail.com> wrote:
#
3-d Proportions must sum to 1and are thus actually 2-d and should preferaby
be plotted as a ternary plot. Several r packages will do this for you, e.g.
package Ternary. Search "ternary plots" on rseek.org for others.

-- Bert


Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Tue, Dec 18, 2018 at 3:10 PM Jim Lemon <drjimlemon at gmail.com> wrote:

            

  
  
#
I was probably a bit obscure and should have written "convert your
0-255 values to 0-1". As Bert notes, you can't get a sensible ternary
plot if your values do not sum to 1. scatterplot3d does a pretty good
job, if you run the example.


Jim
On Wed, Dec 19, 2018 at 3:26 PM Bert Gunter <bgunter.4567 at gmail.com> wrote:
#
Hi