2009-12-11 2 views
4

я следующий набор данныхКак форматировать оси в R, год и месяцев

1890 mar 0.4 
1890 apr 0.8 
1890 may 1.0 
... 
1989 jan 0.2 
1989 feb 0.4 
1989 mar 0.5 

Как я могу сделать линейный график в R с на оси х год, отображается каждые 5 лет?

Моя проблема заключается не столько в создании сюжета, сколько в том, чтобы показывать только те годы, которые я хочу, и разместить их в начале этого года. Поэтому я не хочу тикать в апреле, но в январе.

+5

R - статистическая вычислительная среда. Нажмите, например, на тег r. Я добавлю ссылку на их домашнюю страницу. –

ответ

4

Это поможет вам начать:

# create some data 
tmp <- seq(as.POSIXct("1890-03-01", tz="GMT"), 
      as.POSIXct("1920-03-01", tz="GMT"), 
      by="month") 
df <- data.frame(date=tmp, 
       val=rnorm(length(tmp))) 

# plot data 
plot(df$date, df$val, xaxt="n") 
tickpos <- seq(as.POSIXct("1890-01-01", tz="GMT"), 
       as.POSIXct("1920-01-01", tz="GMT"), 
       by="5 years") 
axis.POSIXct(side=1, at=tickpos) 

alt text http://img704.imageshack.us/img704/9341/axis.png

2

Вы получаете то, что RCS предложенный по умолчанию, используя zoo в качестве участка с линиями и той же оси (правильно!):

R> library(zoo) 
R> zdf <- zoo(df$val, order.by=df$date) 
R> plot(zdf) 
R> 

Примеры help(plot.zoo) показывают, что нужно индексировать даты в стиле fancier, в основном, что показал rcs, но с дополнительным форматированием через , Скажем,

R> fmt <- "%Y-%m" ## year-mon 
R> txt <- format(index(zdf), fmt) 
R> plot(zdf, xaxt='n') 
R> axis(side=1, at=index(zdf), lab=txt) 
R> 

Если подмножество atlab и вы получите меньше тиков тоже.

Смежные вопросы