Good evening, I would like to put the histograms of several matrices on the same graph, together on a unified histogram (instead of having one bar per value on the x-axis, have multiple bars: one representing each matrix, with different colored bars for example to distinguish between the matrices). I couldn't find a function doing that involving "hist", "plot" nor other plotting functions. Is there a function which does this? Thank you, Yael Yohai (Bioinformatics research) [[alternative HTML version deleted]]
Hi Yael, Have you tried to find it on google "R graph gallery" ? bests milton On Sun, Dec 27, 2009 at 2:45 PM, Yael Yohai <yael.yohai@gmail.com> wrote:> Good evening, > > I would like to put the histograms of several matrices on the same graph, > together on a unified histogram (instead of having one bar per value on the > x-axis, have multiple bars: one representing each matrix, with different > colored bars for example to distinguish between the matrices). I couldn't > find a function doing that involving "hist", "plot" nor other plotting > functions. Is there a function which does this? > > Thank you, > > Yael Yohai > (Bioinformatics research) > > [[alternative HTML version deleted]] > > ______________________________________________ > 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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Here is one way of doing it using the basic graphics: # crate some data x1 <- rnorm(10000,0,1) x2 <- rnorm(10000,1,2) # get data from histograms bin.size <- seq(-10,10,0.1) # bin size - may sure it spans the range h1 <- hist(x1, plot=FALSE, breaks=bin.size) h2 <- hist(x2, plot=FALSE, breaks=bin.size) # create a matrix for 'barplot' # limit xlim=c(-3, 4) my.lim <- c(-3, 4) data.mat <- rbind(h1$counts[h1$mids > my.lim[1] & h1$mids < my.lim[2]], h2$counts[h2$mids > my.lim[1] & h2$mids < my.lim[2]]) z <- barplot(data.mat, beside=TRUE, col=c('red', 'green'), space=c(0,0), legend.text=c('x1', 'x2')) # now create the axis using current setting of 'usr' and supplying # your own values for x my.ticks <- seq(my.lim[1], my.lim[2], .5) axis(1, at=approx(seq(my.lim[1], my.lim[2], length=ncol(z)), colMeans(z), xout=my.ticks)$y, labels=my.ticks) On Sun, Dec 27, 2009 at 2:45 PM, Yael Yohai <yael.yohai@gmail.com> wrote:> Good evening, > > I would like to put the histograms of several matrices on the same graph, > together on a unified histogram (instead of having one bar per value on the > x-axis, have multiple bars: one representing each matrix, with different > colored bars for example to distinguish between the matrices). I couldn't > find a function doing that involving "hist", "plot" nor other plotting > functions. Is there a function which does this? > > Thank you, > > Yael Yohai > (Bioinformatics research) > > [[alternative HTML version deleted]] > > ______________________________________________ > 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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. >-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? [[alternative HTML version deleted]]
On 12/28/2009 06:45 AM, Yael Yohai wrote:> Good evening, > > I would like to put the histograms of several matrices on the same graph, > together on a unified histogram (instead of having one bar per value on the > x-axis, have multiple bars: one representing each matrix, with different > colored bars for example to distinguish between the matrices). I couldn't > find a function doing that involving "hist", "plot" nor other plotting > functions. Is there a function which does this? >Hi Yael, See the last example for the barp function in the plotrix package. Jim