График временных рядов в R, с неясной осью в R

#r #lattice

#r #решетка

Вопрос:

Я написал следующий код, чтобы построить график временных рядов по группам.

 nsplot<- xyplot(conc ~ time |Location, data=nspm1long, 
                ylim=range(nspm1long$conc),
                main="PM1 time series by Location", 
                ylab="PM1 concentration (mg/m3)",  
                xlab="Time", type="l",
                par.strip.text=list(cex=0.7), 
                par.settings=list(axis.text=list(cex=0.7)))
print(nsplot)
 

То, что я получил, — это блок толстой линии для оси y вместо отметок, подобных оси x. Кто-нибудь, пожалуйста, помогите мне исправить код. Было бы еще лучше, если бы я мог контролировать диапазон ylim, например 0-0,5, и количество отметок.

Я не знаю, как прикрепить изображение здесь, и, возможно, вы могли бы показать мне, как это сделать.

Комментарии:

1. Попробуйте отредактировать свой вопрос, чтобы включить вывод str(nspm1long) . Это может пролить некоторый свет на проблему.

Ответ №1:

Вывод вашего кода выглядит для меня нормально. Вот что я получаю с некоторыми примерами данных, которые я сделал:

 set.seed(12345)
data = expand.grid(time=1:100, Location=factor(1:3))
data$conc = with(data, 0.1*time   as.numeric(Location))   rnorm(nrow(data))
 

введите описание изображения здесь

См ?xyplot . Ответы на все ваши вопросы о форматировании графика, scales в частности tick.number , ylim tck параметры , , , .

Комментарии:

1. Не совсем. Ваша ось x не является временной переменной. Попробуйте что-то подобное time = Sys.time() cumsum(runif(100)*3600) , которое распространяет его на несколько дней.

2. Ах, я думаю, из OP неясно, в каком формате time находится. Я обновлю окончательную версию, когда мы будем знать наверняка.

Ответ №2:

Поиграв с ним некоторое время, я узнал, что проблема была вызвана значениями NA в наборе данных. После удаления значений NA график теперь выглядит нормально.

Джон — Спасибо за ваши советы о ?xy. Там много интересных вещей. Дирк — я новичок в R и манипулировании данными временных рядов. Я пока не знаю, как его использовать, но буду иметь это в виду