J'ai exécuté un travail Pig sur un cluster Hadoop qui a réduit un tas de données en quelque chose que R peut gérer pour effectuer une analyse de cohorte. J'ai le script suivant, et à partir de la deuxième à la dernière ligne je les données dans le format:Histogramme de zone empilée dans R
> names(data)
[1] "VisitWeek" "ThingAge" "MyMetric"
VisitWeek est une date. ThingAge et MyMetric sont des entiers.
Les données ressemble à:
2010-02-07 49 12345
Le script que j'ai à ce jour est:
# Load ggplot2 for charting
library(ggplot2);
# Our file has headers - column names
data = read.table('weekly_cohorts.tsv',header=TRUE,sep="\t");
# Print the names
names(data)
# Convert to dates
data$VisitWeek = as.Date(data$VisitWeek)
data$ThingCreation = as.Date(data$ThingCreation)
# Fill in the age column
data$ThingAge = as.integer(data$VisitWeek - data$ThingCreation)
# Filter data to thing ages lt 10 weeks (70 days) + a sanity check for gt 0, and drop the creation week column
data = subset(data, data$ThingAge <= 70, c("VisitWeek","ThingAge","MyMetric"))
data = subset(data, data$ThingAge >= 0)
print(ggplot(data, aes(x=VisitWeek, y=MyMetric, fill=ThingAge)) + geom_area())
Cette dernière ligne ne fonctionne pas. J'ai essayé beaucoup de variations, de barres, d'histogrammes, mais comme d'habitude, les docs R me battent. Je veux qu'il affiche un diagramme de zone empilé standard de style Excel - une série chronologique pour chaque ThingAge empilé sur les semaines dans l'axe des x, avec la date sur l'axe des ordonnées. Un exemple de ce type de graphique est ici: http://upload.wikimedia.org/wikipedia/commons/a/a1/Mk_Zuwanderer.png
J'ai lu les docs ici: http://had.co.nz/ggplot2/geom_area.html et http://had.co.nz/ggplot2/geom_histogram.html et ce blog http://chartsgraphs.wordpress.com/2008/10/05/r-lattice-plot-beats-excel-stacked-area-trend-chart/ mais je ne peux pas faire tout le travail pour moi.
Comment puis-je y parvenir?
Pourriez-vous s'il vous plaît donner un exemple reproductible? Il est difficile de dire ce qui ne va pas sans un. – hadley