2015-03-05 6 views
3

Я пытаюсь показать линейный график с некоторыми вертикальными линиями в качестве индикаторов конкретных временных точек и иметь легенду, обозначающую эти временные точки.Как добавить легенду для вертикальных линий в ggplot?

На примере в разделе 6.4.4 книги ggplot2, я попытался следующий

huron<-data.frame(year=1875:1972,level=LakeHuron) 

vertDf<-data.frame(years=c(1900,1925,1950),labels=c("A","B","C")) 

pltWithLines<-ggplot(huron, aes (x=year,y=level)) + 
           geom_line() + 
           geom_vline(aes(xintercept=years,color=labels),data=vertDf) + 
           scale_color_manual("Sample Year", 
             values=c("A"="blue","B"="red","C"="green")) 

Это производит график с вертикальными линиями, имеющими правильный цвет, но не легенда вообще.

Что не так с этим?

ответ

3

вам нужно show_guide

ggplot(huron, aes (x=year,y=level)) + 
    geom_line() + 
    geom_vline(aes(xintercept=years, color=labels),data=vertDf, show_guide=T) + 
    scale_color_manual("Sample Year", 
        values=c("A"="blue","B"="red","C"="green")) 
+0

Это работает, спасибо. Это странно с документацией по этому вопросу. Первые несколько раз я искал документацию show_guide в справке для geom_vline, я ее не видел. Я думаю, это связано с тем, что аргументы в прототипе функции не находятся в том же порядке, что и их список. –

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