2015-09-25 87 views
2

我的数据:Legend在GGPLOT2,删除级别

df <- data.frame(sp = c(LETTERS[1:8]), 
       tr = c("NS", "LS", "NS", "LS", "LS", "HS", "HS", "HS"), 
       bv = c(14, 5, 11, 5.6, 21, 5.4, 2, 4.8), 
       av = c(0.0, 14, 21, 48.4, 15, 55.6, 37, 66.2)) 

我做柱状图

library(reshape2) 
df1 <- melt(df, id.vars = c("sp", "tr")) 

ggplot(aes(sp, value, fill = variable) , data = df1) + theme_classic() + 
    geom_bar(aes(lty = tr), lwd = 1.2, data = df1, stat = "identity", colour = "black", width =.8) + 
    theme(legend.position = "bottom") + 
    scale_linetype_discrete(name = "ja") 

输出 enter image description here 什么我不喜欢的是传奇。我想从第二部分“ja”中删除“variable”部分的行类型。我想在图例框中有白色背景,而不是灰色背景。

回答

5

您可以通过设置在guidesfill = FALSE删除variable传说和你guide_legend(也在里面guides)改变的backgroundColor与override.aes如下:

ggplot(df1, aes(sp, value, fill = variable)) + 
    geom_bar(aes(lty = tr), lwd = 1.2, stat = "identity", colour = "black", width =.8) + 
    scale_linetype_discrete(name = "ja") + 
    guides(fill = FALSE, 
     lty = guide_legend(override.aes = list(lty = c('dotted', 'dashed', 'solid'), 
               fill = "white"))) + 
    theme_classic() + 
    theme(legend.position = "bottom") 

这导致了以下情节:

enter image description here