如何使用ggplot中数据子集的密度图创建所有数据的密度图

时间:2016-04-20 08:32:42

标签: r ggplot2

我的数据集似乎有二项分布。

数据是与健康相关的生活质量调查,可根据培训活动的类型进行细分

我想知道我是否可以用训练活动子集的密度图覆盖整个数据的密度图

数据集称为hrql.scores,具有特定培训背景的数据子集为apdj,第二个子集为health.studio。我想绘制的测试数据是标题为PCS

的列

我希望以下代码能够正常运行:

ggplot( hrql.scores, aes( x=PCS, y=..density.. )) +
    geom_histogram(fill="cornsilk",colour="grey35",binwidth=5) +
    geom_density() + 
    geom_density( apdj, aes( x=PCS ) ) + 
    geom_density( health.studio, aes( x=PCS ))

但我收到错误Error: ggplot2 doesn't know how to deal with data of class uneval

如何实现覆盖子集密度图的总数据集的密度图?

1 个答案:

答案 0 :(得分:1)

?geom_density的帮助页面指出第一个参数是mapping,而不是data。所以正确的用法是

ggplot(hrql.scores, aes(x=PCS, y=..density..)) +
    geom_histogram(fill="cornsilk", colour="grey35", binwidth=5) +
    geom_density() + 
    geom_density(data = apdj) + 
    geom_density(data = health.studio)

请注意,不需要额外的aes映射,因为它是从顶级ggplot调用继承的。