Как настроить ось шкалы времени для гистограммы ggplot
Вопрос
Я работаю с фреймом данных, где один из столбцов состоит из POSIXct
значения даты и времени.Я пытаюсь построить гистограмму этих временных меток, используя ggplot2
но у меня две проблемы:
Я не знаю, как установить ширину интервала
geom_histogram()
.Я хотел бы установить для каждой ячейки день или неделю.Я попытался предоставить объект difftime, но получил ошибку.я тоже попробовалbinwidth=1
но R просто зависает.Как установить ограничения в
scale_x_time()
?Единственный способ заставить его работать - это преобразовать мойPOSIXct
временные метки с использованиемas.Date()
.
Решение
- Ширина ячейки измеряется в секундах, поэтому количество ячеек в неделю устанавливается
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)
Не связан с StackOverflow