Построение прямой линии на графике совокупных явлений

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

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

который создает сюжет, как показано ниже введите описание изображения здесь

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

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)

Тем не менее, я получаю цифру ниже: введите описание изображения здесь

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

введите описание изображения здесь

Где я ошибаюсь? Любая помощь будет оценена.

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)

дает

изменил x на mydf $ cumm_fmode

Другие вопросы по тегам