Подтвердить что ты не робот

Как настроить ось шкалы времени для гистограммы ggplot

Я работаю с фреймом данных, где один из столбцов состоит из значений POSIXct date-time. Я пытаюсь построить гистограмму этих временных меток с помощью ggplot2, но у меня возникают две проблемы:

  • Я не знаю, как установить ширину бина в geom_histogram(). Я хотел бы установить каждый ящик на день или неделю. Я попытался предоставить объект difftime, но я получаю сообщение об ошибке. Я также пробовал binwidth=1, но R просто зависает.

  • Как установить лимиты в scale_x_time()? Единственный способ заставить его работать - это преобразовать временные метки POSIXct с помощью as.Date().

4b9b3361

Ответ 1

  • Ширина бинов измеряется в секундах, поэтому в ячейку в неделю устанавливается binwidth=7*24*60*60.
  • Пределы могут быть заданы как вектор из двух объектов 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)