Comment tracer une fonction de marches d'escalier avec ggplot?

15

J'ai le graphique comme ceci: entrez la description de l'image ici

Le code R pour le générer est:

DF <- data.frame(date = as.Date(runif(100, 0, 800),origin="2005-01-01"), 
                 outcome = rbinom(100, 1, 0.1))
DF <- DF[order(DF$DateVariable),] #Sort by date
DF$x <- seq(length=nrow(DF)) #Add case numbers (in order, since sorted)
DF$y <- cumsum(DF$outcome)
library(ggplot2)
ggplot(DF, aes(x,y)) + geom_path() + #Ploting
scale_y_continuous(name= "Number of failures") +
scale_x_continuous(name= "Operations performed")

Je veux quelque chose comme ça: entrez la description de l'image ici

La différence se présente sous la forme d'étapes en cas d'échec (j'ai besoin d'un rectangle).

Mes questions sont:

  • Comment y parvenir avec ggplot2?
  • Existe-t-il une meilleure option pour visualiser le taux d'échec dans le temps / les itérations effectuées?
  • Quelle variante est plus facile à comprendre: ceci ou cela ou, peut-être quelque chose de différent?
Yuriy Petrovskiy
la source
2
Avez-vous consulté l' aide en ligne, had.co.nz/ggplot2/geom_step.html ?
chl
Oui, c'est ça. Manqué cela dans la documentation.
Yuriy Petrovskiy
2
@Yuriy, veuillez répondre à votre question. Cela aiderait les futurs utilisateurs ayant des problèmes similaires.
mpiktas
@mpiktas, a ajouté une réponse à la question principale. Des opinions sur d'autres questions?
Yuriy Petrovskiy

Réponses:

17

Comme indiqué par @chl, la réponse consiste simplement à utiliser geom_step () au lieu de geom_path () dans l'exemple ci-dessus.

Résultat (le tracé a des données différentes):

entrez la description de l'image ici

Yuriy Petrovskiy
la source