2015-05-30 3 views
2

У меня есть данные, охватывающие период более 25 лет, и я хотел бы видеть годы на оси х.Даты по оси x, временные ряды

dates <- as.Date(Dollar[,1], "%d.%m.%Y") 
Dollar <- as.xts(Dollar[,2], dates) 
plot(SWEDOLall, xaxt = "n", main="SMA", ann = FALSE) 
axis.Date(side = 1, dates, at = labDates, format = "%y", labels = TRUE) 
title(ylab = "Value") 
title(xlab = "Time") 

Но моя ось x просто пустая. Кто-нибудь может понять, какую ошибку я сделал?

+1

Вы должны добавить воспроизводимый пример т.е. показать некоторые данные (не все), которые производят чистую ось х, что вы говорите о. – LyzandeR

+0

Возможно, ваши значения 'at' не находятся в диапазоне графика – rawr

+0

Я думаю, что значения исчезают, потому что переменная дат каким-то образом масштабируется неправильно. В моем ответе ниже я передал его как дату Posix и просто использовал функцию нормальной оси, и это сработало. –

ответ

1

Мне пришлось увеличить ваш пример, чтобы получить с ним что-то, но вот что-то работает. И я просто изменил его, чтобы устранить lubridate ...

library(xts) 
d1 <- seq(as.Date("2001-01-01"),as.Date("2021-01-01"),"years") 
d2 <- rnorm(21,10,1) 
Dollar <- data.frame(d1,d2) 
dates <- as.Date(Dollar[,1], "%d.%m.%Y",tz="GMT") 
xtsplot <- as.xts(Dollar[,2], dates) 
plot(xtsplot, xaxt = "n", main="SMA", ann = FALSE) 
axis(1, at=as.POSIXct(dates),labels=format(dates,"%Y")) 
title(ylab = "Value") 
title(xlab = "Time") 

enter image description here

+1

спасибо! Это сработало! :) Вместо небольших одиночных строк за каждый год (например, у вашей графики) есть только одна большая черная полоса под моей осью x. Вы знаете, как избавиться от него? – Jule

+0

Нет, но в целом, если вам нужно больше контролировать свои сюжеты, вам, вероятно, лучше научиться пользоваться ggplot2. Он намного более гибкий, но имеет более высокую кривую обучения. Возможно, вы захотите опубликовать новую проблему как новую запись, но на этот раз дайте ей полный пример, чтобы люди могли играть с ним. Вы получите ответы намного быстрее. –