[R] how to fill the area under the density line with semitransparent colors

David Winsemius dwinsemius at comcast.net
Wed Aug 19 12:54:23 CEST 2009

On Aug 19, 2009, at 4:05 AM, Mao Jianfeng wrote:

> Dear R-listers,
> I have created a plot to display the density lines for the same
> variable by different entities. Now, I want to fill the area under the
> density lines with semitransparent colors.
> Though I have checked that in web-searching and book-reading, I still
> do not perform that.
> Could anyone please give me any helps or advice? Thank you in advance.
> The data and code I used listed below:
> # dummy data
> factor<-rep(c("Alice","Jone","Mike"),each=100)
> factor<-factor(factor)
> traits<-c(rnorm(100, mean=1, sd=1), rnorm(100, mean=3, sd=3),
> rnorm(100, mean=6, sd=6))
> myda<-data.frame(factor,traits)
> # my plot
> plot(c(min(myda$traits),max(myda$traits)),c(-0.03,0.5), xlab='State',
> ylab='ylab')
> lines(density(myda$traits[factor==c("Alice")]), lwd=2,col=2)
> lines(density(myda$traits[factor==c("Jone")]), lwd=2,col=3)
> lines(density(myda$traits[factor==c("Mike")]), lwd=2,col=4)
> points(myda$traits[factor==c("Alice")], rep(-0.01,
> length(myda$traits[factor==c("Alice")])), pch="|", col=2)
> points(myda$traits[factor==c("Jone")], rep(-0.02,
> length(myda$traits[factor==c("Jone")])), pch="|", col=3)
> points(myda$traits[factor==c("Mike")], rep(-0.03,
> length(myda$traits[factor==c("Mike")])), pch="|", col=4)

Searching with the terms "polygon density(" produces a worked example  
of filling the area under a density plot at this help page:



David Winsemius, MD
Heritage Laboratories
West Hartford, CT

More information about the R-help mailing list