Site icon R-bloggers

Timeline graph with ggplot2

[This article was first published on FishyOperationsCategory Archives: r, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

This post shows how to create a timeline graph by using ggplot2.

Let’s start by loading the ggplot2 library.

library(ggplot2)


Next let’s create a dataset which we will use to feed the graph. In the last column (y), I create random positive values for the first three rows (which will be shown above the timeline) and random negative values for the last three rows (to be shown below the timeline).

timeset<-data.frame(year=c(1986,1995,2011,1990,1998,2010),text=c('I was born','Had a nice icecream','Spotted a dodo','First swim','Crashed my bicycle','Bought a helmet'),y=c(runif(3,.5,1),runif(3,-1,-.5)))

Now comes the tricky part, creating the graph.

plot<-ggplot(timeset,aes(x=year,y=0))

Let’s add the lines which will run from the timeline arrow to the text label.

plot<-plot+geom_segment(aes(y=0,yend=y,xend=year))

The text is added as follows;

plot<-geom_text(aes(y=ytext,label=text),size=2.5,vjust=-1)

Now to fancy it up a bit with some points at the end of the line segments;

plot<-plot+geom_point(aes(y=y))

Putting some limits on the y-axis.

scale_y_continuous(limits=c(-2,2))

As the y-values are, in this case, non-informative, let’s hide ‘em.

plot<-plot+scale_y_continuous(limits=c(-2,2))

Let’s draw the timeline arrow . I agree this, is fiddling, and these values can possibly be extracted from the x-axis.

plot<-plot+geom_hline(y=0,size=1,color='purple')   #draw a vertical line
plot<-plot+geom_segment(x=2011.4,xend=2012.2,y=.2,yend=0,color='purple',size=1) + geom_segment(x=2011.4,xend=2012.2,y=-.2,yend=0,color='purple',size=1) #drawing the actual arrow

Now to finish it up, let’s set some options.

plot<-plot+opts(axis.text.y =theme_blank(),title='My timeline')+ylab('')+xlab('')

Let’s have a look at the result!

print(plot)

You can download the script here

The post Timeline graph with ggplot2 appeared first on FishyOperations.

To leave a comment for the author, please follow the link and comment on their blog: FishyOperationsCategory Archives: r.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.