[R] How to plot a matrix of intervals

hadley wickham h.wickham at gmail.com
Tue Sep 16 01:59:41 CEST 2008


On Mon, Sep 15, 2008 at 5:06 PM, Stacey Burrows <stacey.burrows at yahoo.ca> wrote:
> Dear R-users,
>
> I have some nonstandard data set which I would like to plot but don't know how to do it in R. The data is in a matrix where the rows represent samples and the columns represent locations. The entries of the matrix are 0's and 1's, where 1 represents an event and 0 represents a non-event. e.g.
>
> aberrations <- matrix(rbinom(1000, 1, 0.8), nrow=20, ncol=50, dimnames=list(c(paste("sample",1:20,"")), c(1:50)))
>
> In addition, consecutive 1's in a given sample represents intervals of events.
>
> With this matrix I would like to produce a plot with the samples on the y-axis and the locations on the x-axis. A black dot should be plotted for any event and consecutive black dots should be connected by a line to represent intervals.
>
> How can I produce such a plot in R?

Here's one approach:

install.packages("ggplot2")

library(reshape)
am <- melt(aberations)
am$value[am$value == 0] <- NA

library(ggplot2)
qplot(X2 * value, X1, data=am) + geom_path()

Converting the zeros to missing values means that when we multiply the
x position by value, it will be missing if the value is 0, causing
breaks in the lines and the absences of points.  I think this same
basic approach will work for base graphics and lattice graphics too.

Hadley

-- 
http://had.co.nz/



More information about the R-help mailing list