如何在ggplot2中为密度添加两个分布

时间:2014-04-17 00:20:56

标签: r ggplot2

我想在ggplot2中为同一个分布添加两组保龄球分数,我在每组中没有相同数量的观察,但我想将它们绘制在彼此之上。以下是我的代码。

    m <- ggplot(bowling, aes(x = as.numeric(Kenny)))
    n <- ggplot(bowling, aes(x= as.numeric(Group)))
    m + n geom_density()

这是错误。

    Error in p + o : non-numeric argument to binary operator
    In addition: Warning message:
    Incompatible methods ("+.gg", "Ops.data.frame") for "+" 

我只想在彼此之上绘制它们,但我无法弄清楚问题是什么。

1 个答案:

答案 0 :(得分:1)

问题在于您将一个geom_density图层添加到具有不同美学映射的两个不同图(m和n)。

如果我理解你的问题,这是一个潜在的解决方案。

首先,创建一个小样本数据集

kenny <- rnorm(100, 20, 2)  
group <- rnorm(100, 15, 2)  
bowling <- data.frame(kenny, group)

其次,首先将kenny的geom_density图层绘制为美学,然后为不同的美学(即组)添加geom_density图层。

ggplot(bowling, aes(x = kenny)) +  
geom_density() + geom_density(aes(x=group), colour="red")

以下是您获得的信息:

enter image description here