Ваши данные в широком формате или в виде матрицы. Нет простого способа добавить пользовательскую легенду в ggplot, поэтому вам нужно преобразовать текущие данные в длинный формат. Я смоделировал 3 кривые, как у вас, и вы можете увидеть, если вы вызываете geom_line или geom_smooth с переменной («name» в примере ниже), которая разделяет ваши разные значения, она будет работать и красиво создавать легенду.
library(dplyr)
library(tidyr)
library(ggplot2)
X = 1:50
#simulate data
Data = data.frame(
BA=X,
BAgp1 = log(X)+rnorm(length(X),0,0.3),
BAgp2 = log(X)+rnorm(length(X),0,0.3) + 0.5,
BAgp3 = log(X)+rnorm(length(X),0,0.3) + 1)
# convert this to long format, use BA as id
Data <- Data %>% pivot_longer(-BA)
#define colors
COLS = c("red","turquoise","orange")
names(COLS) = c("BAgp1","BAgp2","BAgp3")
###
ggplot(Data) +
geom_smooth(aes(BA,value,colour=name,fill=name)) +
# change name of legend here
scale_fill_manual(name="group",values=COLS)+
scale_color_manual(name="group",values=COLS)