绘制每个任务的时间长度

时间:2018-11-26 22:56:35

标签: r ggplot2 time

我正在尝试制作一个图表,以显示每个任务运行了多长时间

我每个任务都有一行

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 :(得分:2)

您可以使用柱形图显示此类信息。像这样:

 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,您将获得2分:

finsih

编辑:感谢您使用图片进行更新。试试这个:

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

您可以根据线条的外观和特定的轴刻度进行修改,但这应该可以帮助您入门。