2016-12-11 5 views
-1

У меня есть данные сбоев машины с одного столбца, который определяет время между отказами (TBF)Plotting прямую линию на графике совокупного вхождение

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

Я хочу построить кумулятивный график возникновения. Я могу сделать это с помощью

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

, который создает сюжет, как показано ниже enter image description here

Однако, я хочу прямой линии, проходящей в этом участке. Я не хочу неровной линии, но прямая линия подходит к ней. Я попытался

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) 

Однако я получаю цифру один ниже :: enter image description here

Мое требование, чтобы получить что-то вроде фигуры ::

enter image description here

Где я получаю это неправильно? Любая помощь будет оценена.

ответ

1

Похоже, вы хотите сделать сюжет с теми же переменными на обеих осях? Из этой строки: plot(mydf$cumm_time, mydf$cumm_time), есть либо опечатка, либо вы рисуете график с зависимой переменной ваших данных (cumsum(tbf)) как по оси X, так и по оси Y.

Предполагаю, что вы намеревались напечатать plot(mydf$cumm_fmode, mydf$cumm_time).

Если вы сделаете это, тогда остальная часть вашего кода будет в порядке.

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

дает

changed x to mydf$cumm_fmode