2013-04-25 8 views
1

J'ai la trame de données suivante. Les écarts entre les créneaux horaires sont différents, parfois petites, parfois importantes:Données de séries chronologiques de données R: Temps extrêmement courts

history <- structure(list(timestamp = structure(1:13, .Label = c("2006-06-11 04:43:56", 
"2006-06-11 04:47:24", "2006-06-11 04:47:54", "2006-06-11 04:49:37", 
"2006-06-11 04:52:12", "2006-06-11 04:58:22", "2006-06-11 05:01:11", 
"2006-06-11 05:06:56", "2006-06-11 05:14:35", "2006-06-11 05:21:44", 
"2006-08-21 19:55:50", "2006-08-21 19:56:31", "2007-11-22 22:09:17" 
), class = "factor"), page_length = c(1753, 146, 2401, 461, 113, 
1248, 1268, 720, 1290, 436, 531, 502, 746)), .Names = c("timestamp", 
"page_length"), row.names = c(NA, -13L), class = "data.frame") 

history 
#    timestamp page_length 
#1 2006-06-11 04:43:56  1753 
#2 2006-06-11 04:47:24   146 
#3 2006-06-11 04:47:54  2401 
#4 2006-06-11 04:49:37   461 
#5 2006-06-11 04:52:12   113 
#6 2006-06-11 04:58:22  1248 
#7 2006-06-11 05:01:11  1268 
#8 2006-06-11 05:06:56   720 
#9 2006-06-11 05:14:35  1290 
#10 2006-06-11 05:21:44   436 
#11 2006-08-21 19:55:50   531 
#12 2006-08-21 19:56:31   502 
#13 2007-11-22 22:09:17   746 

mais la question que j'ai est que lorsque j'utilise la méthode suivante pour tracer je ne reçois pas une séparation claire entre le temps. Comme vous le voyez dans le complot que je veux obtenir une bonne séparation entre les courts plages temporelles enter image description here

+0

En fait, cette question est beaucoup plus appropriée pour StackOverflow car il s'agit de programmation. – sashkello

Répondre

2

J'utilise xts pour les séries chronologiques, et j'utiliser quantmod pour produire le type de graphique que (je pense) que vous voulez. (J'évite aussi les POSIXlt lorsque cela est possible, car il est plus lent et utilise plus de mémoire que POSIXct)

library(quantmod) 
x <- xts(history[, 2], as.POSIXct(history[, 1])) 
chartSeries(log(x), theme="white") 

enter image description here

Il y a aussi chart_Series, mais, actuellement, il est en situation irrégulière et moins développée que chartSeries.

Vous pouvez également utiliser la fonction axTicksByTime de xts directement, mais l'axe des x ne sera pas aussi bien formaté.

plot(head(axTicksByTime(x), -1), log(x), type="l", col="red") 
0

type='l' signifie le type de la parcelle est la ligne

plot(as.POSIXlt(history$timestamp,format='%Y-%m-%d %H:%M:%S'), 
    log(history$page_length), xlab= "Months", ylab= "log page Length", type='l', col='red') 

. Donc, cela vous montre une ligne ... Vous voulez probablement type = 'p', c'est-à-dire des points.

Voir plus d'infos here et regardez quelques tutoriels de traçage R, il y en a plus qu'assez.

Questions connexes