如何使用ggplot2将图例添加到多线图(多于2条线)中?

时间:2019-06-25 15:58:34

标签: r ggplot2

mydata = read.csv("Group+3+puppies.csv")
head(mydata)
X = mydata$Age, Y1=mydata$LP.10, Y2=mydata$LP.11, Y3=mydata$LP.12, Y4=mydata$LP.13, Y5=mydata$LP.14, Y6=mydata$LP.15, Y7=mydata$LP.16, Y8=mydata$LP.1, Y9=mydata$LP.18, Y10=mydata4Average
library(ggplot2)
ggplot(ggplot(mydata, aes(x=Age, y=Weight)) + geom_line(aes(y = Y1), color = "darkblue") + geom_line(aes(y = Y2), color="lightblue") + geom_line(aes(y = Y3), color="darkgreen") + geom_line(aes(y = Y4), color="brown") + geom_line(aes(y = Y5), color="gray") + geom_line(aes(y = Y6), color="black") + geom_line(aes(y = Y7), color="pink") + geom_line(aes(y = Y8), color="yellow") + geom_line(aes(y = Y9), color="red") + geom_line(aes(y = Y10), color="orange")

我得到此图:(我想要的图) graph of data

但是我不知道如何在其中添加图例,图例将是LP10-LP18和平均线(所有不同的颜色)。 我已经尝试了legends()函数,并且我知道有一种方法可以使用melt(),但是我不确定该如何去做。

数据当前的结构如下: image of data 以天为单位的年龄,以下每个数字和LP数字是重量,平均值是重量

1 个答案:

答案 0 :(得分:0)

考虑将ggplot与整洁的数据一起使用,而不是使用宽数据矩阵形式。

library(tidyr)
library(ggplot2)
mydata <- gather(mydata, key = "Variable", value = "measurement", -Age, -Weight)
ggplot(mydata, aes(x = Age, y = Weight, color = Variable) + 
    color_scale_manual(values = c( "darkblue", "lightblue", "darkgreen",
                                   "brown", "gray","black", "pink",
                                   "yellow", "red", "orange"))

这可能并不完全有效,因为我不知道您的数据帧的结构或LP10:LP18向量与权重向量之间的差异。