cumul de données pour geom_step

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Julien Demeaux
Messages : 49
Enregistré le : 23 Oct 2017, 22:24

cumul de données pour geom_step

Messagepar Julien Demeaux » 21 Nov 2017, 04:41

Bonjour à tous,

J'ai un df dont les variables qui m'intéressent ici sont des temps (heures de la journées), des lieux et des quantités de pluie par tranche horaire (en mm).
Type

Code : Tout sélectionner

df
time      city      rain(mm)
1:00      Paris      1.2
1:00      Lyon      1.0
2:00      Paris      0.3
2:00      Lyon      0.6
3:00      Paris      0.5
3:00      Lyon      0.4

etc.

Ce que je voudrais c'est ajouter une variable "cumul de pluie par ville" tout au long de la journée pour ensuite plotter cette variable avec 2 courbes comparant les 2 villes.

Question 1 : Comment faire le cumul ?

Question 2 (bonus) : je pense utiliser geom_step (jamais utilisée encore) mais si vous connaissez une meilleure commande, n'hésitez pas à me dire (qic peut-être ?)

Merci !

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: cumul de données pour geom_step

Messagepar Logez Maxime » 21 Nov 2017, 09:10

Bonjour,

une solution avec dplyr et ggplot2 :

Code : Tout sélectionner

tab
  time  city rain.mm.
1 1:00 Paris      1.2
2 1:00  Lyon      1.0
3 2:00 Paris      0.3
4 2:00  Lyon      0.6
5 3:00 Paris      0.5
6 3:00  Lyon      0.4

ggplot(tab %>% group_by(city) %>% arrange(time) %>% mutate(rain = cumsum(rain.mm.)),
  aes(time, rain, group = city, color = city)) + geom_step()
 
# ou
ggplot(tab %>% group_by(city) %>% arrange(time) %>% mutate(rain = cumsum(rain.mm.)),
  aes(time, rain, group = city)) + geom_step() + facet_wrap( ~ city)
Cordialement,
Maxime

Julien Demeaux
Messages : 49
Enregistré le : 23 Oct 2017, 22:24

Re: cumul de données pour geom_step

Messagepar Julien Demeaux » 21 Nov 2017, 22:33

Merci Maxime, c'est ce que je voulais grosso modo.

Ca me donne ce graphique :
Image

et je voudrais que chaque line parte de 0 et continuent jusqu'à la 24ème heure, comme ça :
Image

Quelles sont les commandes à appeler (idem pour afficher la dernière valeur)?
Merci beaucoup pour votre aide !


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité