ggplot中图例的自定义分组

qwe*_*wer 3 r ggplot2

在R中,我正在尝试创建一个自定义折线图,其中所有线条都显示在图表上,但图表的图例是自定义的,只显示两件事.

现在我的代码:

x = data.frame(runif(20),runif(20)*2,runif(20)*3)
names(x) = c("Run 1", "Run 2", "Run 3")
x$Avg = apply(x, 1, mean)
x$Step = row.names(x)
df = melt(x, id=c("Step"))
ggplot(df, aes(x=Step, y=value, group=variable, color=variable)) +
  geom_line()
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

我希望图表显示所有4行(运行1,2,3和平均值),但对于图例,我希望它读取"Avg"和"Individual Runs",其中"Avg"是我选择的任何颜色,每个"个人运行"都是灰色或一些中性色.这种方式,当我有很多运行,我看到视觉上看到的数据,但图例不会离开屏幕.我该如何做到这一点?

bou*_*all 6

我们可以使用该subset函数,并使用两个不同的调用指定颜色geom_line:

ggplot()+
    geom_line(data = subset(df, variable != 'Avg'),
              aes(x = Step, y = value, group = variable, colour = 'Individual Runs'))+
    geom_line(data = subset(df, variable == 'Avg'),
              aes(x = Step, y = value, colour = 'Avg', group = variable))+
    scale_colour_manual(values = c('Avg' = 'red', 'Individual Runs' = 'grey'))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述