R中的旋转x标签

时间:2013-08-07 17:19:01

标签: datetime axis-labels kernel-density

我在R中有如下数据:

   bag_id location_type            event_ts
1     155      transfer 2012-01-02 15:57:54
2     155        sorter 2012-01-02 17:06:05
3     305       arrival 2012-01-01 07:20:16
4     692       arrival 2012-03-29 09:47:52
10    748      transfer 2012-01-08 17:26:02
11    748        sorter 2012-01-08 17:30:02
12    993       arrival 2012-01-23 08:58:54
13   1019       arrival 2012-01-09 07:17:02
14   1019        sorter 2012-01-09 07:33:15
15   1154      transfer 2012-01-12 21:07:50

其中class(event_ts)是“POSIXct”。

我想在不同的时间找到每个位置的行李密度。所以,我使用了如下的功能密度:

    adj<-.00001
    dSorter<-density(as.numeric(Data$event_ts[which(Data$location_type=="sorter")]),n=length(Data$event_ts[which(Data$location_type=="sorter")]),adjust = adj) 
    StartTime<-as.POSIXct(strptime("2012-06-01", "%Y-%m-%d"), tz="UTC") # want to zoom & see part of data
    EndTime<-as.POSIXct(strptime("2012-06-3", "%Y-%m-%d"), tz="UTC")
    Range<-range(as.numeric(c(StartTime,EndTime)))
    lablist.x<-substr(seq(StartTime,EndTime,by="hour"),start=6, stop=13) # want to have time labels for my plot
    plot(dSorter, main="Sorter",xlim=Range, xaxt = "n")
    axis(1, at=as.numeric(seq(StartTime,EndTime,by="hour")), labels =F)
text(1:49,par("usr")[3] - 0.25, labels=lablist.x,srt = 45,adj=1, , xpd = TRUE) #want to rotate the labels

最后一条评论不起作用,我不知道如何识别功能“文字”中的“x”值。

提前感谢您提出任何意见和指导。

最佳, 岛

1 个答案:

答案 0 :(得分:0)

问题解决了, 我在函数“ text ”中使用以下命令找到了我必须使用的坐标: par(“usr”) 并将我的代码的最后一行更改为:

text(c(as.numeric(seq(StartTime,EndTime,by="hour"))),par("usr")[3]-(par("usr")[4]-par("usr")[3])/20,  labels=lablist.x,srt = 45,adj=1,  xpd = TRUE)