¿Cómo trazar una función de escalones con ggplot?

15

Tengo el gráfico como este: ingrese la descripción de la imagen aquí

El código R para generarlo es:

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")

Quiero algo como esto: ingrese la descripción de la imagen aquí

La diferencia está en forma de pasos en caso de falla (necesito rectangular).

Mis preguntas son:

  • ¿Cómo lograr esto con ggplot2?
  • ¿Existe alguna opción mejor para visualizar la tasa de fallas en el tiempo / iteraciones realizadas?
  • ¿Qué variante es más fácil de entender: esto o aquello o, tal vez, algo diferente?
Yuriy Petrovskiy
fuente
2
¿ Viste la ayuda en línea, had.co.nz/ggplot2/geom_step.html ?
chl
Si esto es. Perdí esto en la documentación.
Yuriy Petrovskiy
2
@Yuriy, por favor responde tu pregunta. Ayudaría a futuros usuarios con problemas similares.
mpiktas
@mpiktas, agregó una respuesta para la pregunta principal. ¿Alguna opinión sobre otras preguntas?
Yuriy Petrovskiy

Respuestas:

17

Como señaló @chl, la respuesta es simplemente usar geom_step () en lugar de geom_path () en el ejemplo anterior.

Resultado (la trama tiene datos diferentes):

enter image description here

Yuriy Petrovskiy
fuente