From: B. Bogart <bbogart_at_sfu.ca>

Date: Fri, 22 Feb 2008 11:35:58 -0800

}

*>> Hello Hadley,
*

*>>
*

*>> I have to say ggplot2 was worth the upgrade! I'm really enjoying the
*

*>> approach and wondering what I did with the base graphics.
*

*>>
*

*>> Anyhow I've looked over the documentation and scales, and read through
*

*>> the book section on the website and I still can't see how to apply my
*

*>> RGB channels to the fill of tiles in a plot.
*

*>>
*

*>> I'm working with a simple test case with 6x6 items, each with RGB
*

*>> components, ranging from 0 to 1.
*

*>>
*

*>> df <- expand.grid(x=1:6,y=1:6) # position of items in grid
*

*>> df$r <- c(rep(1,12),rep(0,24))
*

*>> df$g <- c(rep(0,12),rep(1,12),rep(0,12))
*

*>> df$b <- c(rep(0,24),rep(1,12))
*

*>>
*

*>> gives me three groups of values, each pure red, green and blue.
*

*>>
*

*>> So if that is the data, how can I make a geom_tile plot where each tile
*

*>> is coloured using the rgb components from the dataframe? I imagine
*

*>> something like:
*

*>>
*

*>> qplot(x,y,data=df,fill=rgb(r=r,g=g,b=b))
*

*>>
*

*>> where rgb() would be some function to combine the components into
*

*>> individual colours understood for tile filling.
*

*>>
*

*>> The only way I've been able to see how to specify colours are using the
*

*>> raw values and having the qplot scale figure out the mapping, or
*

*>> specifying the character colour for each element. Is there a way of
*

*>> supplying colour components?
*

*>>
*

*>> Thanks for your time,
*

*>>
*

*>>
*

*>> B. Bogart
*

*>>
*

*>> hadley wickham wrote:
*

*>> > You'll need 2.6.1.
*

*>> > Hadley
*

*>> >
*

*>> > On Feb 5, 2008 3:12 PM, B. Bogart <bbogart_at_sfu.ca> wrote:
*

*>> >> I'm using the r-cran R debian packages.
*

*>> >>
*

*>> >> R.Version() tells me:
*

*>> >>
*

*>> >> "R version 2.4.0 Patched (2006-11-25 r39997)"
*

*>> >>
*

*>> >> What is the min required version to use ggplot2?
*

*>> >>
*

*>> >>
*

*>> >> Thanks,
*

*>> >> B. Bogart
*

*>> >>
*

*>> >> hadley wickham wrote:
*

*>> >>> You'll need to make sure you have a recent version of R - what
*

*>> >>> version are you using?
*

*>> >>>
*

*>> >>> Hadley
*

*>> >>>
*

*>> >>> On Feb 5, 2008 1:45 PM, B. Bogart <bbogart_at_sfu.ca> wrote:
*

*>> >>>
*

*>> >>>> Hello Hadley,
*

*>> >>>>
*

*>> >>>> ggplot2 looks great!
*

*>> >>>>
*

*>> >>>> "install.packages("ggplot2")" did not work though, I get a message
*

*>> >>>> saying the package is not available in the repos. I choose the nearest
*

*>> >>>> mirror (Canada (BC)), could that mirror be out of date?
*

*>> >>>>
*

*>> >>>> I did not see any debian packages for ggplot2.
*

*>> >>>>
*

*>> >>>> Thanks,
*

*>> >>>> B. Bogart
*

*>> >>>>
*

*>> >>>>
*

*>> >>>>
*

*>> >>>> hadley wickham wrote:
*

*>> >>>>
*

>> >>>>>> I'm now using image() to show image data (in my case dumps of SOM

*>> >>>>>> weights) but would like to show RGB colour data, not just single "z"
*

*>> >>>>>> colour values.
*

*>> >>>>>>
*

*>> >>>>> You can do this fairly readily with ggplot2:
*

*>> >>>>>
*

*>> >>>>> install.packages("ggplot2")
*

*>> >>>>> library(ggplot2)
*

*>> >>>>> qplot(x, y, data=mydata, fill=rgb, geom="tile") + scale_fill_identity()
*

*>> >>>>>
*

*>> >>>>> (assuming that your variable containing the rgb colour is called rgb)
*

*>> >>>>>
*

*>> >>>>> If your data is originally in the matrix form used by image, see the
*

*>> >>>>> examples on http://had.co.nz/ggplot2/geom_tile.html on how to change
*

*>> >>>>> to the data.frame form used by ggplot.
*

*>> >>>>>
*

*>> >>>>> Hadley
*

*>> >>>>>
*

*>> >>>>>
*

*>> >>>
*

*>> >>>
*

*>> >>>
*

*>> >>
*

*>> >
*

*>> >
*

*>> >
*

*>>
*

*>>
*

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. Received on Fri 22 Feb 2008 - 19:40:35 GMT

Date: Fri, 22 Feb 2008 11:35:58 -0800

Hello all,,

What is the best practise for organizing data for easy ggplot faceting?

Right now I have a list of data.frames, each being an image. I can plot them with geom_tile separately, but as a list of data.frames I see no easy way to facet. For this kind of data what is the best practise to organize it for faceting?

Here is what I have now.

(note the data originally comes from a huge dataframe with the RGBA values for each 7500 pixels has its own variable.

som_images <- list()

for (unit in seq(1:36)) {

print(unit)

som_image <- expand.grid(x=1:100,y=1:75) som_image$r <- as.numeric(som_weights[unit,seq(1,30000,4)]) som_image$g <- as.numeric(som_weights[unit,seq(2,30000,4)]) som_image$b <- as.numeric(som_weights[unit,seq(3,30000,4)]) som_image$rgb <- rgb(som_image$r,som_image$g,som_image$b) som_images[[unit]] <- som_image

}

qplot(x, y, data=som_images[[1]], geom="tile", fill=rgb) + scale_fill_identity() + opts(aspect.ratio = .75)

I would like to facet so each "som_image" is in a 6x6 matrix (0 in the lower left, 36 in the upper right)

Thanks so much for your time,

B. Bogart

hadley wickham wrote:

> Probably the easiest thing is to do: > > df$rgb <- with(data, rgb(r, g, b) > qplot(x,y,data=df,fill=rgb) + scale_fill_identity() > > That creates a new variable that stores that actual colour, and then > tells ggplot to use the raw value, not to scale it in anyway. > > Hadley > > On Wed, Feb 20, 2008 at 2:41 PM, B. Bogart <bbogart_at_sfu.ca> wrote:

>> >>>>>> I'm now using image() to show image data (in my case dumps of SOM

> > > ______________________________________________R-help_at_r-project.org mailing list

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. Received on Fri 22 Feb 2008 - 19:40:35 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Fri 22 Feb 2008 - 20:30:16 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*