如何删除 ggplot 中多余的图例(标题)?

How do I remove superfluous legend (titles) in ggplot?

我试图删除“系列”图例,因为我添加了自己的图例(主要是为了更改图例标题)。 在我的代码下方(应该是可重现的)

p1 image output

df<-data.frame(
  "time"=c(100, 75, 50, 25, 0, -25),
  "nativ"=c("start", "75", "50", "25","home","end"),
  "series"=c("A", "A","A", "A", "A","A"),
  "value"=runif(n = 6,min = 0,max = 20)
)

serlabel=c("start", "75", "50", "25","home","end")

p2<-ggplot2::ggplot(
  df, 
  ggplot2::aes(time,
               value,
               group=1
  )) + 
  ggplot2::geom_line(
    ggplot2::aes(colour = series, linetype=series))+
  #
  ggplot2::labs(x= "Locations", 
                y="APC", 
                colour=paste(
                  "New legend title")
  )+ #add variiable to function if fpkm or fc
  ggplot2::scale_x_reverse(breaks = c(100, 75, 55, 35, 10, -20),
                           labels = serlabel, #enter serieslabel variable
                           expand=c(0,0))+
  ggplot2::theme_bw()
p2

我试图通过添加

来删除系列图例
+ggplot2::theme(legend.title = ggplot2::element_blank())

但这会删除两个标题。必须有一种更清洁的方法来做到这一点。有人知道怎么做吗?

添加scale_linetype(guide = FALSE):

ggplot(df, aes(time, value, group=1)) + 
  geom_line(aes(colour = series, linetype=series)) +
  labs(x= "Locations", y="APC", colour= "New legend title") +
  scale_x_reverse(breaks = c(100, 75, 55, 35, 10, -20),
                           labels = serlabel, expand=c(0,0))+
  scale_linetype(guide = FALSE) +
  theme_bw()

labs 中,对 linetype 图例使用相同的标题。

ggplot(df, aes(time, value)) +
  geom_line(
    aes(colour = series, linetype = series)
  ) +
  labs(
    x = "Locations", 
    y = "APC", 
    colour = "New legend title",
    linetype = "New legend title"
  ) +
  scale_x_reverse(
    breaks = c(100, 75, 55, 35, 10, -20),
    labels = serlabel, #enter serieslabel variable
    expand = c(0, 0)
  ) +
  theme_bw()