#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 и манипулировании данными временных рядов. Я пока не знаю, как его использовать, но буду иметь это в виду