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

StackOverflow https://stackoverflow.com/questions/2409317

  •  18-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

  1. Ширина ячейки измеряется в секундах, поэтому количество ячеек в неделю устанавливается 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top