代码之家  ›  专栏  ›  技术社区  ›  Vint

时间序列级图上的覆盖点

  •  1
  • Vint  · 技术社区  · 7 年前

    我有一个使用温度时间序列数据的水平图。水平图如下所示:

    Date<-as.Date(c("2017-01-01","2017-01-01","2017-01-01","2017-01-02","2017-01-02","2017-01-02","2017-01-03","2017-01-03","2017-01-03","2017-01-4","2017-01-4","2017-01-4"))
    Date<-as.POSIXct(Date)
    Y<-c(1,2,3,1,2,3,1,2,3,1,2,3)
    Temp<-c(20,23,25,19,20,21,18,19,20,13,17,19)
    DF<-data.frame(Date,Y,Temp)
    
    
    dev.new(width=15, height=6)
    levelplot(Temp ~ Date * Y, data = DF,ylim=c(3,1),
      xlab = "TimeStamp", ylab = "Temp",
      main = "Test", aspect=0.4,
      col.regions =colorRampPalette(c('blue','red')),at=seq(13, 25, length.out=120))
    

    我想在这个图上叠加3点。理想情况下,我希望在Y=2的1月1日,Y=2.3的1月2日,Y=1.2的1月3日有一个实心点

    1 回复  |  直到 7 年前
        1
  •  2
  •   LyzandeR    7 年前

    您可以使用 layer 从…起 latticeExtra 这样地:

    library(latticeExtra)
    p <- levelplot(Temp ~ Date * Y, data = DF,ylim=c(3,1),
                   xlab = "TimeStamp", ylab = "Temp",
                   main = "Test", aspect=0.4,
                   col.regions = colorRampPalette(c('blue','red')),
                                                 at=seq(13, 25, length.out=120))
    
    p + layer(panel.points(c(DF$Date[1], DF$Date[4], DF$Date[7]), c(2, 2.3, 1.2), 
                           pch = 1, col = "black")) 
    

    输出:

    enter image description here

    你可以试试 pch = 19 如果你想要这些点是实心的。