Awesome, thank you so much for this! I plan to play around with this more next week with my actual data, but it provides a lot more options than I had before I posted. The link will help too.
kb On Oct 20, 8:18 pm, Dennis Murphy <djmu...@gmail.com> wrote: > AFAIK, you can't 'add' two ggplot2 graphs together; the problem in > this case is that the two color scales would clash. If you're willing > to discretize the z values, then you could pull it off. Here's an > example: > > d <- data.frame(x = rnorm(100), y = rnorm(100), z = factor(1 + > (rnorm(100) > 0))) > d1 <- data.frame(x = rnorm(100), y = rnorm(100), z = factor(3 + > (rnorm(100) > 0))) > dd <- rbind(d, d1) > > In each data frame, I'm assigning two factor levels depending on > whether z > 0 or not. The factor levels are 1, 2 in d and 3, 4 in d1; > when rbinded together, z has four distinct levels. Now call ggplot(): > > ggplot(dd, aes(x = x, y = y, colour = z)) + geom_point() + > scale_colour_manual(values = c('1' = 'red', '2' = 'blue', '3' = 'green', > '4' = 'yellow')) > > This may be coarser than you like, so you could always use the cut() > function to discretize z in each data frame; you'll want to assign the > levels so that they are distinct in the combined data frame. Example: > > d3 <- data.frame(x = rnorm(100), y = rnorm(100), > z = cut(rnorm(100), breaks = c(-Inf, -0.5, 0.5, Inf), > labels = 1:3)) > d4 <- data.frame(x = rnorm(100), y = rnorm(100), > z = cut(rnorm(100), breaks = c(-Inf, -0.5, 0.5, Inf), > labels = 4:6)) > dd2 <- rbind(d3, d4) > > mycols <- c('red', 'maroon', 'blue', 'green', 'cyan', 'yellow') > ggplot(dd2, aes(x = x, y = y, colour = z)) + geom_point() + > scale_colour_manual(breaks = levels(dd2$z), > values = mycols) > > You can always use the labels = argument of scale_colour_manual() to > assign more evocative legend values, or equivalently, you can assign > the labels in the cut() function within d3 and d4 to those you want in > the legend and leave the plot code as is. > > BTW, there is a dedicated ggplot2 list to which you can subscribe > throughhttp://had.co.nz/ggplot2/(look for the ggplot2 mailing list > near the top of the page). The list archives are accessible through > the same link. > > HTH, > Dennis > > > > > > > > > > On Thu, Oct 20, 2011 at 12:25 PM, Kerry <kbro...@gmail.com> wrote: > > Can someone please help me out with this? The ggplot2 suggestion works > > great but I've spent a few days trying to figure out how to plot 2 > > variables with it and I'm stuck. Here's my example code: > > > library(ggplot2) > > #Here's the 1st plot > > x<-rnorm(100) > > y<-rnorm(100) > > z<-rnorm(100) > > d <- data.frame(x,y,z) > > dg<-qplot(x,y,colour=z,data=d) > > dg + scale_colour_gradient(low="red", high="blue") > > > #Here's the 2nd plot which will delete the 1st plot above but I'd > > like > > them to be plotted together > > x1<-rnorm(100) > > y2<-rnorm(100) > > z3<-rnorm(100) > > d1 <- data.frame(x1,y1,z1) > > dg1 <-qplot(x1,y1,colour=z1,data=d1) > > dg1 + scale_colour_gradient(low="green", high="yellow") > > > I've been trying to get long format working but it just doesn't make > > any sense to me. > > > Thanks, > > kb > > > On Oct 17, 3:10 pm, Kerry <kbro...@gmail.com> wrote: > >> Yes, the qplot works great, but do you know how to allow for multiple > >> plots? I want one variable to be plotted say from blue to red and > >> another say from yellow to green but in the same graph, each having > >> there own separate legends. I've tried print() and arrange() but no > >> luck. > > >> Thanks again, > >> kb > > >> On Oct 2, 10:42 pm, Ben Bolker <bbol...@gmail.com> wrote: > > >> > Duncan Murdoch <murdoch.duncan <at> gmail.com> writes: > > >> > > On 11-10-02 1:11 PM, Kerry wrote: > >> > > > I have 3 columns of data and want to plot each row as a point in a > >> > > > scatter plot and want one column to be represented as a color > >> > > > gradient > >> > > > (e.g. larger values being more red). Anyone know the command or > >> > > > package for this? > > >> > > It's not a particularly effective display, but here's how to do it. > >> > > Use > >> > > rainbow(101) in place of rev(heat.colors(101)) if you like. > > >> > > x <- rnorm(10) > >> > > y <- rnorm(10) > >> > > z <- rnorm(10) > >> > > colors <- rev(heat.colors(101)) > >> > > zcolor <- colors[(z - min(z))/diff(range(z))*100 + 1] > >> > > plot(x,y,col=zcolor) > > >> > or > > >> > d <- data.frame(x,y,z) > >> > library(ggplot2) > >> > qplot(x,y,colour=z,data=d) > > >> > I agree about the "not particularly effective display" > >> > comment, but if you have two continuous predictors and > >> > a continuous response you've got a tough display problem -- > >> > your choices are: > > >> > 1. use color, size, or some other graphical characteristic > >> > (pretty far down on the "Cleveland hierarchy") > >> > 2. use a perspective plot (hard to get the right viewing > >> > angle, often confusing) > >> > 3. use coplots/small multiples/faceting (requires > >> > discretizing one dimension) > > >> > ______________________________________________ > >> > r-h...@r-project.org mailing > >> > listhttps://stat.ethz.ch/mailman/listinfo/r-help > >> > PLEASE do read the posting > >> > guidehttp://www.R-project.org/posting-guide.html > >> > and provide commented, minimal, self-contained, reproducible code. > > >> ______________________________________________ > >> r-h...@r-project.org mailing > >> listhttps://stat.ethz.ch/mailman/listinfo/r-help > >> PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html > >> and provide commented, minimal, self-contained, reproducible code. > > > ______________________________________________ > > r-h...@r-project.org mailing list > >https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > r-h...@r-project.org mailing listhttps://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@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.