在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停止忽略间隙?
答案 0 :(得分:5)
将geom_line
替换为geom_path
。
library(ggplot2)
ggplot(data = df, aes(x, y)) +
geom_path()
答案 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()