2013-10-03 55 views
0

我正在使用ggplot2绘制一些具有传说的密度图,但我无法将图例添加到最终结果中。无法为ggplot2中的多个密度图创作图例

m <- ggplot(chickwts, aes(x = weight)) 
m + geom_density(kernel = "gaussian", adjust = .3, colour="green", size=1)+ 
    geom_density(kernel = "gaussian", adjust = 1, colour="red", size=1)+ 
    geom_density(kernel = "gaussian",adjust = 5, colour="blue", size=1)+ 
    geom_density(kernel = "gaussian",adjust = 10, colour="yellow", size=1)+ 
    geom_density(kernel = "gaussian",adjust = 20, colour="orange", size=1) 

我已经使用了几个我在这里找到的语法,但没有一个不起作用。 谢谢。

回答

1

ggplot2将其传说美学,或论据传递到aes()函数。通常,您会指定一个因子作为颜色美学,这会自动创建颜色图例。但是,chickwts数据集中没有内置密度分组因子,因此您必须制作自己的比例和标签。

,而不是直接在geom_density()定义颜色,你可以定义对应于您在scale_colour_manual()创建,像这样一个自定义的色标指定的颜色美学:

m <- ggplot(chickwts, aes(x = weight)) 
m + geom_density(kernel = "gaussian", adjust = .3, aes(colour=".3"), size=1)+ 
    geom_density(kernel = "gaussian", adjust = 1, aes(colour="1"), size=1)+ 
    geom_density(kernel = "gaussian",adjust = 5, aes(colour="5"), size=1)+ 
    geom_density(kernel = "gaussian",adjust = 10, aes(colour="10"), size=1)+ 
    geom_density(kernel = "gaussian",adjust = 20, aes(colour="20"), size=1) + 
    scale_colour_manual(values=c(".3"="green", "1"="red", "5"="blue", "10"="yellow", "20"="orange"), name="Densities") 

Density plot example

+0

太谢谢你了。 – user2843490