传说中的ggplot2,删除级别

Mat*_*981 2 r 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))
Run Code Online (Sandbox Code Playgroud)

我做了酒吧情节

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") 
Run Code Online (Sandbox Code Playgroud)

产量 在此输入图像描述 我不喜欢的是传说.我想从第二部分" ja"中删除" variable" 并删除" "部分.我想在传说框中有白色背景,而不是灰色背景.

Jaa*_*aap 5

您可以variable通过设置删除图例fill = FALSE,guides然后使用override.aesin guide_legend(也在内部guides)更改backgroundcolor,如下所示:

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")
Run Code Online (Sandbox Code Playgroud)

这导致以下情节:

在此输入图像描述