通过geom_path()删除从第一个到最后一个数据链接的行

时间:2018-06-20 15:41:38

标签: r ggplot2

我从堆栈溢出中学到geom_path()可以从同一行的不同数据部分删除该行。这意味着在整个红色行中,有一些其他颜色部分,如果没有此命令,则前一个蓝色部分的最后一个点将链接到下一个蓝色的第一个点。蓝色部分。代码和图片如下:

p6 <- ggplot(data = M1.m, mapping = aes(x = as.Date(M1_Date, format='%d/%m/%Y'), 
                                       y = M1_Value, color = factor(NewGroup))) + geom_path(aes(group = 1)) + geom_point(size = 0.5)
p6 <- p6 + labs(x = "Date", y = "Value") + labs(color = "Value Type")
p6

enter image description here

当我使用它们时,似乎间​​隔数据已经解决了这个问题,但是在第一个数据和最后一个数据之间有一条连线。你能告诉我如何删除它吗?

数据太大,因此我无法在此处链接表示抱歉,这是链接: Data

谢谢!

1 个答案:

答案 0 :(得分:0)

geom_path()用于根据数据帧中的数据顺序绘制线条。在我的问题中,列M1_value包含两个具有相同周期的类型数据。因此,类型1中的最后一个数据紧挨类型中的第一个数据,这就是布线的原因。解决方案是在数据框中添加新列(例如type),并在group = type中添加aes()以删除行。 (顺便说一句,此问题与记录每月温度相似,因为新月温度的第一天将与该月最后一天的温度相关联,而这类问题的关键是明确指定分类并将其分组使问题更加更容易。)

答案: 将以前的代码更改为:

p6 <- ggplot(data = M1.m, mapping = aes(x = as.Date(M1_Date, format='%d/%m/%Y'), y = M1_Value, 
                                        color = NewGroup, group = M1_Type)) + geom_path() + geom_point(size = 0.5)
p6 <- p6 + labs(x = "Date", y = "Value") + labs(color = "Value Type")
p6

,绘图变为: M1 因此,删除了有线线路。做完了! 感谢以下链接的帮助: R geom_path lines "closing", sometimes. How to keep them "open"?