如何手动将图例添加到ggplot? - R.

use*_*549 11 r ggplot2

我有以下情节:

情节

我用来生成这个图的代码是:

ggplot(df, aes(x = instance, y = total_hits))+
geom_point(size = 1)+
geom_line()+
geom_line(aes(x=df$instance, y = line1), colour="red")+
geom_vline(xintercept=805) +
geom_line(aes(x=df$instance, y = line2), colour="blue")+
geom_line(aes(x=df$instance, y = line3), colour="purple") 
Run Code Online (Sandbox Code Playgroud)

我想在这个情节中添加一个图例来标记每一行.但是,由于我手动添加了每一行,我不知道如何添加图例.有什么提示/建议吗?

  • 我无法共享我正在使用的数据,所以我只是想找一种手动添加图例的通用方法.

MrF*_*ick 39

ggplot真的只喜欢为具有美学映射的东西绘制传说.如果为颜色设置"代码名称",则可以在该属性的手动比例中定义它们.例如

ggplot(df, aes(x = instance, y = total_hits))+geom_point(size = 1)+geom_line()+
geom_line(aes(x=instance, y = line1, colour="myline1")) +
geom_vline(xintercept=805)+geom_line(aes(x=df$instance, y = line2, colour="myline2"))+
geom_line(aes(x=instance, y = line3, colour="myline3")) +
scale_colour_manual(name="Line Color",
    values=c(myline1="red", myline2="blue", myline3="purple"))
Run Code Online (Sandbox Code Playgroud)

应该工作(未经测试,因为你根本没有提供任何数据).无论何时你问一个问题,包含一个可重复的例子都是礼貌的,所以答案者不必自己完成所有的工作来测试.

  • 突出点是:将`color ="red"`语句从`aes()括号移到每个geom内部. (4认同)