如何突出显示特定间隔,并在ggplot中用R中同一图形上的一条线标记它

如何突出显示特定间隔,并在ggplot中用R中同一图形上的一条线标记它,r,graph,plot,R,Graph,Plot,我试图在同一个图表上为特定的时间间隔添加一行。我成功地为间隔添加了一个点,但无法绘制线。 我的数据集跨越一个月,同一点有2000多条记录 我面临以下问题 我无法在图形上以特定间隔绘制彩色垂直线(当前“红色”点位于下图中) 我无法在图表上标注水平线 x轴上的时间乱七八糟 我正在使用以下工具: ggplot(样本数据,aes(x=时间,y=温度)) +几何图形线(颜色=“蓝色”) +几何点(数据=采样数据[sampledata$ISFAILED==1,],aes(x=时间,y=温度),color=“

我试图在同一个图表上为特定的时间间隔添加一行。我成功地为间隔添加了一个点,但无法绘制线。 我的数据集跨越一个月,同一点有2000多条记录

我面临以下问题

  • 我无法在图形上以特定间隔绘制彩色垂直线(当前“红色”点位于下图中)
  • 我无法在图表上标注水平线
  • x轴上的时间乱七八糟
  • 我正在使用以下工具:

    ggplot(样本数据,aes(x=时间,y=温度))
    +几何图形线(颜色=“蓝色”)
    +几何点(数据=采样数据[sampledata$ISFAILED==1,],aes(x=时间,y=温度),color=“red”,size=5)
    +geom_hline(yintercept=平均值(样本数据$TEMP))
    +注释(“文本”、平均值(sampledata$TEMP)、平均值(sampledata$TEMP)、标签=“点的平均温度”)
    +连续刻度(限值=c(20,60))
    +缩放x_日期时间(间隔=“3小时”)
    +ggtitle(“失败点分析”)
    +主题(plot.title=element\u text(lineheight=0.8,face=“bold”))

    我在上面代码之后得到的图形是:

    我的数据集如下所示:

    时间点是失败的温度
    A点2014-08-01-01.29.21.90490 48
    A点2014-08-01-03.26.13.074337 0 51
    A点2014-08-01-07.53.10.520026 0 50
    A点2014-08-01-04.32.55.003535 0 51
    A点2014-08-01-02.52.45.467612 0 50
    A点2014-08-01-06.46.18.597976 0 50
    A点2014-08-01-07.19.53.073411 0 49
    A点2014-08-01-05.40.10.461919 0 47
    A点2014-08-01-00.56.06.125871 0 50
    A点2014-08-01-09.00.30.929944 0 51
    A点2014-08-01-11.13.55.381132 0 51
    A点2014-08-01-17.36.20.011432 0 53
    A点2014-08-01-15.39.52.437406 0 48
    A点2014-08-01-16.13.07.448502 0 54
    A点2014-08-01-16.29.48.596822 0 54
    A点2014-08-01-07.03.11.885053 0 51
    A点2014-08-01-13.44.01.552160 50
    A点2014-08-01-06.29.38.790211 0 49
    A点2014-08-01-10.39.58.155461 0 51
    A点2014-08-01-08.09.55.884192 0 49
    A点2014-08-01-09.33.52.323988 0 51
    A点2014-08-01-10.57.19.051928 0 50
    A点2014-08-01-12.53.29.557342 0 49
    A点2014-08-01-17.03.36.697180 0 54
    A点2014-08-01-02.02.46.494588 0 50
    A点2014-08-01-02.36.05.328555 0 48
    A点2014-08-01-04.49.30.035927 0 50
    A点2014-08-01-11.30.39.280761 0 51
    A点2014-08-01-11.46.46.207718 0 48
    A点2014-08-02-11.05.02.353600 56
    A点2014-08-02-09.25.17.728003 0 58
    A点2014-08-02-03.35.40.512034 0 54
    A点2014-08-02-06.22.47.452380 49
    A点2014-08-01-19.33.18.048757 0 55
    A点2014-08-02-01.39.03.352322 0 58
    A点2014-08-02-04.59.25.138487 0 55
    A点2014-08-02-07.28.47.747091 1 29
    A点2014-08-02-02.45.45.520469 0 55
    A点2014-08-01-23.59.15.588449 0 57
    A点2014-08-02-05.48.58.214984 0 48
    A点2014-08-02-19.57.24.112321 0 30
    A点2014-08-02-09.08.40.053227 0 58
    A点2014-08-02-04.25.34.167623 0 55
    

    使用部分数据集,我首先缩短了时间变量,只保留年/月/日

    sampledata$TIME <- substr(x = sampledata$TIME, start = 1, stop = 10)
    

    很抱歉,我没有添加@lawyeR的数据集。我现在已经添加了我的数据集。我整个月有2000多张唱片。您能为我提供上述3个问题的解决方案吗类(sampledata$TIME)[1]“POSIXct”“POSIXt”>类(sampledata$TEMP)[1]“numeric”>类(sampledata$ISFAILED)[1]“numeric”修改后的答案应该可以,Amrut。我相信你会考虑接受这个答案,但我仍然不能贴上@律师的标签。当我试图给它添加标签时,它向我抛出了一个错误“error:Invalid input:time_trans仅适用于POSIXct类的对象”。。。。。。。。关于x轴上的时间,我想绘制时间间隔,而不是日期。有可能吗?我添加了我使用的数据集,以防您的数据集不同。注意,我删除了第一行,因为它都是一样的,并且read.table(textConnection)反对。“时间间隔”是指“第一天”、“第二天”等吗。?我在这件事上花了很多时间。很抱歉占用了你很多时间。按时间间隔,我的意思是说01:00:00,01:30:00,02:00:00。。。。。。23:30:00 ... 或01:00:00,02:00:00,23:00:00.
    ggplot(sampledata, aes(x=TIME, y=TEMP)) + 
      geom_line(colour="blue") + 
      geom_point(data=sampledata[sampledata$ISFAILED==1, ], aes(x=TIME, y=TEMP), colour="red", size =5) + 
      geom_hline(yintercept=mean(sampledata$TEMP)) +
      geom_vline(xintercept = 1.5, color = "red") +
      annotate("text", x = 1.5, y = mean(sampledata$TEMP), label = "Average Temp of the Point") +
      theme(axis.text.x = element_text(angle = 30))