Hi, I have a simple task I can't figure out. I'd like to take some measurements I made, e.g.: year (y-axis) 1 2 3 4 5 6 counts (x-axis) 10 10 20 30 40 50 And then, make a barplot with the x-axis ticks (representing the borders between years) between the bars. However, barplot seems to force you to make the x-axis arbitrary categories. I want it to be continuous (as in a histogram) as I have to bin the data by a series of different time periods (1 year intervals, 2 year intervals, etc.) and then plot several of the histograms/barplots in a series of figures to show how differing resolution changes the pattern. I have calculated the counts manually, but I can't just pipe the raw data into hist due to its weirdness (species stratigraphic ranges). Basically I want a scatterplot to plot x,y data points, except with vertical bars instead of points. I've tried hacking hist() but so far without luck. Any help greatly appreciated! Nick -- ===================================================Nicholas J. Matzke Ph.D. Student, Graduate Student Researcher Huelsenbeck Lab Center for Theoretical Evolutionary Genomics 4151 VLSB (Valley Life Sciences Building) Department of Integrative Biology University of California, Berkeley Graduate Student Instructor, IB200A Principles of Phylogenetics: Systematics http://ib.berkeley.edu/courses/ib200a/index.shtml Lab websites: http://ib.berkeley.edu/people/lab_detail.php?lab=54 http://fisher.berkeley.edu/cteg/hlab.html Dept. personal page: http://ib.berkeley.edu/people/students/person_detail.php?person=370 Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html Lab phone: 510-643-6299 Dept. fax: 510-643-6264 Cell phone: 510-301-0179 Email: matzke at berkeley.edu Mailing address: Department of Integrative Biology 3060 VLSB #3140 Berkeley, CA 94720-3140 ----------------------------------------------------- "[W]hen people thought the earth was flat, they were wrong. When people thought the earth was spherical, they were wrong. But if you think that thinking the earth is spherical is just as wrong as thinking the earth is flat, then your view is wronger than both of them put together." Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer, 14(1), 35-44. Fall 1989. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
Hi, Nick! plot(......, type="h", lwd=5, lend=3, xaxt="n") axis(1, at=c(...)) is the way to start, after which you play with the code. For years. Bob On 3 April 2010 21:52, Nick Matzke <matzke@berkeley.edu> wrote:> Hi, > > I have a simple task I can't figure out. I'd like to take some > measurements I made, e.g.: > > year (y-axis) > 1 > 2 > 3 > 4 > 5 > 6 > > counts (x-axis) > 10 > 10 > 20 > 30 > 40 > 50 > > And then, make a barplot with the x-axis ticks (representing the borders > between years) between the bars. > > However, barplot seems to force you to make the x-axis arbitrary > categories. I want it to be continuous (as in a histogram) as I have to bin > the data by a series of different time periods (1 year intervals, 2 year > intervals, etc.) and then plot several of the histograms/barplots in a > series of figures to show how differing resolution changes the pattern. > > I have calculated the counts manually, but I can't just pipe the raw data > into hist due to its weirdness (species stratigraphic ranges). > > Basically I want a scatterplot to plot x,y data points, except with > vertical bars instead of points. > > I've tried hacking hist() but so far without luck. > > Any help greatly appreciated! > > Nick > > > -- > ===================================================> Nicholas J. Matzke > Ph.D. Student, Graduate Student Researcher > Huelsenbeck Lab > Center for Theoretical Evolutionary Genomics > 4151 VLSB (Valley Life Sciences Building) > Department of Integrative Biology > University of California, Berkeley > > Graduate Student Instructor, IB200A > Principles of Phylogenetics: Systematics > http://ib.berkeley.edu/courses/ib200a/index.shtml > > Lab websites: > http://ib.berkeley.edu/people/lab_detail.php?lab=54 > http://fisher.berkeley.edu/cteg/hlab.html > Dept. personal page: > http://ib.berkeley.edu/people/students/person_detail.php?person=370 > Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html > Lab phone: 510-643-6299 > Dept. fax: 510-643-6264 > Cell phone: 510-301-0179 > Email: matzke@berkeley.edu > > Mailing address: > Department of Integrative Biology > 3060 VLSB #3140 > Berkeley, CA 94720-3140 > > ----------------------------------------------------- > "[W]hen people thought the earth was flat, they were wrong. When people > thought the earth was spherical, they were wrong. But if you think that > thinking the earth is spherical is just as wrong as thinking the earth is > flat, then your view is wronger than both of them put together." > > Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer, > 14(1), 35-44. Fall 1989. > http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm > > ______________________________________________ > 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. >-- Bob O'Hara Biodiversity and Climate Research Centre Senckenberganlage 25 D-60325 Frankfurt am Main, Germany Tel: +49 69 798 40216 Mobile: +49 1515 888 5440 WWW: http://www.bik-f.de/root/index.php?page_id=219 Blog: http://blogs.nature.com/boboh Google Wave: rni.boh@googlewave.com Journal of Negative Results - EEB: www.jnr-eeb.org [[alternative HTML version deleted]]
Nevermind, I think I got it: =======tempdata = data.frame(cbind(x,y)) xyplot(y ~ x, data=tempdata, xlab=xlabel, ylab=ylabel, xlim=c(1.05* min(timebins), 0), horizontal=FALSE, col="gray", scales=list(alternating=FALSE, tck=c(1,0), x=list(at=timebins, labels=timebins)), panel=function(...) { panel.fill(col="white") panel.grid(-1,0,lty=3,col="gray") panel.barchart(...) }, main="xyplot", box.width=timebin_size ) ======= Modified/simplified from these post on doing barcharts on time series data: http://www.mail-archive.com/r-help at r-project.org/msg84294.html http://www.mail-archive.com/r-help at r-project.org/msg84391.html ======#create the dummy data digrate <- data.frame(Perc=runif(30), Drate=rep(letters[1:3], 10), date=c(rep("26-06-2010",9),rep("27-06-2010",21)), hour=rep(c("18:00","20:00","23:00","03:00","05:30","08:00","10:00","14:40","17:30","19:30"),each=3)) digrate$hora<-paste(digrate$date,digrate$hour) digrate library(lattice) # barchart example does not get the time scale # get the time range for the x-axes in graph 2 r<-range(strptime(digrate$hora,"%d-%m-%Y %H:%M")) xyplot(Perc ~ as.POSIXct(hora,format="%d-%m-%Y %H:%M"), data=digrate, groups=Drate, ## key=leg, xlab="time of the day", horizontal=FALSE, scales=list(alternating=FALSE, tck=c(1,0), x=list(at=seq(r[1],r[2],by="hour"), labels=format(seq(r[1],r[2],"hours"), format="%H"))), panel=function(...) { panel.fill(col="white") panel.grid(-1,0,lty=3,col="gray") panel.barchart(...) }, main="xyplot", box.width=5000 ) ====== Nick Matzke wrote:> Hi, > > I have a simple task I can't figure out. I'd like to take some > measurements I made, e.g.: > > year (y-axis) > 1 > 2 > 3 > 4 > 5 > 6 > > counts (x-axis) > 10 > 10 > 20 > 30 > 40 > 50 > > And then, make a barplot with the x-axis ticks (representing the borders > between years) between the bars. > > However, barplot seems to force you to make the x-axis arbitrary > categories. I want it to be continuous (as in a histogram) as I have to > bin the data by a series of different time periods (1 year intervals, 2 > year intervals, etc.) and then plot several of the histograms/barplots > in a series of figures to show how differing resolution changes the > pattern. > > I have calculated the counts manually, but I can't just pipe the raw > data into hist due to its weirdness (species stratigraphic ranges). > > Basically I want a scatterplot to plot x,y data points, except with > vertical bars instead of points. > > I've tried hacking hist() but so far without luck. > > Any help greatly appreciated! > > Nick > >-- ===================================================Nicholas J. Matzke Ph.D. Student, Graduate Student Researcher Huelsenbeck Lab Center for Theoretical Evolutionary Genomics 4151 VLSB (Valley Life Sciences Building) Department of Integrative Biology University of California, Berkeley Graduate Student Instructor, IB200A Principles of Phylogenetics: Systematics http://ib.berkeley.edu/courses/ib200a/index.shtml Lab websites: http://ib.berkeley.edu/people/lab_detail.php?lab=54 http://fisher.berkeley.edu/cteg/hlab.html Dept. personal page: http://ib.berkeley.edu/people/students/person_detail.php?person=370 Lab personal page: http://fisher.berkeley.edu/cteg/members/matzke.html Lab phone: 510-643-6299 Dept. fax: 510-643-6264 Cell phone: 510-301-0179 Email: matzke at berkeley.edu Mailing address: Department of Integrative Biology 3060 VLSB #3140 Berkeley, CA 94720-3140 ----------------------------------------------------- "[W]hen people thought the earth was flat, they were wrong. When people thought the earth was spherical, they were wrong. But if you think that thinking the earth is spherical is just as wrong as thinking the earth is flat, then your view is wronger than both of them put together." Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer, 14(1), 35-44. Fall 1989. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm