On Feb 22, 2012, at 9:13 AM, josh rosen wrote:

thank you very much David! Can I follow up with a slight complication of this?
A 2 by 2 case, where the abline is different in each plot.

A relevant input code would be

thedataA1 <- data.frame(x1=rnorm(100,1,1),x2=rnorm(100,3,1)) #create data thedataB1 <- data.frame(x1=rnorm(100,2,1),x2=rnorm(100,4,1)) #create data thedataA2 <- data.frame(x1=rnorm(100,1,1),x2=rnorm(100,3,1)) #create data thedataB2 <- data.frame(x1=rnorm(100,2,1),x2=rnorm(100,4,1)) #create data
#four different abline
v1<-mean(thedataA1$x1)
v2<-mean(thedataB1$x1)
v3<-mean(thedataA2$x1)
v4<-mean(thedataB2$x1)

thedataB1.m<-melt(thedataB1)
thedataA1.m<-melt(thedataA1)
thedataA2.m<-melt(thedataA2)
thedataB2.m<-melt(thedataB2)


Errr ..... You failed to take the lesson that you need to create one data.frame with categorical variables. That's a pretty basic lesson for both lattice (and ggplot) graphics as well as regression applications.

# creating one density plot
densityplot(~value, thedataA1.m, groups=variable,

Unfortunately there is now no "variable" variable in your new data.

auto.key=list(columns=2),
                panel = function(x, y, ...) {
                        panel.densityplot(x, ...)
                        panel.abline(v=mean(thedataA1$x1), lty="dashed", 
col="red")

After going back and constructing a proper dataset, you should be passing 'groups' into the panel function and picking it up inside panel.abline. You can also recover the 'panel.number()' and then use them both to recover the means from the global environment when inside panel.abline. I probably would have used tapply to create a table with an index (in the enclosing enviroment) rather than creating 4 separate values to choose That way you could use one object name but construct the 4 indices. But for that to work you would have needed to follow my example about binding the 4 datasets into one.


One way to find previous worked examples in the rhelp Archives is to search with your favorite engine on strategies like "panel.number groups Sarkar" or "panel.number groups Andrews"

Deepayan Sarkar and Felix Andrews are the two persons from whom I have learned the most regarding the fine points of lattice plots.

And will you please learn to post in plain text?

--
david


                }
)






On 22 February 2012 13:48, David Winsemius <dwinsem...@comcast.net> wrote:

On Feb 22, 2012, at 5:28 AM, josh rosen wrote:

Hi,

I have created two separate overlapping density plots- see example code
below.
What I wish now to do is combine them into one figure where they sit side
by side.
Any help would be great!

many thanks in advance, josh.

#####################
thedataA <- data.frame(x1=rnorm(100,1,1),x2=rnorm(100,3,1)) #create data
thedataA.m<-melt(thedataA)

densityplot(~value, thedataA.m, groups=variable,auto.key=list(columns=2),
     panel = function(x, y, ...) {
             panel.densityplot(x, ...)
             panel.abline(v=0)
     }
)


The syntax for grouping (which gives theoverlaid but different colors as default output) and "separation" is fairly simple. Use the "|" operator for separated plots and the " .., groups= <var>, .." parameter for overlaying results. It's only going to work easily if they are all in the same dataset.

Try:

bigset <- cbind( rbind(thedataA.m, thedataB.m), ABgrp=rep(c("datA", "datB"), each=200) ) densityplot(~value|ABgrp, data=bigset, groups=variable, auto.key=list(columns=2),

      panel = function(x, y, ...) {
              panel.densityplot(x, ...)
              panel.abline(v=0)   } )


And please work on whatever practice is producing duplicate postings.

--
David.




thedataB <- data.frame(x1=rnorm(100,2,1),x2=rnorm(100,4,1)) #create data
thedataB.m<-melt(thedataA)

I assume that is a copy-paste-fail-to-correct error.


densityplot(~value, thedataB.m, groups=variable,auto.key=list(columns=2),
     panel = function(x, y, ...) {
             panel.densityplot(x, ...)
             panel.abline(v=0)
     }
)
######################

       [[alternative HTML version deleted]]


David Winsemius, MD
West Hartford, CT

______________________________________________
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.

Reply via email to