Re: [R] Comination of two barcharts and one xyplot
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&
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&qu
Re: [R] Comination of two barcharts and one xyplot
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"
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.
[R] Comination of two barcharts and one xyplot
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.