[R] Stacked Area chart

Christian Lasarczyk lasarczyk at gmail.com
Tue Aug 16 22:02:55 CEST 2005


Maybe this is useful:


stackedPlot <- function(data, time=NULL, col=1:length(data), ...) {

  if (is.null(time))
    time <- 1:length(data[[1]]);
  
  plot(0,0
       , xlim = range(time)
       , ylim = c(0,max(rowSums(data)))
       , t="n" 
       , ...
       );
  
  for (i in length(data):1) {

    # Die Summe bis zu aktuellen Spalte
    prep.data <- rowSums(data[1:i]);
    
    # Das Polygon muss seinen ersten und letzten Punkt auf der Nulllinie haben
    prep.y <- c(0
                , prep.data
                , 0
                )

    prep.x <- c(time[1]
                , time
                , time[length(time)]
                )
    
    polygon(prep.x, prep.y
            , col=col[i]
            , border = NA
            );
  }
}

dogs <- runif(10)+ 1:10;
cats <- 11 - dogs;
birds <- 11 - cats;
population <- data.frame(dogs,cats,birds);
stackedPlot(population);

Documentation is bad (as this function is for personal use) and you
may want to normalize your data, but it should be useful for different
sized data.frames.

Best regards,
     Christian 


2005/8/16, Mike Saunders <mike_saunders at umenfa.maine.edu>:
> I wish to do a stacked area chart to show how relative proportions of species within a stand have changed over time.
> 
> I know this is simple, but can someone point me to the right function (if it exists).  I have not had any luck finding it in the R-help, but maybe I am searching using the wrong keywords.
> 
> Thanks,
> Mike
> 
> 
> Mike Saunders
> Research Assistant
> Forest Ecosystem Research Program
> Department of Forest Ecosystem Sciences
> University of Maine
> Orono, ME  04469
> 207-581-2763 (O)
> 207-581-4257 (F)
> 
>         [[alternative HTML version deleted]]
> 
> ______________________________________________
> 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
>




More information about the R-help mailing list