Barplot: изменение оси x и добавление линии

У меня есть зоопарк с ежедневными данными, который выглядит так: > head(almorol)
1973-10-02 1973-10-03 1973-10-04 1973-10-05 1973-10-06 1973-10-07
183.9 208.2 153.7 84.8 52.5 35.5

Я хочу построить годовые итоги и скользящее среднее, поэтому я сделал:

y<-apply.yearly(almorol, FUN=sum)
plot(y, main="Annual totals - Tagus (Almorol)",ylab="Q (m3/s)")
lines(rollapply(y, 10, mean, na.rm=TRUE), col="red", lwd=2)

Что отлично работает, но поскольку данные не являются непрерывными, линейный график неверен. Если я делаю это с точками, мне трудно следовать, поэтому я хотел сделать барплот. Однако, когда я делаю barplot(y), ось x появляется в формате гг-мм-дд, а не просто годы, и я не могу добавить строку со скользящим средним (она не дает ошибки, она просто не появляется).

Спасибо за помощь!

редактировать: > y
1973-12-31 1974-12-31 1975-12-31 1976-12-31
19224.20 103766.30 72180.90 55939.80
1977-12-31 1978-12-31 1979-12-31 1980-12-31
215905.00 231014.21 319481.02 58979.84
1981-12-31 1982-12-31 1983-12-31 1984-12-31
32931.17 67989.06 83920.62 99431.75
1985-12-31 1986-12-31 1987-12-31 1988-12-31
161357.10 82910.87 101154.81 147541.80
1989-12-31 1990-12-31 1991-12-31 1992-12-31
137684.21 134974.39 89039.02 20774.72
1993-12-31 1994-12-31 1995-12-31 1996-12-31
58916.95 55187.38 52361.77 271064.34
1997-12-31 1998-12-31 1999-12-31 2000-12-31
220510.88 125116.62 42170.95 103915.99
2001-12-31 2002-12-31 2003-12-31 2004-12-31
244513.59 66811.15 167458.93 67223.66
2005-12-31 2006-12-31 2007-12-31 2008-12-31
8906.31 116874.33 79105.30 40142.61
2009-12-31 2010-12-31 2011-05-31
43835.34 161491.77 73093.06


person sbg    schedule 14.06.2011    source источник
comment
Не могли бы вы вместо head(almorol) показать dput(almorol), чтобы мы могли подыгрывать?   -  person Dirk Eddelbuettel    schedule 14.06.2011
comment
dput (almorol) дает сотни строк, но примерно так: structure(c(183.9, 208.2, 153.7, 84.8, 52.5,......), index = structure(c(1370, 1371, 1372, 1373, 1374, 1375....), class = "Date"), class = "zoo")   -  person sbg    schedule 14.06.2011
comment
Пожалуйста, сократите его до значимого размера для воспроизводимого примера, ср. «Как задать хороший вопрос».   -  person Dirk Eddelbuettel    schedule 14.06.2011


Ответы (1)


Координаты x на гистограмме не связаны с исходным масштабом данных. Вы можете посмотреть на возвращаемое значение функции гистограммы, чтобы увидеть, каков диапазон оси x (вероятная причина того, что линия не видна, заключается в том, что она полностью выведена за пределы экрана).

Функцию updateusr в пакете TeachingDemos можно использовать для изменения масштаба координат в соответствии с данными, которые вы хотите добавить.

Другой альтернативой является использование функции графика с type='h' (и просмотрите параметры lwd и lend в ?par), чтобы создать свой собственный график, подобный гистограмме, с использованием интересующих координат, а затем добавить опорную линию.

person Greg Snow    schedule 14.06.2011
comment
Хорошо, просто убедитесь, что вы установили опцию кредита, если используете широкие линии (lwd). - person Greg Snow; 15.06.2011