Hallo!
I have this matrix:
SampleID, Day, Species1, Species2,Species3,...,Speciesn
1,Monday,abundance values
2,Monday,abundance values
11,Tuesday,abundance values
12,Tuesday,abundance values
21,Wednesday,abundance values
22,Wednesday,abundance values
I would like to plot the Days on the x-axis, and the species abundance
data on the y-axis. Each pair of values (i just have two measurements
for each day) should be represented by their mean with absolute error
bars (so we have basically a vertical min,max-range) and whiskers. The
means for each Species observation should be connected with lines.
Also of interest would be annotating the whispers with their sample ID
(because the whiskers basically represent the values for y1,2 (11,12;
21,22)).
Any help is welcome! I am new to R, so please bear with me. Thank you!
Tim Richter-Heitmann (M.Sc.)
PhD Candidate
International Max-Planck Research School for Marine Microbiology
University of Bremen
Microbial Ecophysiology Group (AG Friedrich)
FB02 - Biologie/Chemie
Leobener Stra?e (NW2 A2130)
D-28359 Bremen
Tel.: 0049(0)421 218-63062
Fax: 0049(0)421 218-63069
On Mon, 30 Jun 2014 10:42:28 AM Tim Richter-Heitmann wrote:
Hallo!
I have this matrix:
SampleID, Day, Species1, Species2,Species3,...,Speciesn
1,Monday,abundance values
2,Monday,abundance values
11,Tuesday,abundance values
12,Tuesday,abundance values
21,Wednesday,abundance values
22,Wednesday,abundance values
I would like to plot the Days on the x-axis, and the species
abundance
data on the y-axis. Each pair of values (i just have two
measurements
for each day) should be represented by their mean with absolute
error
bars (so we have basically a vertical min,max-range) and whiskers.
The
means for each Species observation should be connected with lines.
Also of interest would be annotating the whispers with their sample
ID
(because the whiskers basically represent the values for y1,2
(11,12;
21,22)).
Hi Tim,
I think this might get you started:
trhdf<-data.frame(SampleID=seq(0,50,by=10)+(1:2),
Day=factor(rep( c("Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday"),
each=2),levels=c("Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday")),
Species1=sample(0:20,12),Species2=sample(0:20,12),
Species3=sample(0:20,12),Species4=sample(0:20,12),
Species5=sample(0:20,12))
rollfunc<-function(x,FUN="mean",roll=2) {
lenx<-length(x)
xmeans<-rep(NA,lenx/2)
start<-1
for(xm in 1:(lenx/2)) {
xmeans[xm]<-do.call(FUN,list(x[start:(start+roll-1)]))
start<-start+roll
}
return(xmeans)
}
xpos<-rep(1:6,5)+seq(-0.4,0.4,by=0.2)
ypos<-as.vector(sapply(trhdf[,3:7],rollfunc))
ymin<-as.vector(sapply(trhdf[,3:7],rollfunc,"min"))
ymax<-as.vector(sapply(trhdf[,3:7],rollfunc,"max"))
library(plotrix)
plot(xpos,ypos,pch=c("1","2","3","4","5"),ylim=c(0,20),
xaxt="n",xlab="Day",ylab="Abundance")
dispersion(xpos,ypos,ymax,ymin,interval=FALSE)
staxlab(1,at=1:6,
labels=c("Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday"))
Jim