添加水平线,按因子分组

时间:2014-08-18 12:58:12

标签: r plot ggplot2

我有一个带有行的图,按rank因子分组:

ggplot(data=res.sum.df, aes(x=i_id, y=success_rate, colour = rank)) +
geom_line(size=1.5, aes(group=rank)) 

enter image description here

我有额外的data.frame对象,它定义了每个等级中所有值的平均值:

> res.sum.df.mean
Source: local data frame [4 x 2]

  rank mean_succes_rate
1    1       0.16666667
2    2       0.13735450
3    3       0.13628500
4    4       0.05797931

我想添加四条yintercept的垂直线和这些平均值,另外根据现有的线条图例进行着色(分组)。

我尝试添加一些aes参数和其他内容,但我的所有组合都失败了(行没有着色):

  ggplot(data=res.sum.df, aes(x=i_id, y=success_rate, colour = rank)) +
  geom_line(size=1.5, aes(group=rank)) +   
  geom_hline(yintercept = res.sum.df.mean$mean_succes_rate, aes(colour=rank)) 

enter image description here

1 个答案:

答案 0 :(得分:2)

您需要在美学映射中指定截距:

geom_hline(data = res.sum.df.mean, 
           aes(yintercept = mean_succes_rate, colour=rank))