linde
2013-Feb-11 09:01 UTC
[R] How to plot doubles series with different location using plotCI
Dear list members, I would like to create two series of plotted mean values and error bars, yet with different locations along the x-axis. Plotting of first series using plotCI with the standard arguments goes without any problem. However I do not succeed to add the second series in the same plot, which should be horizontally shifted from the first series along the x-axis. The “add=TRUE” argument works well. Is there any argument defining the series location within plotCI. For example the tool “boxplot” contains the “at” argument. I found examples of plotCI where a vertical shift is realized (e.g. “x=means+1e5”), never a horizontal shift. Here you find data information: ##data value1<-c(1,2,1,2,1,3,4,2,6,1,3,4,2,6) value2<-c(1,5,1,2,4,4,4,3,3,1,3,4,9,8) typo<-c("C","C","C","C","A","A","A","A","A","B","B","B","B","B") tab1<-data.frame(data=cbind(value1,value2,typo)) colnames(tab1)<-c("value1","value2","typo") tab1$value1<-as.numeric(tab1$value1) tab1$value2<-as.numeric(tab1$value2) ##mean and error first data series tmp <- split(tab1$value1,tab1$typo) means <- sapply(tmp, mean) stdev <- sapply(tmp, sd) n <- sapply(tmp,length) ciw <- qt(0.975, n) * stdev / sqrt(n) ##plotting first data series plotCI(x=means,uiw=stdev, col="red", barcol="red", lwd=3, pch=18, cex=2, xaxt="n", yaxt="n", ylab='benefit',xlab='typo', yaxs = 'i',ylim=c(0,8)) axis(side=1, at=1:3, labels=names(tmp), cex=0.7) ##mean and error second data series tmp <- split(tab1$value2,tab1$typo) means <- sapply(tmp, mean) stdev <- sapply(tmp, sd) n <- sapply(tmp,length) ciw <- qt(0.975, n) * stdev / sqrt(n) ##the problem: plotting second dataseries plotCI(x=means, uiw=stdev, col="steelblue", barcol="steelblue", lwd=2, pch=18, cex=2, xaxt="n", yaxt="n", ylab='qualite',xlab='type', yaxs 'i',add=T) ##this series of data is now superposed, but would like to put them horizontally shifted next to the red values Thanks in advance, Rosalinde Van Couwenberghe [[alternative HTML version deleted]]
Jose Iparraguirre
2013-Feb-11 10:12 UTC
[R] How to plot doubles series with different location using plotCI
Hi Rosalinde, If you set the argument err equal to "x", you'll get horizontal error bars. Hope this helps, Jos? Jos? Iparraguirre Chief Economist Age UK T 020 303 31482 E Jose.Iparraguirre at ageuk.org.uk Twitter @jose.iparraguirre at ageuk Tavis House, 1- 6 Tavistock Square London, WC1H 9NB www.ageuk.org.uk?| ageukblog.org.uk | @ageukcampaigns -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of linde Sent: 11 February 2013 09:02 To: r-help at r-project.org Subject: [R] How to plot doubles series with different location using plotCI Dear list members, I would like to create two series of plotted mean values and error bars, yet with different locations along the x-axis. Plotting of first series using plotCI with the standard arguments goes without any problem. However I do not succeed to add the second series in the same plot, which should be horizontally shifted from the first series along the x-axis. The ???add=TRUE??? argument works well. Is there any argument defining the series location within plotCI. For example the tool ???boxplot??? contains the ???at??? argument. I found examples of plotCI where a vertical shift is realized (e.g.?? ???x=means+1e5???), never a horizontal shift. Here you find data information: ##data value1<-c(1,2,1,2,1,3,4,2,6,1,3,4,2,6) value2<-c(1,5,1,2,4,4,4,3,3,1,3,4,9,8) typo<-c("C","C","C","C","A","A","A","A","A","B","B","B","B","B") tab1<-data.frame(data=cbind(value1,value2,typo)) colnames(tab1)<-c("value1","value2","typo") ? tab1$value1<-as.numeric(tab1$value1) tab1$value2<-as.numeric(tab1$value2) ##mean and error first data series tmp <- split(tab1$value1,tab1$typo) means <- sapply(tmp, mean) stdev <- sapply(tmp, sd) n <- sapply(tmp,length) ciw <- qt(0.975, n) * stdev / sqrt(n) ##plotting first data series plotCI(x=means,uiw=stdev, col="red", barcol="red", lwd=3, pch=18, cex=2, xaxt="n", yaxt="n",?? ylab='benefit',xlab='typo', yaxs = 'i',ylim=c(0,8)) axis(side=1, at=1:3, labels=names(tmp), cex=0.7) ?? ##mean and error second data series tmp <- split(tab1$value2,tab1$typo) means <- sapply(tmp, mean) stdev <- sapply(tmp, sd) n <- sapply(tmp,length) ciw <- qt(0.975, n) * stdev / sqrt(n) ##the problem: plotting second dataseries plotCI(x=means, uiw=stdev, col="steelblue", barcol="steelblue", lwd=2, pch=18, cex=2, xaxt="n", yaxt="n", ylab='qualite',xlab='type', yaxs = 'i',add=T)?? ##this series of data is now superposed, but would like to put them horizontally shifted next to the red values Thanks in advance, Rosalinde Van Couwenberghe [[alternative HTML version deleted]] Wrap Up and Run 10k is back! Also, new for 2013 ? 2km intergenerational walks at selected venues. So recruit a buddy, dust off the trainers and beat the winter blues by signing up now: http://www.ageuk.org.uk/10k Milton Keynes | Oxford | Sheffield | Crystal Palace | Exeter | Harewood House, Leeds | Tatton Park, Cheshire | Southampton | Coventry Age UK Improving later life http://www.ageuk.org.uk ------------------------------- Age UK is a registered charity and company limited by guarantee, (registered charity number 1128267, registered company number 6825798). Registered office: Tavis House, 1-6 Tavistock Square, London WC1H 9NA. For the purposes of promoting Age UK Insurance, Age UK is an Appointed Representative of Age UK Enterprises Limited, Age UK is an Introducer Appointed Representative of JLT Benefit Solutions Limited and Simplyhealth Access for the purposes of introducing potential annuity and health cash plans customers respectively. Age UK Enterprises Limited, JLT Benefit Solutions Limited and Simplyhealth Access are all authorised and regulated by the Financial Services Authority. ------------------------------ This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you receive a message in error, please advise the sender and delete immediately. Except where this email is sent in the usual course of our business, any opinions expressed in this email are those of the author and do not necessarily reflect the opinions of Age UK or its subsidiaries and associated companies. Age UK monitors all e-mail transmissions passing through its network and may block or modify mails which are deemed to be unsuitable. Age Concern England (charity number 261794) and Help the Aged (charity number 272786) and their trading and other associated companies merged on 1st April 2009. Together they have formed the Age UK Group, dedicated to improving the lives of people in later life. The three national Age Concerns in Scotland, Northern Ireland and Wales have also merged with Help the Aged in these nations to form three registered charities: Age Scotland, Age NI, Age Cymru.
Jim Lemon
2013-Feb-11 10:41 UTC
[R] How to plot doubles series with different location using plotCI
On 02/11/2013 08:01 PM, linde wrote:> > > Dear list > members, > > I would > like to create two series of plotted mean values and error bars, yet with > different locations along the x-axis. > Plotting of > first series using plotCI with the standard arguments goes without any problem. > However I do not succeed to add the second series in the same plot, which > should be horizontally shifted from the first series along the x-axis. The ???add=TRUE??? > argument works well. Is there any argument defining the series location within > plotCI. For example the tool ???boxplot??? contains the ???at??? argument. I found > examples of plotCI where a vertical shift is realized (e.g.? ???x=means+1e5???), never a horizontal shift. > > Here > you find data information: > > ##data > value1<-c(1,2,1,2,1,3,4,2,6,1,3,4,2,6) > value2<-c(1,5,1,2,4,4,4,3,3,1,3,4,9,8) > typo<-c("C","C","C","C","A","A","A","A","A","B","B","B","B","B") > tab1<-data.frame(data=cbind(value1,value2,typo)) > colnames(tab1)<-c("value1","value2","typo") > ? > tab1$value1<-as.numeric(tab1$value1) > tab1$value2<-as.numeric(tab1$value2) > > ##mean and error first data series > > tmp<- > split(tab1$value1,tab1$typo) > means<- > sapply(tmp, mean) > stdev<- > sapply(tmp, sd) > n<- > sapply(tmp,length) > ciw<- > qt(0.975, n) * stdev / sqrt(n) > > ##plotting > first data series > plotCI(x=means,uiw=stdev, > col="red", barcol="red", lwd=3, pch=18, > cex=2, > xaxt="n", yaxt="n",? ylab='benefit',xlab='typo', yaxs = 'i',ylim=c(0,8)) > axis(side=1, > at=1:3, labels=names(tmp), cex=0.7) > ? > > ##mean and error second data series > > tmp<- > split(tab1$value2,tab1$typo) > means<- > sapply(tmp, mean) > stdev<- > sapply(tmp, sd) > n<- > sapply(tmp,length) > ciw<- > qt(0.975, n) * stdev / sqrt(n) > > ##the > problem: plotting second dataseries > plotCI(x=means, > uiw=stdev, col="steelblue", barcol="steelblue", lwd=2, > pch=18, > cex=2, > xaxt="n", yaxt="n", ylab='qualite',xlab='type', yaxs > 'i',add=T)? ##this series of data is now superposed, > but would like to put them horizontally shifted next to the red values >Hi Rosalinde, I think you are mixing up the "x" and "y" values. Try this: library(plotrix) plotCI(means,uiw=stdev,col="red",lwd=3,pch=18, cex=2,xaxt="n",yaxt="n",ylab='benefit',xlab='typo', yaxs='i',xlim=c(0.6,3.5),ylim=c(0,8)) axis(side=1,at=1:3,labels=names(tmp),cex=0.7) plotCI(x=1:3+0.1,y=means,uiw=stdev,col="steelblue", lwd=2,pch=18,cex=2,xaxt="n",yaxt="n",ylab='qualite', xlab='type',yaxs='i',add=T) Jim