Knut Krueger <[EMAIL PROTECTED]> writes: > Petr Pikal schrieb: > > >Hi > > > >answered hundered times. > > > > > > > >>Dear R people: > >> > >>I would like to superimpose a normal curve on a histogram. > >> > >> > >x<-rnorm(150) > >h<-hist(x,breaks=15) > >xhist<-c(min(h$breaks),h$breaks) > >yhist<-c(0,h$density,0) > >xfit<-seq(min(x),max(x),length=40) > >yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) > >plot(xhist,yhist,type="s",ylim=c(0,max(yhist,yfit))) > >lines(xfit,yfit) > > > > > >Bill > > > >above is e.g. Bill Simpson's answer from 2001. Found from R-site > >search ***histogram density normal***. > > > > > Ok If I merge both of your answers I get the graph like in SPSS but > the ylab is density instead frequency:
Many people consider that a feature, since histograms are supposed to be density estimates.... > and I do not have the clicks in SPSS to redo the same graph :-( > I hav only the Data file and the SPSS plot. > > > x<-5+rnorm(150) > > h<-hist(x,breaks=10,freq = TRUE) > #I need this histogramm with... > > xfit<-seq(min(x),max(x),length=40) > yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) > > lines(xfit,yfit) > > > > h<-hist(x,breaks=10,prob=T) > > xfit<-seq(min(x),max(x),length=40) > yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) > # ... this line > lines(xfit,yfit) Er, something got duplicated in there? Anyways, if you want the normal curve blown up to the scale of counts/bin, just multiply yfit by the number of observations times the bin width. To find the bin width take, e.g. diff(h$mids[1:2]). If they're not all equal, then you're in deeper trouble. -- O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
