ggplot2:如何从geom_density图例中删除斜杠

时间:2014-08-13 19:32:08

标签: r ggplot2 legend

我正在尝试在ggplot2中绘制一些重叠的密度图。我遇到了一个问题,我无法从图例中删除斜线。我尝试过使用scale_fill_manual()和legend.key以及来自R Cookbook的黑客攻击,但我似乎无法正确使用它。

data(iris)
iris=iris
cols=brewer.pal(3,"Set1")

ggplot(iris) + 
    geom_density(position="identity",aes(x=iris$Sepal.Length,fill=cols[1]),
        colour="black",alpha=.5) +
    geom_density(position="identity",aes(x=iris$Sepal.Width,fill=cols[2]),
        colour="black",alpha=.5)+  
    theme_bw() +
    scale_fill_identity(guide="legend",labels=c("Sepal Width","Sepal Length"))+
    xlab("X axis") +
    theme(panel.background=element_blank(),
        legend.title=element_blank(),
        legend.key = element_rect(),
        legend.background = element_blank(),
        legend.justification=c(1,0), 
        legend.position=c(.75,.5),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank())

enter image description here

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:38)

试试这个:

+ guides(fill = guide_legend(override.aes = list(colour = NULL)))

虽然这也删除了黑色轮廓......可以通过将theme更改为:

来重新添加
legend.key = element_rect(colour = "black")

我完全忘了添加这个重要说明:使用x=iris$Sepal.Length运算符通过$指定美学!这不是使用aes()的预期方式,它将导致错误和意外问题。