Comment créer un temps de nuage de points avec R?
Les données sont une série de dates et d'heures.
date time
2010-01-01 09:04:43
2010-01-01 10:53:59
2010-01-01 10:57:18
2010-01-01 10:59:30
2010-01-01 11:00:44
…
Mon but était de représenter un nuage de points avec la date sur l'axe horizontal (x) et le temps sur l'axe vertical (y). Je suppose que je pourrais aussi ajouter une intensité de couleur, si il y a plus d'une fois pour la même date.
Il était très facile de créer un histogramme de dates.
mydata <- read.table("mydata.txt", header=TRUE, sep=" ")
mydatahist <- hist(as.Date(mydata$day), breaks = "weeks", freq=TRUE, plot=FALSE)
barplot(mydatahist$counts, border=NA, col="#ccaaaa")
- Je n'ai pas encore appris comment créer un nuage de points où l'axe de la date et/ou le temps.
- Je tiens également à être en mesure d'avoir de l'axe pas nécessaire linéaires dates AAAA-MM-JJ, mais aussi sur la base mois comme MM-JJ (si différent années s'accumulent), ou même avec une rotation sur semaines.
Toute aide, RTFM URI gifles ou conseils sont les bienvenus.
OriginalL'auteur karlcow | 2011-08-23
Vous devez vous connecter pour publier un commentaire.
La
ggplot2
paquet gère les dates et heures assez facilement.Créer une date et une heure données:
Puis obtenir une
ggplot2
de la magie.ggplot
distribuera automatiquement avec les dates, mais pour obtenir de l'axe du temps correctement formaté utilisationscale_y_datetime()
:Concerne la dernière partie de votre question, sur le regroupement par semaine, etc: c'est pourquoi, vous pourriez avoir à pré-résumer les données dans les seaux que vous voulez. Vous pouvez utiliser éventuellement utiliser
plyr
, puis transmettre les données qui en résultentggplot
.J'ai installé ggplot2, car il semble ggplot n'est pas disponible.
Toutes mes excuses. Oui, je l'ai dit
ggplot2
. Réponse modifiés pour refléter cela.Cet exemple ne fonctionne plus. J'ai l'erreur suivante : "l'entrée non Valide: time_trans fonctionne avec les objets de la classe POSIXct seulement"
Bon spot. J'ai modifié le code et le graphique et il fonctionne maintenant avec la dernière version de
ggplot2
etscales
OriginalL'auteur Andrie
J'aimerais commencer par la lecture sur.POSIXct, strptime, strftime, et difftime. Ces fonctions vous permettent d'extraire les sous-ensembles de données. La mise en forme est un peu difficile, donc, de jouer avec les exemples dans les fichiers d'aide.
Et, une fois vos dates sont convertis à une POSIX classe.numeric() permet de convertir des valeurs numériques, donc faciles à trier, terrain, etc.
Edit: Andre suggestion pour jouer w/ggplot pour simplifier votre axe du cahier des charges est un bon.
OriginalL'auteur Carl Witthoft