【发布时间】:2018-01-09 15:42:57
【问题描述】:
我试图在同一张图中绘制多个基因表达随时间的变化以展示相似的概况,然后添加一条线来说明每个时间点的总平均值(如最近 Nature comm 文章 https://www.nature.com/articles/s41467-017-02546-5/figures/4 中的图 4b) .我的数据已标准化为 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 的回答很有帮助,感谢您指出我的颜色放错了地方。但是它在图表的其余部分之外绘制了线......我真的不明白我的图表有什么问题...... enter image description here
【问题讨论】:
-
您需要在
aes通话之外接听color = "red"。 -
谢谢,这似乎解决了我的错误问题,但是这条线是在图形区域的其余部分之外绘制的。我不明白为什么它会这样做......
标签: r ggplot2 time-series