L'axe des x est décomposé en intervalles de temps. Il y a une colonne intervalle dans la trame de données qui spécifie l'heure pour chaque ligne. La colonne est un facteur, où chaque intervalle est un niveau de facteur différent.Quelle est la méthode la plus simple pour remplir la zone sous une ligne geom_freqpoly?
Le tracé d'un histogramme ou d'une ligne en utilisant geom_histogram et geom_freqpoly fonctionne très bien, mais j'aimerais avoir une ligne, comme celle fournie par geom_freqpoly, avec la zone remplie.
Actuellement, je suis en utilisant geom_freqpoly comme ceci:
ggplot(quake.data, aes(interval, fill=tweet.type)) + geom_freqpoly(aes(group = tweet.type, colour = tweet.type)) + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))
Je préférerais avoir une zone remplie, comme fourni par geom_density
, mais sans lisser la ligne:
Le geom_area
a été suggéré, y at-il un moyen de utiliser une statistique générée par ggplot2, telle que ..count .., pour les valeurs y de geom_area? Ou, l'agrégation de nombre doit-elle avoir lieu avant d'utiliser ggplot2?
Comme indiqué dans la réponse, geom_area (..., stat = "bin") est la solution:
ggplot(quake.data, aes(interval)) + geom_area(aes(y = ..count.., fill = tweet.type, group = tweet.type), stat = "bin") + opts(axis.text.x=theme_text(angle=-60, hjust=0, size = 6))
produit:
Si vous faites déjà des intervalles êtes-vous sûr que vous voulez une courbe lisse? – Dan
Non, j'explorais juste les geoms ggplot2 qui produiraient la zone remplie.Je préférerais le geom_freqpoly, mais avec une zone remplie. Je suppose que geom_area l'obtiendra mais je devrai agréger manuellement le nombre de fréquences. – mattrepl
En fait, y a-t-il une raison pour laquelle vous utilisez un facteur au lieu d'une variable de date et d'heure? – hadley