Reputation:
I can't seem to get a legend for my two geom_lines to show. I've tried a number of different solutions from previously asked questions, but nothing seems to be working. Some of those attempts are in the code below.
nauyear <- c(2000, 2010, 2020, 2030, 2050)
naupop <- c(14495, 17529, 25000, 25000, 25000)
naupopvsfs <- c(27400, 26000, 32300, 28700, 23600)
naupopvsfslabels <- c("27.4%", "26%", "32.3%", "28.7%", "23.6%")
NAUPop <- data.frame(nauyear, naupop, naupopvsfs, naupopvsfslabels)
NAUP <- ggplot(NAUPop, aes(x=nauyear, y=naupop))
NAUP <- NAUP + ggtitle("NAU Population Projection")
NAUP <- NAUP + xlab("Year")
NAUP <- NAUP + ylab("Population")
NAUP <- NAUP + geom_line(data = NAUPop, aes(x = nauyear, y = naupop), colour="blue", show_guide = TRUE)
NAUP <- NAUP + geom_line(data = NAUPop, aes(x = nauyear, y = naupopvsfs), colour="red", linetype="dashed", show_guide = TRUE)
NAUP <- NAUP + scale_linetype_manual("Legend", values = c(naupop, naupopvsfs),
labels = c("NAU pop", "b"))
NAUP <- NAUP + geom_point(size=4)
NAUP <- NAUP + geom_point(data = NAUPop, aes(x = nauyear, y = naupopvsfs), size=3)
NAUP <- NAUP + geom_text(label=naupop, fontface="bold", size=4, hjust=.5, vjust=2)
NAUP <- NAUP + geom_text(data = NAUPop, aes(x = nauyear, y = naupopvsfs),
label=naupopvsfslabels, fontface="bold", size=3, hjust=.5, vjust=3)
NAUP <- NAUP + ylim(14000, 33000)
NAUP <- NAUP + xlim(2000,2050)
NAUP <- NAUP + scale_x_continuous(breaks=c(2000,2010,2020,2030,2050))
NAUP <- NAUP + theme_update()
NAUP <- NAUP + theme(plot.title = element_text(lineheight=.8, face="bold"))
NAUP <- NAUP + theme(axis.title.x = element_text(face="bold"),
axis.title.y = element_text(face="bold"),
legend.position = c(0.9, 0.2))
plot(NAUP)
Upvotes: 2
Views: 377
Reputation: 77096
Here's one approach,
nauyear <- c(2000, 2010, 2020, 2030, 2050)
naupop <- c(14495, 17529, 25000, 25000, 25000)
naupopvsfs <- c(27400, 26000, 32300, 28700, 23600)
naupopvsfslabels <- c("27.4%", "26%", "32.3%", "28.7%", "23.6%")
NAUPop <- data.frame(year = nauyear, population = naupop,
vsfs = naupopvsfs, labels = naupopvsfslabels)
library(reshape2)
m <- melt(NAUPop, id = c("year", "labels"))
ggplot(m, aes(year, value, group=variable)) +
geom_line(aes(linetype=variable, colour=variable)) +
geom_point(aes(size=variable)) +
geom_text(aes(label=labels), data=subset(m, variable == "vsfs")) +
geom_text(aes(label=value), data=subset(m, variable == "population")) +
scale_size_manual(values = c(1,2)) +
scale_colour_manual(values = c("red", "blue")) +
scale_linetype_manual(values = c("dashed", "solid"))
Upvotes: 3