ggplot同一图表中的多行

时间:2018-01-09 15:42:57

标签: r ggplot2 time-series

我试图在同一图表中随着时间的推移绘制多个基因表达式以演示相似的轮廓,然后添加一条线来说明每个时间点的总平均值(如最近的Nature comm文章中的图4b {{3} })。我的数据已经标准化为0左右,因此它们都处于相同的比例。

df2样本:

variable    value   gene
1   5   -0.610384193    1
2   5   -6.25967087 2
3   5   -3.773389731    3
50  6   -0.358879035    1
51  6   -6.066341017    2
52  6   -4.202998579    3
99  7   -0.103885903    1
100 7   -6.648844687    2
101 7   -5.041554127    3

我用ggplot2绘制表达水平:

plotC <- ggplot(df2, aes(x=variable, y=value, group=factor(gene), colour=gene)) + geom_line(size=0.5, aes(color=gene), alpha=0.4)

但是在这个情节中添加红色的平均线证明是困难的。我计算了手段并将它们放在另一个数据框中:

means
       value variable gene
1 -1.5037354        5   50
2 -0.8783492        6   50
3 -0.7769085        7   50

然后尝试将它们添加为另一层:

plotC + geom_line(data=means, aes(x=variable, y=value, color="red", group=factor(gene)), size=0.75)

但我收到错误Error: Discrete value supplied to continuous scale

关于如何在另一种颜色的同一图表上绘制这种平均值,您有什么建议吗?

谢谢你, 安娜

编辑:RG20的答案很有帮助,谢谢你指出我的颜色在错误的地方。然而,它在图表的其余部分之外绘制了一条线...我真的不明白我的图表有什么问题...... https://www.nature.com/articles/s41467-017-02546-5/figures/4

1 个答案:

答案 0 :(得分:1)

plotC + geom_line(data=means, aes(x=variable, y=value, group=factor(gene)), color='red',size=0.75)