график времени для каждой задачи - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать диаграмму, показывающую, как долго выполняется каждое задание

У меня по одной строке на одно задание

task     |   Start_time |    Finish_time

Task 1    |  09:00:00    |   09:45:00
Task 2   |  09:20:00    |   13:15:00

Так что я пытаюсь разместить задачи на xось и ось y обозначены 24-часовыми отметками, а столбец имеет время, которое он пробежал за это время.

пока у меня есть:

ggplot(sas_program_data, aes(xmin = Start_time, xmax = Finish_time, fill = factor(task)))

enter image description here

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете использовать граф столбцов, чтобы показать этот тип информации.Примерно так:

 library(magrittr)
 library(ggplot2)
 library(plyr)

 df <- data.frame(task=c("T1", "T2"),
             start=c("09:00:00", "09:20:00"),
             finish=c("09:45:00", "13:15:00")) %>%
    mutate(diff=strptime(df$finish, format = "%H:%M:%S")-strptime(df$start, format = "%H:%M:%S"))

 ggplot(aes(task, diff), data=df[, c("task", "diff")]) +
   geom_col()

Вы также можете добавить цвет в бит geom_col(), если хотите, добавив aes(fill=task).

Если вам нужны только точки, вы можете заменить geom_col() с geom_point() и diff с finsih вы просто получите 2 балла:

 ggplot(aes(task, finish), data=df[, c("task", "finish")]) +
   geom_point()

Редактировать: спасибо за обновление с изображением.Попробуйте это:

 ggplot() +
   geom_segment(aes(y=start, yend=finish, x=task, xend=task), data = df, size=2)

Вы можете разбираться с видом линий и определенных отметок на осях, но это должно помочь вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...