# [R] truehist and density plots

Jim Lemon jim at bitwrit.com.au
Wed Apr 29 09:43:45 CEST 2009

carol white wrote:
> Hi,
> I wanted to plot the histogram of a vector and then, plot the density function of subsets of the vector on the histogram. So I use truehist in MASS package and lines(density) as follows:
>
> length(b) = 1000
> truehist(b)
> lines(density(b[1:100]))
>
> however the density plot of the first 100 points exceeds the max of y axis (see attached). how is it possible to make a graphics so that the density plot of the subsets doesn't go beyond the maximum of all points in the complete set?
>
>
Hi Carol,
You can use the rescale function in the plotrix package to do things
like this. Have a look at the example on the help page:

# scale one vector into the range of another
normal.counts<-rnorm(100)
normal.tab<-tabulate(cut(normal.counts,breaks=seq(-3,3,by=1)))
normal.density<-rescale(dnorm(seq(-3,3,length=100)),range(normal.tab))
# now plot them
plot(c(-2.5,-1.5,-0.5,0.5,1.5,2.5),normal.tab,xlab="X values",
type="h",col="green")
lines(seq(-3,3,length=100),normal.density,col="blue")

Jim