Hi Rhelpers, Thanks a lot, Duncan, for your help. Yes, your solution was very much what I was looking for. I have learnt a lot of tricks from the code snippet that you provided. I would appreciate it if you could also show me how to create a legend for the plot. The text for the legend can be : "cat1", "cat2", "cat3". The first two are for the two categories in the barchart and the third for the line plot. Thanks, Ravi
----- Original Message ---- From: Duncan Mackay <[EMAIL PROTECTED]> To: ravi <[EMAIL PROTECTED]> Cc: r-help@r-project.org Sent: Thursday, 14 August, 2008 1:20:55 AM Subject: Re: [R] Comination of two barcharts and one xyplot At 01:17 14/08/2008, you wrote: >Hi Rhelpers, >Thanks a lot, Stephen, for showing me the way to get a data frame into a >pasteable format with the dput command. >My code is given below with the new correction. This should work, as >Stephen says, right off the bat :-) >## df1 is the first data frame >df1 <-structure(list(Year = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 8L, >7L), .Label = c("2003", "2005", "2007", "2009", "2011", "2013", >"2015K", "2015M"), class = "factor"), KI = c(15.53, 15.64, 16.18, >17.09, 22.39, 33.83, 44.91, 52.22), G48 = c(0.3, 0.29, 0.49, >0.67, 0.93, 1.29, 1.83, 2.14), AvCell = c(0.24, 0.33, 0.59, 0.91, >1.24, 1.87, 2.71, 3.15), HB = c(37.45, 34.64, 30.32, 29.47, 38.03, >58.37, 75.54, 87.71), Htens = c(0.76, 1.12, 1.63, 2.27, 3.11, >4.43, 6.28, 7.34), Impact = c(1.16, 1.78, 4.23, 6.76, 9.17, 14.06, >20.57, 23.88), Struct = c(3.02, 4.2, 6.67, 9.68, 13.18, 19.41, >27.51, 31.98), Tens = c(34.05, 32.88, 30.06, 29.25, 37.84, 57.6, >74.5, 86.57), Year.ord = structure(1:8, .Label = c("2003", "2005", >"2007", "2009", "2011", "2013", "2015M", "2015K"), class = c("ordered", >"factor"))), .Names = c("Year", "KI", "G48", "AvCell", "HB", >"Htens", "Impact", "Struct", "Tens", "Year.ord"), row.names = c(NA, >-8L), class = "data.frame") >## L1 is the second data frame >L1<-structure(list(Year = c(2009L, 2011L, 2013L), KIL = c(20, 24, >30), G48L = c(1, 1, 1), AvCellL = c(1, 1.5, 2), HBL = c(30, 35, >40), HtensL = c(2, 3, 4), ImpactL = c(10, 12, 14), StructL = c(10, >13, 16), TensL = c(35, 38, 45)), .Names = c("Year", "KIL", "G48L", >"AvCellL", "HBL", "HtensL", "ImpactL", "StructL", "TensL"), class = >"data.frame", row.names = c(NA, >-3L)) ># # Use the reshape package to melt the data frame >library(reshape) >df1m<-melt(df1,id=c("Year","Year.ord")) >## Use the lattice package to plot the barchart >library(lattice) >attach(df1m) >barchart(value~Year.ord|variable,scales=list(y="free",x=list(rot=90)),xlab="Year",ylab="No. > >of Tests *1000",col="blue") >This plot works just fine. But I want to go beyond this.What I want, in >each panel of the lattice barchart, is to plot histograms of the relevant >variable (KI, G48 etc) in one colour for the years 2003 to 2007, and in >another colour for the other years. On top of this, I want to have a line >plot in each panel with the limits for different years given in the second >data frame L1 (as bold lines). >I would like to have information on the following points : >1. How can I get a combination of these plots in every panel (two >histograms and one line plot)? Is it possible? >2. Is it easier to do this with ggplot? >3. I would like to know how I can present the legend also. >Will appreciate any help that I can get. >Thanking You, >Ravi > > >----- Original Message ---- >From: stephen sefick <[EMAIL PROTECTED]> >To: ravi <[EMAIL PROTECTED]> >Cc: r-help@r-project.org >Sent: Wednesday, 13 August, 2008 3:14:54 PM >Subject: Re: [R] Comination of two barcharts and one xyplot > >not reproducible > >On Wed, Aug 13, 2008 at 9:07 AM, ravi <[EMAIL PROTECTED]> wrote: > > Hi Rhelpers, > > I would like to have some help with a plot which is beyond my > capabilities. This plot that I am seeking involves an overlay of two > different barcharts and one xyplot. > > The code that I have used is the following : > > #save(df1,file="M:\\KBR\\df1.RData") > > load(file="M:\\KBR\\df1.RData") > > # df1$Year.ord created to obtain the right order i.e. 2015M < 2015K > > > Year.ord<-ordered(Year,levels=c('2003','2005','2007','2009','20011','2013','2015M','2015K')) > > # Use reshape package to melt the data frame > > library(reshape) > > df1m<-melt(df1,id=c("Year","Year.ord")) > > library(lattice) > > attach(df1m) > > > barchart(value~Year.ord|variable,scales=list(y="free",x=list(rot=90)),xlab="Year",ylab="No. > > of Tests *1000",col="blue") > > This plot works just fine. But I want to go beyond this. My first data > frame (df1) is : > > "Year","KI","G48","AvCell","HB","Htens","Impact","Struct","Tens","Year.ord" > > "1","2003",15.53,0.3,0.24,37.45,0.76,1.16,3.02,34.05,"2003" > > "2","2005",15.64,0.29,0.33,34.64,1.12,1.78,4.2,32.88,"2005" > > "3","2007",16.18,0.49,0.59,30.32,1.63,4.23,6.67,30.06,"2007" > > "4","2009",17.09,0.67,0.91,29.47,2.27,6.76,9.68,29.25,"2009" > > "5","2011",22.39,0.93,1.24,38.03,3.11,9.17,13.18,37.84,"2011" > > "6","2013",33.83,1.29,1.87,58.37,4.43,14.06,19.41,57.6,"2013" > > "7","2015M",44.91,1.83,2.71,75.54,6.28,20.57,27.51,74.5,"2015M" > > "8","2015K",52.22,2.14,3.15,87.71,7.34,23.88,31.98,86.57,"2015K" > > My second data frame is (L1) is : > > "Year","KIL","G48L","AvCellL","HBL","HtensL","ImpactL","StructL","TensL" > > "1",2009,20,1,1,30,2,10,10,35 > > "2",2011,24,1,1.5,35,3,12,13,38 > > "3",2013,30,1,2,40,4,14,16,45 > > What I want, in each panel of the lattice barchart, is to plot > histograms of the relevant variable (KI, G48 etc) in one colour for the > years 2003 to 2007, and in another colour for the other years. On top of > this, I want to have a line plot in each panel with the limits for > different years given in the second data frame L1 (as bold lines). > > I would like to have information on the following points : > > 1. How can I get a combination of these plots in every panel (two > histograms and one line plot)? Is it possible? > > 2. Is it easier to do this with ggplot? > > 3. I would like to know how I can present the legend also. > > Will appreciate any help that I can get. > > > > Thanking You, > > Ravi > > > > > > ______________________________________________ > > 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. > > > > > >-- >Let's not spend our time and resources thinking about things that are >so little or so large that all they really do for us is puff us up and >make us feel like gods. We are mammals, and have not exhausted the >annoying little problems of being mammals. > > -K. Mullis > > >______________________________________________ >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. I am not sure what you want exactly, but try barchart(value~Year.ord|variable,df1m, scales=list(y="free",x=list(rot=90)), xlab="Year", ylab="No. of Tests *1000", panel = function(x,y){ pnl <- panel.number () panel.barchart(x,y, col=rep(c("blue","red"),c(3,5)), horiz=F) llines(4:6, L1[,(pnl+1)] ) # positions of years 2009,11,13 } ) HTH Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England ARMIDALE NSW 2351 Email home: [EMAIL PROTECTED] ______________________________________________ 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.