Is there any neat way to add a curve (frequency function or the like) to a histogram or other plots? I haven't found one yet... Robert
On 9/20/05, Robert Lundqvist <Robert.Lundqvist at ltu.se> wrote:> Is there any neat way to add a curve (frequency function or the like) to a > histogram or other plots? I haven't found one yet...Try this: set.seed(1) z <- rnorm(100) library(MASS) truehist(z) lines(density(z)) curve(dnorm, color = "red", add = TRUE)
Hello, E.g. with lines() or add a new plot to the current plot with par(new = TRUE) (and set equal xlim and ylins??s in the plot function) r <- rnorm(100) hist(r,freq=FALSE) lines(density(r)) Best, Matthias> > Is there any neat way to add a curve (frequency function or > the like) to a histogram or other plots? I haven't found one yet... > > Robert > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read > the posting guide! http://www.R-project.org/posting-guide.html >
Robert Lundqvist wrote:>Is there any neat way to add a curve (frequency function or the like) to a >histogram or other plots? I haven't found one yet... > >Robert > >______________________________________________ >R-help at stat.math.ethz.ch mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >??? dat<-rnorm(100) hist(dat,prob=TRUE) x<-seq(-3.5,3.5,length=100) y<-dnorm(x) lines(x,y) have a look at: http://cran.at.r-project.org/doc/manuals/R-intro.pdf Peter Wolf
Robert Lundqvist wrote:> Is there any neat way to add a curve (frequency function or the like) to a > histogram or other plots? I haven't found one yet... >For a general solution, one usually has to scale the density function to fit the plot. The simple, but convenient, function rescale() in the plotrix package can be used like this: add.density.curve<-function(y,density=NA) { xyrange<-par("usr") if(is.na(density)) y.density<-density(y) lines(seq(xyrange[1],xyrange[2],length=length(y.density$y)), rescale(y.density$y,c(0,xyrange[4]))) } This only works for histograms, but I am working on a general function that will outsmart the habit of some functions of running the plot range into negative numbers when these are not possible (i.e. you can't have a negative count in a histogram - or a negative density except in the very latest physics). Jim
Le 20 Septembre 2005 09:53, Robert Lundqvist a ??crit??:> Is there any neat way to add a curve (frequency function or the like) to a > histogram or other plots? I haven't found one yet...The one key thing here is not to forget "prob=TRUE" in the call to hist(), to ensure that the y-axis is scaled in proportions, not in frequencies. -- Vincent Goulet, Professeur agr??g?? ??cole d'actuariat Universit?? Laval, Qu??bec Vincent.Goulet at act.ulaval.ca http://vgoulet.act.ulaval.ca