On Wed, Sep 24, 2008 at 8:39 AM, Albin Blaschka <[EMAIL PROTECTED]> wrote: > > Dear list, > > I would like to apply my own colours to a stacked area plot, done with > qplot, but I have not succeeded... > > What do I have so far (I am dealing with the development of cover of > specific groups of plants): > > > library(ggplot2) > library(RODBC) > channel <- odbcConnect("myusername", case="tolower") > sql <- "select trial, cover_of, dateofsurvey, cover from mytable" > mydata <- (sqlQuery(channel, sql)) > > What I get is the following dataframe (simplified, there are more > categories, not real data): > > trial cover_of dateofsurvey cover > 1 ZU-316 Cover dead material 2004-09-16 0 > 2 ZU-316 Cover grasses 2004-09-16 16 > 3 ZU-316 Cover herbs 2004-09-16 14 > 4 ZU-316 Cover legumes 2004-09-16 10 > 5 ZU-316 Cover open soil 2004-09-16 30 > 6 ZU-316 Cover dead material 2005-09-18 5 > 7 ZU-316 Cover grasses 2005-09-18 26 > 8 ZU-316 Cover herbs 2005-09-18 14 > 9 ZU-316 Cover legumes 2005-09-18 15 > 10 ZU-316 Cover open soil 2005-09-18 20 > 11 ZU-316 Cover dead material 2006-09-06 7 > 12 ZU-316 Cover grasses 2006-09-06 36 > 13 ZU-316 Cover herbs 2006-09-06 20 > 14 ZU-316 Cover legumes 2006-09-06 15 > 15 ZU-316 Cover open soil 2006-09-06 20 > . > . > . > > With the following command I get a nice graph (development of cover over the > years): > > qplot(dateofsurvey, cover, data=mydata, geom="area", fill=cover_of, > main = "Development of cover, ZU-316", > ylab="projective Cover[%]", xlab = "Year") > > As I have those categories (cover grasses, cover herbs...) I would like to > assign special colours to each (for example "cover grasses" => dark green, > "cover open soil" => brown ...), but I did not get it so far. > I tried several variations with area_geom, scale_manual but without > success... > For example (which does not work, it just shows the standard colourscheme): > > mycolorscheme <- c("khaki", "darkgreen", > "lightgreen", "yellow", "saddlebrown") > mycolors <- rep(mycolorscheme,3) > > myplot <- qplot(dateofsurvey, wert, data=mydata, geom="area", > fill=cover_of, main = "Development of cover, ZU-316", > ylab="projective Cover[%]", xlab = "Year") > myplot + geom_area(colour = mycolours)
You want to modify the scale (the thing that converts data values to colours), not the geom: + scale_fill_manual(values = mycolorscheme) (And it's fill you want to change, not colour) This will also update the legend. Hadley -- http://had.co.nz/ ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.