如何调整ggplot直方图的时标轴

时间:2010-03-09 13:31:41

标签: r plot ggplot2

我正在使用数据框,其中一列包含POSIXct日期时间值。我试图使用ggplot2绘制这些时间戳的直方图,但我有两个问题:

  1. 我不知道如何在geom_histogram()中设置binwidth。我想将每个垃圾箱设置为一天或一周。我试过提供difftime对象,但是我收到了一个错误。我也试过binwidth=1但是R只是挂起。

  2. 如何在scale_x_time()中设置限制?我能够让它发挥作用的唯一方法是使用POSIXct转换as.Date()个时间戳。

1 个答案:

答案 0 :(得分:21)

  1. binwidth以秒为单位进行测量,因此每周bin设置binwidth=7*24*60*60
  2. 限制可以作为2个POSIXct对象的向量给出。
  3. 一个例子:

    y<-as.POSIXct('1970/01/01')+cumsum(rnorm(100,mean=24*60*60,sd=24*60*60))
    p<-qplot(y,binwidth=7*24*60*60,fill=I('steelblue'),col=I('black'))
    p<-p+scale_x_datetime(major="1 week",
                          minor="1 days",
                          format="%e/%m/%Y",
                          limits=c(as.POSIXct('1970/02/01'),
                                   as.POSIXct('1970/03/31')))
    print(p)