[R] Superimpose ksmooth() onto barplot
Nathan S. Watson-Haigh
nathan.watson-haigh at csiro.au
Wed Feb 10 00:43:40 CET 2010
I'd like to superimpose a ksmooth() onto a barplot().
My data is:
> d
2009-06-20 2009-06-21 2009-06-22 2009-06-23 2009-06-24
2009-06-25 2009-06-26 2009-06-27 2009-06-28 2009-06-29 2009-06-30
2009-07-01 2009-07-02
Same Breed (B) 12.64 21.08 13.52 12.51
13.71 9.91 14.24 7.18 11.81 5.92
12.04 17.96 2.99
Different Breed 3.70 3.43 5.43 4.43
3.69 1.83 2.95 2.93 4.44 3.47
9.90 10.63 2.92
2009-07-04 2009-07-05 2009-07-06 2009-07-07 2009-07-08
2009-07-09 2009-07-10 2009-07-11 2009-07-12 2009-07-13 2009-07-14
2009-07-15 2009-07-16
Same Breed (B) 27.81 26.79 24.93 23.39
27.52 28.24 12.60 2.25 1.20 0.51
0.18 1.31 0.40
Different Breed 12.16 4.53 8.51 11.77
5.65 11.67 5.81 0.53 1.26 0.42
1.10 0.20 0.29
2009-07-17 2009-07-18 2009-07-19 2009-07-21 2009-07-22
2009-07-23 2009-07-24 2009-07-25 2009-07-26 2009-07-27 2009-07-28
2009-07-29 2009-10-29
Same Breed (B) 0.24 0.03 0.05 13.34
7.70 9.50 9.12 8.62 10.60 7.46
13.17 15.55 3.17
Different Breed 0.13 0.01 0.05 4.98
2.75 4.38 2.17 3.51 1.97 2.68
1.60 2.47 0.38
2009-10-30 2009-10-31 2009-11-01 2009-11-02 2009-11-03
2009-11-04 2009-11-05 2009-11-06 2009-11-07 2009-11-08 2009-11-09
2009-11-24 2009-11-25
Same Breed (B) 1.39 3.57 3.53 1.30
2.26 3.41 3.44 4.04 1.71 2.16
5.01 4.34 3.58
Different Breed 0.51 0.85 1.49 1.99
6.83 1.91 1.54 1.44 0.60 2.08
1.55 2.13 1.44
2009-11-26 2009-11-27 2009-11-28 2009-11-29 2009-11-30
Same Breed (B) 2.12 2.34 1.90 4.99 2.11
Different Breed 4.21 1.00 2.28 2.90 1.68
I thought the following might work ok, but the x-axis doesn't quite line
up correctly for the lines because of the spacing between the bars. I
could set the space to zero, but does anyone have any thoughts on how to
maintain the spacing and "stretch" the lines data?
barplot(as.matrix(d), beside=FALSE, las=2,
col=as.numeric(as.factor(rownames(d))))
lines(ksmooth(1:ncol(d), colSums(d), kernel="normal",
bandwidth=bandwidth), type="l", lwd=2, col="blue")
lines(ksmooth(1:ncol(d), d[1,], kernel="normal", bandwidth=bandwidth),
type="l", lwd=2, col=as.numeric(as.factor(rownames(d)))[1])
lines(ksmooth(1:ncol(d), d[2,], kernel="normal", bandwidth=bandwidth),
type="l", lwd=2, col=as.numeric(as.factor(rownames(d)))[2])
legend("topright", c(rownames(d), "Total"),
fill=c(as.numeric(as.factor(rownames(d))), "blue"))
Cheers,
Nathan
--
--------------------------------------------------------
Dr. Nathan S. Watson-Haigh
OCE Post Doctoral Fellow
CSIRO Livestock Industries
University Drive
Townsville, QLD 4810
Australia
Tel: +61 (0)7 4753 8548
Fax: +61 (0)7 4753 8600
Web: http://www.csiro.au/people/Nathan.Watson-Haigh.html
More information about the R-help
mailing list