r - 绘制每个任务的时间长度
问题描述
我正在尝试制作一个图表来显示每个任务运行了多长时间
每个任务我有一行
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)))
解决方案
您可以使用柱形图来显示此类信息。像这样的东西:
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)
您可以随意查看线条的外观和特定的轴刻度,但这应该可以帮助您入门。
推荐阅读
- bash - 如何在bash中获得完全限定的目录
- blazor - Blazor:在 IIS 服务器中发布后应用程序崩溃
- c# - AutoMapper.AutoMapperMappingException:.NET CORE 中缺少类型映射配置或不支持的映射
- docker - 如何将环境变量导出到 Dockerfile?
- node.js - Clear-Site-Data HTTP 标头只是一个提示吗?
- flutter - 为什么这会显示在应用程序中?是下拉按钮的问题吗?
- c# - 多个组件在 blazor 中使用相同的标签
- html - 从没有 javascript 的 CSS 更改 SVG viewBox 大小
- python - 如何检测反应?
- flutter - 将 Whatsapp 业务 API 与 Flutter 应用程序集成