如何使用ggplot2绘制NA间隙

时间:2014-10-01 11:11:21

标签: r ggplot2

在R中的基本绘图中,如果数据系列ggplot2中存在NA,则会绘制间隙:

作为示例,请参阅:

df=data.frame(x=c(1:10),y=c(1:10))
df[5:7,]=NA
plot(df,type="l")

但是,ggplot2会删除缺失的值并绘制一条直线 没有差距。

ggplot(data=df,aes(x,y))+geom_line()

我想保持差距。它们是我正在使用的数据中的重要信息。 是否有一种简单的方法可以告诉ggplot2停止忽略间隙?

2 个答案:

答案 0 :(得分:5)

geom_line替换为geom_path

library(ggplot2)
ggplot(data = df, aes(x, y)) +
  geom_path()

enter image description here

答案 1 :(得分:4)

这是因为您将两者 x和y设置为NA。 (并且ggplot2行为比基本绘图行为更明智。)如果只有y值为NA,则会得到所需的行为。这是一个解决方法:

df$g <- cumsum(apply(df, 1, anyNA))
ggplot(data=df,aes(x,y, group=g))+geom_line()

resulting graph