ось даты с фиксированным пределом для гистограммы и / или истории - PullRequest
2 голосов
/ 30 августа 2011

С учетом списка дат

dates <- data.frame(foo = c( 
           "2009-03-15", 
           "2010-04-15", 
           "2011-06-16", 
           "2011-06-17", 
           "2011-06-17", 
           "2011-06-17", 
           "2011-06-17"))

Я могу легко составить гистограмму с помощью следующей команды:

histo <- hist(as.Date(dates$foo), breaks = "months", freq=TRUE, plot=TRUE)

Я также могу сделать барплот

barplot(histo$counts)

Моя проблема:

  • Как мне создать ось X, которая фиксирована во времени. Допустим, начиная с 2001-02-03 и заканчивая 2011-12-13?
  • Как добавить метки на оси x только для лет с отметками лет.

Примечание : Мне нужна ежемесячная гистограмма, поэтому предлагаемое решение, если возможно, должно сохранять breaks = months или эквивалентный.

1 Ответ

2 голосов
/ 30 августа 2011

Мне лень выяснять, как это сделать, используя базовую графику.Это довольно просто в ggplot2, однако:

library(ggplot2)
library(zoo)
ggplot(data = dates,aes(x = as.Date(as.yearmon(foo)))) + 
    geom_bar() + 
    xlim(as.Date(c('2001-01-01','2011-07-20')))

enter image description here

Обратите внимание, что вы описываете не гистограмму, а гистограмму.Преобразование назад и вперед из yearmon, а затем обратно в Date дает вам разбивку по месяцам, но облегчает поддержание масштаба даты.

...