2016-12-11 1 views
-1

j'ai données de défaillances de la machine avec une colonne qui définit le temps entre deux pannes (TBF)Tracer une ligne droite graphe occurrence cumulative

structure(list(tbf = c(2441, 2934, 4285, 2285, 4027, 2419, 2437, 2519, 3294, 2858, 3023, 2567, 3112, 2283, 3068, 2215, 3915, 2354.290323, 2477, 2258, 2742.5, 5198, 2837, 3282, 2474, 2883, 3837, 5054, 4874, 3559.5, 2783, 4246, 2602)), .Names = "tbf", class = "data.frame", row.names = c(NA, -33L)) 

Je souhaite tracer un graphique d'apparition cumulative. Je peux le faire en utilisant

library(ggplot2) 
ggplot(mydf, aes(x = tbf)) + stat_ecdf() 

qui crée un terrain comme illustré ci-dessous enter image description here

Cependant, je veux un ajustement de ligne droite dans ce complot. Je ne veux pas d'une ligne inégale, mais d'une ligne droite. J'ai essayé

library(dplyr) 
# add cumulative time and failures 
mydf <- mydf %>% mutate(cumm_time = cumsum(tbf), cumm_fmode = row_number()) 

# fit linear regression 
fit <- lm(cumm_time ~ cumm_fmode, data = mydf) 
# plot points 
plot(mydf$cumm_time, mydf$cumm_time) 
# plot straight line 
abline(fit) 

Cependant, je reçois la figure celui ci-dessous :: enter image description here

Mon exigence est d'obtenir un chiffre quelque chose comme ::

enter image description here

Où suis-je recevoir c'est faux? Toute aide serait appréciée.

Répondre

1

Il semble que vous vouliez créer un graphique avec les mêmes variables sur les deux axes? De cette ligne: plot(mydf$cumm_time, mydf$cumm_time), il y a soit une faute de frappe ou vous tracez un tracé avec la variable dépendante de vos données (cumsum(tbf)) sur les axes X et Y. Je suppose que vous vouliez écrire plot(mydf$cumm_fmode, mydf$cumm_time).

Si vous faites cela, alors le reste de votre code est correct.

plot(mydf$cumm_fmode, mydf$cumm_time) 
abline(fit) 

donne

changed x to mydf$cumm_fmode