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