[R] ggplot2: how to add new names to legend

Ista Zahn istazahn at gmail.com
Thu Jan 16 03:55:51 CET 2014


Hi Anna,

You haven't mapped fill to anything. Scales only control how a mapping
is translated into a visual property, you have to set the actual
mapping as well. What do you want the fill color to indicate?

Best,
Ista

On Wed, Jan 15, 2014 at 3:42 AM, Anna Zakrisson Braeunlich
<anna.zakrisson at su.se> wrote:
> Dear all,
>
> I have problems adding new names to the legend (not the legend title).
> I have tried all sorts of versions involving scale_fill_discrete and themes. Weirdly, my method works fine when changing legend when making a barplot instead.
> I have searched and tried and am soon throwing the computer out of the window. Please, help. I have read the help pages, but I don't understand why this won't work.
> The plot produced below is extremely ugly. Ignore this. I just wanted to add the full script for my own data. With my own data the plot looks fine.
>
> # some dummy data:
> mydata<- data.frame(week = factor(rep(c("19", "21", "23", "25", "27", "29", "31", "33",
>                                         "35", "37", "39"), each = 45*3)), #week
>                     station = factor(rep(c("BY31", "B1", "H2", "H3", "H4",
>                                            "H5", "H6", "H7", "H8"), each = 15)), #station
>                     year = factor(rep(c("2007", "2008", "2009"), each = 45)), #station
>                     organism = factor(rep(c("zpl", "ses", "cy"), each = 5)), #organism
>                     var1 = rnorm(1485, mean = rep(c(0, 3, 15), each = 40),
>                                  sd = rep(c(1, 3, 6), each = 20)))
>
> library(ggplot2)
> p <- ggplot(mydata,aes(week,var1))+
>   facet_grid(year~station, scales = "free")+
>   scale_shape_manual(values = 1:3) +
>   geom_point(mapping=aes(shape=organism))+
>   theme_bw() +
>   theme(strip.background = element_blank()) +
>   xlab("Week")+
>   ylab(expression(paste("Biomass (", mu, "g ", L^-1, ")")))+
>   geom_line(aes(group=organism, linetype=organism))+
>   theme(strip.text.x = element_text(size = 10, colour="black", family="serif", angle=00)) +
>   theme(strip.text.y = element_text(size = 10, colour="black", family="serif", angle=90)) +
>   theme(axis.text.x = element_text(size = 10, colour="black", family="serif", angle=00)) +
>   theme(axis.text.y = element_text(size = 10, colour="black", family="serif", angle=00)) +
>   theme(axis.title.x = element_text(size=10, colour="black", family="serif", angle=00))+
>   theme(axis.title.y = element_text(size=10, colour="black", family="serif", angle=90))
> p
>
> p1 <- p+theme(legend.title=element_blank())
> p1
> p2 <- p1+ theme(legend.key = element_blank())
> p3 <- p2 + theme(legend.position="bottom")
> p3 + scale_fill_discrete(                                             #here is the issue! It should be discrete and fill?!
>   breaks=c("Anab_ug_L", "Aph_ug_L", "Nod_ug_L"),
>   labels=c("Anabaena spp.", "Aphanizomenon sp.",
>            "N. spumigena"))
>
> with kind regards
>
> Anna Zakrisson Braeunlich
> PhD student
>
> Department of Ecology, Environment and Plant Sciences
> Stockholm University
> Svante Arrheniusv. 21A
> SE-106 91 Stockholm
> Sweden/Sverige
>
> Lives in Berlin.
> For paper mail:
> Katzbachstr. 21
> D-10965, Berlin - Kreuzberg
> Germany/Deutschland
>
> E-mail: anna.zakrisson at su.se
> Tel work: +49-(0)3091541281
> Mobile: +49-(0)15777374888
> LinkedIn: http://se.linkedin.com/pub/anna-zakrisson-braeunlich/33/5a2/51b
>
>><((((º>`•. . • `•. .• `•. . ><((((º>`•. . • `•. .• `•. .><((((º>`•. . • `•. .• `•. .><((((º>
>
>         [[alternative HTML version deleted]]
>
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list