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

时间:2017-05-25 18:08:28

标签: r ggplot2

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

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()

1 个答案:

答案 0 :(得分:1)

您的示例代码在某种程度上搞砸了,但我们可以通过以下方式修复它:

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

然后,您将有多个选项,但对于这种情况,一个简单的方法是使用na.omit

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

请注意,这会删除所有缺少值的情况。在你的情况下,这很好,但在其他情况下,只删除你的兴趣值缺失的情况,你可以用df[!is.na(df$value),]作为迈克。 H建议。