Thank you very much for your reply. That was very helpful.
I also want to add two density curves on top of each histgram. One is the
density curve of a standard normal random variable. The other is the
denstity curve according to the histgram.
I was trying to use the function
"panel.mathdensity", but not successful.

Can anyone give me some help?

Thank you!
2010/2/11 <Bill.Venables@csiro.au>

> One way round this is to use lattice.  With your matrix 'w' you might
>
> W <- data.frame(w = as.vector(w),
>                          r = factor(as.vector(row(w))) )
>
> require(lattice)
> histogram(~w|r, W)
>
> Identical axis systems will be used for all panels.
>
>
> Bill Venables
> CSIRO/CMIS Cleveland Laboratories
>
>
> -----Original Message-----
> From: r-help-bounces@r-project.org [mailto:r-help-bounces@r-project.org]
> On Behalf Of li li
> Sent: Thursday, 11 February 2010 2:52 PM
> To: r-help
> Subject: [R] histogam plots
>
> Hi all,
>   I want to draw a histgram for each row of a matrix and compare them.
> However the plot I
> got does not have the same y range and x range, which makes it difficult to
> make the comparison.
> Is there a  easy way to fix the x range and y range in a xy plot for
> several
> plots, instead of specifying
> them for each plot.
>  The following is my code for generalizing the matrix and draw the
> histogram.
>
>
> ############gen is the function to generate the dta
> gen <- function(m, rho) {
> library(MASS)
> set.seed(103)
> theta <- 0
> theta1 <- 2
> pi0 <- 0.9
> mzero <- pi0*m
> mean <- c(rep(theta, mzero), rep(theta1,m-mzero))
> J <- rep(1, m)
> var <- function(rho) {(1-rho)*diag(m)+ rho*J%*%t(J)}
> t <- mvrnorm(1, mean, var(rho))
> return(t)
>                        }
> ####### w is the matrix. A histgram is drawn for each of the rows.
> n <- 1000
> r <- seq(0,0.9, by=0.1)
>
> w <- matrix(0, ncol=n, nrow=length(r))
> for (i in 1: length(r)){w[i,]<- gen(n,r[i])}
>
> par(mfrow=c(2,5))
> hist(w[1,], breaks=100)
> hist(w[2,], breaks=100)
> hist(w[3,], breaks=100)
> hist(w[4,], breaks=100)
> hist(w[5,], breaks=100)
> hist(w[6,], breaks=100)
> hist(w[7,], breaks=100)
> hist(w[8,], breaks=100)
> hist(w[9,], breaks=100)
> hist(w[10,], breaks=100)
>
> ##############################
>  Thank you !
>                              Li
>
>        [[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]]

