【问题标题】:ggplot multiple lines in same graphggplot 在同一张图中有多条线
【发布时间】: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


【解决方案1】:
plotC + geom_line(data=means, aes(x=variable, y=value, group=factor(gene)), color='red',size=0.75)

【讨论】:

  • 非常感谢,画线了,但它把它放在其他图形区域之外......这很奇怪,看看我在原始帖子中放的链接照片
  • @Stav 听起来您的 variable 列是原始数据中的 factormeans 数据中的 numeric。如果您转换 df2$variable = as.numeric(as.character(df2$variable)) 这应该可以正常工作。
猜你喜欢
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
相关资源
最近更新 更多