Это может быть то, что вы ищете
ggplot(df, aes(x=x, y=y1)) +
geom_line(aes(colour=col1, group=1)) +
geom_line(aes(x=x, y=y2,col=col2,group=1)) +
geom_line(aes(x=x, y=y3,col=col3,group=1)) +
geom_line(aes(x=x, y=y4,colour=col4, group=1)) +
geom_line(aes(x=x, y=y4,col=col4,group=1)) +
scale_color_manual(breaks = c("blue","orange","cyan","red","black"),
values=c("blue" = "blue", "red" = "red","orange" = "orange","cyan" = "cyan","black" = "black"),
labels=c("s1on","s2_on","s1_off","s2off","new"),name="")
Вы можете использовать breaks
, чтобы изменить порядок легенды.Аргумент values
отображает правильный цвет в правильное значение.
Мне легче увидеть, отличаются ли значения в df
от желаемых цветов
df <- data.frame(x = 1:100,
y1 = rnorm(100,1,100),
y2=rnorm(100,5,50),
y3=rnorm(100,10,500),
y4=rnorm(100,1,200),
col1 = c(rep("rrr", 50),
rep("bbb", 10),
rep("rrr", 40)),
col2=c(rep("blbl", 50),
rep("bbb", 10),
rep("blbl", 40)),
col3=c(rep("ooo", 50),
rep("bbb", 10),
rep("ooo", 40)),
col4=c(rep("ccc", 50),
rep("bbb", 10),
rep("ccc", 40)))
ggplot(df, aes(x=x, y=y1)) +
geom_line(aes(colour=col1, group=1)) +
geom_line(aes(x=x, y=y2,col=col2,group=1)) +
geom_line(aes(x=x, y=y3,col=col3,group=1)) +
geom_line(aes(x=x, y=y4,colour=col4, group=1)) +
geom_line(aes(x=x, y=y4,col=col4,group=1)) +
scale_color_manual(breaks = c("blbl","ooo","ccc","rrr","bbb"),
values=c("blbl" = "blue", "rrr" = "red","ooo" = "orange","ccc" = "cyan","bbb" = "black"),
labels=c("s1on","s2_on","s1_off","s2off","new"),name="")