2013-04-28 2 views
1

Я пытаюсь добавить даты к графику из нескольких рядов данных, используя matplot(), и я не могу найти решение. Любая помощь будет принята с благодарностью.Как добавить дату в матрицу данных?

Например, давайте создадим простую матрицу из серии 2 данных:

> a <-matrix(1+rnorm(20),10,2) 
> a 
      [,1]  [,2] 
[1,] 2.7540781 1.31428162 
[2,] 2.4630120 1.04378781 
[3,] 1.7556846 -0.08914417 
[4,] 0.9446534 1.59287973 
[5,] 1.2365692 1.28315556 
[6,] -0.7582962 -0.17436644 
[7,] 1.6519822 3.30782961 
[8,] 0.3979254 0.38058894 
[9,] 1.6826193 1.47889565 
[10,] 0.1343743 0.68098755 

Далее, давайте создадим серию дата:

> dates <- data.frame(days = seq(as.Date('2013-01-01'), by = 'days', length = 10)) 
> dates 
     days 
1 2013-01-01 
2 2013-01-02 
3 2013-01-03 
4 2013-01-04 
5 2013-01-05 
6 2013-01-06 
7 2013-01-07 
8 2013-01-08 
9 2013-01-09 
10 2013-01-10 

Любая идея, как я могу построить график серии «а» так что он соответствует дате «даты»? В частности, я хотел бы иметь возможность построить через matplot(), например:

matplot(a,type="l") 

с серии «датами», проходящих вдоль дна в стандартной форме. Благодаря!

+0

Является ли это решение: 'matplot (yday (даты [1]), а, тип = "л") '? – Frank

+0

Нет, генерирует ошибку: Ошибка в as.matrix (x): не удалось найти функцию «yday» –

+0

А, ок. Я не заметил, что пришел из одного из моих установленных пакетов. – Frank

ответ

0

Я никогда не слышал о matplot раньше, наиболее часто используемые графические системы являются основными один (plot, lines и т.д.), lattice и ggplot2. Я бы использовал один из них, поскольку количество кода пользователя и примеры для них очень велики.

Я предпочитаю использовать ggplot2, обратите внимание, что структура данных должна быть переделаны немного, чтобы заставить его плавно работать с ggplot2:

library(ggplot2) 
library(reshape2) 
dat = data.frame(dates, a) 
dat_melt = melt(dat, id.vars = "days") 
ggplot(dat_melt, aes(x = days, y = value, color = variable)) + geom_line() 

enter image description here

+0

Спасибо, Пол. Это сработает! –

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