我想根据因子变量“状态”来区分绘图颜色的区域。我使用 fill=Status,但是,我看到绘图区域出现中断。关于如何避免这种情况以及为什么会发生这种情况有什么想法/建议吗?
df1 <- data.frame(Date=seq(as.Date("2016/03/01"), as.Date("2016/03/10"), "day"),
Storypoints=c(8,14,16,23,28,35,40,44,46,55),
Status=c(rep("Completed",7), rep("Open",3)))
ggplot(data=df1, mapping = aes(x = Date)) +
geom_area(aes(y=Storypoints, fill=Status))
原因是 Mar 07 和 Mar 08 之间没有数据点。并且由于间隙两侧的点不属于同一组,因此 ggplot 不会连接它们。简而言之,红色是在 3 月 7 日结束,蓝色是在 3 月 8 日开始,中间没有任何内容。
如果您对同一个图进行成像,但只是删除了间隙,则这意味着 x 轴应同时标记为 Mar 07and2008 年 3 月,两条曲线相交的地方。
对此没有明显的解决方案,因为实际上没有可以在间隙中绘制的数据。如果您想填补空白,您必须做出决定并相应地修改您的数据。
一种可能的决定(但很可能不是一个很好的决定)是简单地添加一个数据点,以便读取区域填补空白:
df1[11, "Date"] <- as.Date("2016-03-08")
df1[11, "Storypoints"] <- 44
df1[11, "Status"] <- "Completed"
ggplot(data=df1, mapping = aes(x = Date)) +
geom_area(aes(y=Storypoints, fill=Status), pos = "identity")
但问题很明显:我添加的数据点不应该存在,所以 3 月 8 日的图显示的实际上是误导性的。
我不确定是否有一个令人满意的解决方案。但也许其他人有更好的主意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)