R 刻面图和线图:如何绘制和断开具有组的线中的间隙

R 刻面图和线图:如何绘制和断开具有组的线中的间隙,r,ggplot2,facet-grid,aesthetics,R,Ggplot2,Facet Grid,Aesthetics,更新以解释这不是一个重复的问题 我想删除下面图1:要修复的刻面图中连接线组之间“数据间隙”的线。我正试图重现图片2。(图2中连接原始数据集和校正数据集的线条很好,但不需要) 刻面图显示了从同一数据记录器记录的两个参数的值。每个参数都有一个原始值数据集和一个更正的数据集,其中删除了错误值(总共4个数据集)。我将它们与gather()结合起来,以生成facet图,并添加了一个列类型(raw或corrected) 我读过这样一篇文章,保持NA可以防止线图绘制点。要做到这一点,我似乎需要4种参数类型(p

更新以解释这不是一个重复的问题

我想删除下面图1:要修复的刻面图中连接线组之间“数据间隙”的线。我正试图重现图片2。(图2中连接原始数据集和校正数据集的线条很好,但不需要)

刻面图显示了从同一数据记录器记录的两个参数的值。每个参数都有一个原始值数据集和一个更正的数据集,其中删除了错误值(总共4个数据集)。我将它们与gather()结合起来,以生成facet图,并添加了一个列类型(raw或corrected)

我读过这样一篇文章,保持NA可以防止线图绘制点。要做到这一点,我似乎需要4种参数类型(parameter1raw、parameter1corrected、parameter2raw、parameter2corrected)。但是,一旦我这样做了,我就不知道如何制作一个刻面图,其中参数1 raw和参数1 corrected一起绘制在刻面的顶部图形上,参数2 raw和参数2 corrected在刻面的底部图形上

链接1:

绘图组:

链接2: 我了解如何对同一行应用不同的颜色(至少有一种方法——请参见下面的示例代码)。 这个答案并没有解释如何在刻面图中做到这一点。我尝试过aes()放置和组,但没有找到一种解决方案,允许两个面图,每个面图有两个不连接组之间线的线分组。我是否需要为每个方面绘图单独调用geom_line()(可能吗)

要修复的刻面打印:线具有分组值,组之间的间隙已连接。

我希望我的情节看起来像什么的例子

以下是一个示例数据集:

df<- data.frame(DateTime=c("08/29/2011 00:00", "08/29/2011 01:00", "08/29/2011 02:00", "08/29/2011 03:00", "08/29/2011 04:00", "08/29/2011 05:00", 
                        "08/29/2011 06:00", "08/29/2011 07:00", "08/29/2011 08:00", "08/29/2011 09:00", "08/29/2011 10:00", "08/29/2011 11:00",
                        "08/29/2011 12:00", "08/29/2011 13:00", "08/29/2011 14:00", "08/29/2011 15:00", "08/29/2011 16:00", "08/29/2011 17:00",
                        "08/29/2011 18:00", "08/29/2011 19:00", "08/29/2011 20:00", "08/29/2011 21:00", "08/29/2011 22:00", "08/29/2011 23:00", 
                        "08/30/2011 00:00", "08/29/2011 00:00", "08/29/2011 01:00", "08/29/2011 02:00", "08/29/2011 03:00", "08/29/2011 04:00", "08/29/2011 05:00", 
                        "08/29/2011 06:00", "08/29/2011 07:00", "08/29/2011 08:00", "08/29/2011 09:00", "08/29/2011 10:00", "08/29/2011 11:00",
                        "08/29/2011 12:00", "08/29/2011 13:00", "08/29/2011 14:00", "08/29/2011 15:00", "08/29/2011 16:00", "08/29/2011 17:00",
                        "08/29/2011 18:00", "08/29/2011 19:00", "08/29/2011 20:00", "08/29/2011 21:00", "08/29/2011 22:00", "08/29/2011 23:00", 
                        "08/30/2011 00:00"),
             Type=c("Corrected", "Corrected", "Raw", "Raw", "Corrected", "Corrected", "Corrected", "Corrected",
                    "Raw", "Raw","Raw","Raw","Raw","Raw", "Corrected", "Corrected",
                    "Corrected", "Corrected","Raw","Raw","Corrected","Corrected","Corrected", "Corrected",
                    "Raw", "Corrected", "Corrected", "Raw", "Raw", "Corrected", "Corrected", "Corrected", "Corrected",
                    "Raw", "Raw","Raw","Raw","Raw","Raw", "Corrected", "Corrected",
                    "Corrected", "Corrected","Raw","Raw","Corrected","Corrected","Corrected", "Corrected",
                    "Raw"))
df$DateTime<-strptime(df$DateTime,"%m/%d/%Y %H:%M")
df$DateTime<-as.POSIXct(df$DateTime, tz="EST") 
df$Parameter[1:25]<-"Par1"
df$Parameter[26:50]<-"Par2"
df$Value<-sample(c(11:60))
df$Value<-ifelse(df$Type=="Raw", 1, df$Value)

我的评论实际上比它需要的更复杂。您只需将
美学添加到
geom\u行
。通过不添加
Type==Corrected
,您不必手动更改图例

因此,以下是哈德利提出的原因:

重要的是[对于在水平面上有一个因子的线图] axis]用于手动指定分组。默认情况下,ggplot2使用 将绘图中的所有分类变量组合为组几何图形- 这对这个图不起作用,因为你得到了一个单独的线 每一点。手动指定组=1表示您需要单个组 连接所有点的线

以下是您的示例:

df %>% ggplot(aes(DateTime, Value, color=Type))+
        geom_point()+
        geom_line(aes(group = Parameter))+
        theme_bw()+
        facet_grid(Parameter ~., scales="free")+ 
        scale_color_manual(values=c("#CC79A7","#000000")) + 
        labs(x="Date-Time")+
        theme(text=element_text(family="serif"), 
              strip.text.y=element_text(face="bold"), strip.background = element_rect(fill=NA, colour="black"),
              axis.text=element_text(color="#000000"), axis.title=element_text(face="bold"))

感谢您提供的链接,编辑该链接是为了解释这不是一个重复的问题。请尝试以下操作:df%>%ggplot(aes(日期时间,值,颜色=(类型=“更正”))+geom_point()+geom_line(aes(组=参数))+theme_bw()+facet_grid(参数~,scales=“free”)+scale_color_手册(值=c(“#CC79A7”,“#000000”))+labs(x=“Date Time”)+theme(text=element_text(family=“serif”)、strip.text.y=element_text(face=“bold”)、strip.background=element_rect(fill=NA,color=“black”)、axis.text=element_text(color=“#000000”)、axis.title=element_text(face=“bold”))谢谢!!这正是我想要的。在那之后,我不得不手动修复图例。你能解释一下颜色吗。color=Type是如何连接数据间隙的?
df %>% ggplot(aes(DateTime, Value, color=Type))+
        geom_point()+
        geom_line(aes(group = Parameter))+
        theme_bw()+
        facet_grid(Parameter ~., scales="free")+ 
        scale_color_manual(values=c("#CC79A7","#000000")) + 
        labs(x="Date-Time")+
        theme(text=element_text(family="serif"), 
              strip.text.y=element_text(face="bold"), strip.background = element_rect(fill=NA, colour="black"),
              axis.text=element_text(color="#000000"), axis.title=element_text(face="bold"))