在 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()
结果:
我想让图表显示所有 4 条线(运行 1、2、3 和平均值),但对于图例,我希望它显示为“Avg”和“Individual Runs”,其中“Avg”是任意的我选择的颜色,每个“个人运行”都是灰色或一些中性色。这样,当我进行大量运行时,我可以直观地看到数据,但图例不会从屏幕上消失。我该如何实现?
最佳答案
我们可以使用 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'))
关于r - ggplot 中图例的自定义分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44915362/