R ggplot2:删除其中一个图例条目

R ggplot2:删除其中一个图例条目,r,ggplot2,R,Ggplot2,我有一些数据,我正在通过索引绘制。其中一个值只有NAs。因此它不会显示在图表上,但该条目仍存在于图例中。如何将其从图例中删除 df <- structure(list(yrmonth = structure(c(1483228800, 1483228800, 1483228800, 1485907200, 1485907200, 1485907200, 1488326400, 1488326400, 1488326400, 1491004800, 1491004

我有一些数据,我正在通过索引绘制。其中一个值只有NAs。因此它不会显示在图表上,但该条目仍存在于图例中。如何将其从图例中删除

df <- structure(list(yrmonth = structure(c(1483228800, 1483228800, 
      1483228800, 1485907200, 1485907200, 1485907200, 1488326400, 1488326400, 
      1488326400, 1491004800, 1491004800, 1491004800), class = c("POSIXct", 
      "POSIXt"), tzone = "UTC"), index = structure(c(1L, 3L, 5L, 1L, 
      3L, 5L, 1L, 3L, 5L, 1L, 3L, 5L), .Label = c("N-S", "N-S", "E-W", 
      "E-W", "OS"), class = "factor"), value = c(129, 141, NA, 150.5, 
      209, NA, 247.5, 243, NA, 223, 226.5, NA)), .Names = c("yrmonth", 
      "index", "value"), row.names = 31:42, class = "data.frame")

ggplot(df, aes(x=yrmonth,y=value,colour=index)) + 
  geom_line()

您的示例代码不知怎么搞砸了,但我们可以通过以下方法进行修复:

df$index <- as.factor(as.character(df$index))

但是,请注意,这将删除所有缺少值的情况。在您的情况下,这很好,但在其他情况下,仅删除缺少兴趣值的情况可能会很有用,您可以使用df[!is.nadf$value,]作为Mike来执行此操作。H建议。

为什么不在打印之前删除任何NAs?df[!is.nadf$value,]这个例子有点不对劲,不能有两个因子级别使用相同的labelggplotna.omitedf,aesx=yrmonth,y=value,color=index+geom_line@ThomasK工作完美!谢谢。值得指出的是,na.omit将省略任何值为na的行。因此,如果您有未使用的列,这些行将被排除在外。
ggplot(na.omit(df), aes(x = yrmonth, y = value, colour = index)) + 
  geom_line()