2015-07-25 3 views
2

Кажется, я не могу получить легенду для моих двух геом-строк. Я попробовал несколько различных решений из ранее заданных вопросов, но ничего не работает. Некоторые из этих попыток находятся в коде ниже. R мне не подходит, поэтому любой совет будет очень благодарен!Легенда не показывается

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) 

ответ

3

Вот один подход,

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")) 
+0

Это сработало, спасибо! Похоже, я должен больше изучить расплав. –

Смежные вопросы