ggplot2:NA值在堆叠时不会断开线路

时间:2016-04-06 14:25:35

标签: r ggplot2

给出

library(ggplot2)
df <- data.frame(x=rep(1:5, 2), y=1:10, f=gl(2, 5, labels = letters[1:2])) 
df$y[df$x==3] <- NA
df
#    x  y f
# 1  1  1 a
# 2  2  2 a
# 3  3 NA a
# 4  4  4 a
# 5  5  5 a
# 6  1  6 b
# 7  2  7 b
# 8  3 NA b
# 9  4  9 b
# 10 5 10 b

我在position_identity中使用ggplot2的默认geom_line来获取此数字:

ggplot(df, aes(x, y, color=f)) + 
  geom_line() + 
  geom_point(size=5)

enter image description here

使用position_stack时,我得到了这个数字:

ggplot(df, aes(x, y, color=f)) + 
  geom_line(position="stack") + 
  geom_point(size=5, position="stack")

enter image description here

问题:如何在使用NA时指出position_stack值,即如何在第二个示例中获得“漏洞”?

我的packageVersion("ggplot2")2.1.0。提前致谢。

1 个答案:

答案 0 :(得分:2)

添加一个明确的group变量......?

df$grp <- c(1,1,NA,2,2,3,3,NA,4,4)

ggplot(df, aes(x, y, color=f, group = grp)) + 
    geom_line(position="stack") +   
    geom_point(size=5, position="stack")

当我这样做时,我明白了:

enter image description here