R 如何调整ggplot直方图的时间刻度轴

R 如何调整ggplot直方图的时间刻度轴,r,plot,ggplot2,R,Plot,Ggplot2,我正在使用一个数据帧,其中一列由POSIXctdate-time值组成。我试图使用ggplot2绘制这些时间戳的柱状图,但有两个问题: 我不知道如何在geom\u histogram()中设置binwidth。我想把每个垃圾箱设置为一天或一周。我尝试提供difftime对象,但出现了一个错误。我还尝试了binwidth=1,但R只是挂起 如何在缩放x_时间()中设置限制?我能让它工作的唯一方法是使用as.Date()转换我的POSIXct时间戳 binwidth是以秒为单位测量的,因此每周设置为

我正在使用一个数据帧,其中一列由
POSIXct
date-time值组成。我试图使用
ggplot2
绘制这些时间戳的柱状图,但有两个问题:

  • 我不知道如何在
    geom\u histogram()
    中设置binwidth。我想把每个垃圾箱设置为一天或一周。我尝试提供difftime对象,但出现了一个错误。我还尝试了
    binwidth=1
    ,但R只是挂起

  • 如何在
    缩放x_时间()
    中设置限制?我能让它工作的唯一方法是使用
    as.Date()
    转换我的
    POSIXct
    时间戳

  • binwidth是以秒为单位测量的,因此每周设置为binwidth=7*24*60*60
  • 极限可以作为2个POSIXct对象的向量给出
  • 例如:

    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)
    

    y%d给出一个前导零,而%e给出一个单位天数的前导空格。不确定哪一个看起来更好。谢谢!我的比例问题是因为我使用的是scale_x_time()而不是scale_x_datetime()。谢谢-在我的例子中,当数据类型为POSIXct时,我没有意识到binwidth是以秒为单位的。因此,当我设置binwidth=1时,绘图永远不会结束,因为它太细粒度了。另请参见