【问题标题】:fitting geom_smooth() to multiple categories in ggplot2将 geom_smooth() 拟合到 ggplot2 中的多个类别
【发布时间】:2017-11-13 20:21:51
【问题描述】:

我有一些看起来像这样的数据:

sample  diff    chromosome  haploid coverage
B   90.9963099631   7   b   0.513
A   91.7019475021   12  a   8.234
C   90.3855783676   14  a   6.211
D   91.3407821229   17  b   4.321
E   91.5740740741   11  b   0.213
F   90.9963099631   7   b   0.513
G   91.7019475021   12  a   8.234
H   90.3855783676   14  a   6.211
I   91.3407821229   17  b   4.321
J   91.5740740741   11  b   0.213

我想可视化不同覆盖率值的“差异”变化,跨越不同的染色体,所以我这样做了:

plot = ggplot(dat, aes(x = coverage, y = diff, group  = chromosome, colour = chromosome, ylim(0, 100)) ) + geom_point(colour = chromosome) + stat_smooth(se=FALSE) + ylim(0, 100)

`geom_smooth()` using method = 'loess'

现在我认为这不是绘制多条趋势线的最佳方式,但我制作了这个:

这正是我所追求的。但我认为实际上,根据我的数据,所有曲线的形状不应该完全相同,但所有曲线的形状基本相同。那么 geom_smooth() 是否为所有类别绘制了一条 LOWESS 曲线,然后为不同的类别上下移动相同的曲线?

如果是这样,有没有办法让它为每个类别绘制独立的线?

【问题讨论】:

  • 您在示例中使用的是 stat_smooth 而不是 geom_smooth。你确定这是产生这个情节的代码吗?

标签: r ggplot2 statistics


【解决方案1】:

无法使用您提供的代码复制您的绘图。 但是,使用 mtcars 数据集获取所需内容的正确语法如下。

library(ggplot2)

df = mtcars

df$cyl = factor(df$cyl)

ggplot(df, aes(x = mpg, y = disp, colour = cyl, group = cyl)) + 
  geom_point() + 
  geom_smooth(se=F)

尝试在此代码上调整您的示例/数据集。

【讨论】:

    猜你喜欢
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2019-01-17
    • 1970-01-01
    相关资源
    最近更新 更多