查看: 10873|回复: 17

[R语言] R-plotly|交互式甘特图(Gantt chart)-项目管理/学习计划

  [复制链接]
  • TA的每日心情

    2016.7.20 14:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    版主

    Rank: 10Rank: 10Rank: 10

    主题
    32
    奥币
    961
    积分
    462
    注册时间
    2016.3.21
    在线时间
    113 小时

    活跃会员突出贡献


    发表于 2019.10.21 21:58:32 | 显示全部楼层 |阅读模式
    本文首发于“生信补给站”微信公众号,https://mp.weixin.qq.com/s/CGz51qOjFSJ4Wx_qOMzjiw更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号。

    甘特图(Gantt chart),又常被称为横道图或者条状图,是现代企业项目管理领域运用最为广泛的一种图示。就是通过条形来显示项目的进度、时间安排等相关情况的。
    项目管理外,也可以用来管理学习计划。绘制甘特图的工具有很多,本文介绍使用R-plotly包绘制交互式的甘特图,保存html链接后,即可随时查看。

    一 准备数据加载函数包,读入数据library(plotly)
    # Read in data
    df <- read.csv("GanttChart.csv", stringsAsFactors = F)
    # Convert to dates
    df$Start <- as.Date(df$Start, format = "%m/%d/%Y")
    head(df,3)
    二 绘制甘特图
    数据如上所示,只需任务或者项目内容Task,开始时间Start,持续的时间数据即可绘制甘特图。
    # 根据Resource 设置甘特图的颜色
    cols <- RColorBrewer::brewer.pal(length(unique(df$Resource)), name = "Set3")
    df$color <- factor(df$Resource, labels = cols)

    # 初始一个空对象
    p <- plot_ly()

    # 每个task一个line plot,起始时间和任务持续时长
    for(i in 1:(nrow(df) - 1)){
      p <- add_trace(p,
                     x = c(df$Start, df$Start + df$Duration),  #起试和终止
                     y = c(i, i),  #
                     mode = "lines",
                     line = list(color = df$color, width = 20), #设置line plot的颜色和线宽
                     showlegend = F,
                     hoverinfo = "text", #悬浮信息为text信息
                     #设置text显示内容
                     text = paste("Task: ", df$Task, "<br>",
                                  "Duration: ", df$Duration, "days<br>",
                                  "Resource: ", df$Resource),
                     evaluate = T ,
                     xaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6")),
                     yaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6"),
                     tickmode = "array", tickvals = 1:nrow(df), ticktext = unique(df$Task),
                     domain = c(0, 0.9)),
                plot_bgcolor = "#333333",  # 设置颜色
                paper_bgcolor = "#333333"
      )
    }
    更改Layout信息
    • 去掉 gridlines
    • 显示task任务

    p <- layout(p,
                xaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6")),
                yaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6"),
                       tickmode = "array", tickvals = 1:nrow(df), ticktext = unique(df$Task),
                       domain = c(0, 0.9)),
                plot_bgcolor = "#333333",  # Chart area 颜色
                paper_bgcolor = "#333333") # Axis area 颜色

    注:因未掌握交互式插入html方法,因此动态交互图自行运行即可。

    更多内容:
    R|生存分析(1):生存分析介绍以及绘制KM曲线

    【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    评分

    参与人数 1奥币 +20 贡献 +10 收起 理由
    基迪奥-周煌凯 + 20 + 10 骚年淡定~

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    yes!
    2020.5.22 10:21
  • 签到天数: 318 天

    连续签到: 1 天

    [LV.8]以坛为家I

    帝王蝶

    Rank: 4

    主题
    0
    奥币
    549
    积分
    251
    注册时间
    2018.1.22
    在线时间
    116 小时

    发表于 2019.10.22 09:34:02 | 显示全部楼层
    lalalala!
    回复

    使用道具 举报

  • TA的每日心情

    2020.5.9 13:18
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    3119
    积分
    69
    注册时间
    2017.6.16
    在线时间
    21 小时

    发表于 2019.10.27 15:46:36 | 显示全部楼层
    这个甘特图能否用python语言制作
    今天来了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016.7.20 14:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    版主

    Rank: 10Rank: 10Rank: 10

    主题
    32
    奥币
    961
    积分
    462
    注册时间
    2016.3.21
    在线时间
    113 小时

    活跃会员突出贡献


     楼主| 发表于 2019.10.28 10:24:06 | 显示全部楼层
    fc2012 发表于 2019.10.27 15:46
    这个甘特图能否用python语言制作

    可以的 ,python中也有plotly, 同样可以绘制的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    吃饭
    3 天前
  • 签到天数: 65 天

    连续签到: 1 天

    [LV.6]常住居民II

    中华鲟

    Rank: 5Rank: 5

    主题
    2
    奥币
    832
    积分
    873
    注册时间
    2019.10.25
    在线时间
    30 小时

    发表于 2019.11.8 15:15:00 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    吃饭
    2020.3.17 16:06
  • 签到天数: 54 天

    连续签到: 1 天

    [LV.5]常住居民I

    中华鲟

    Rank: 5Rank: 5

    主题
    0
    奥币
    797
    积分
    598
    注册时间
    2019.3.19
    在线时间
    11 小时

    发表于 2019.11.10 10:09:07 | 显示全部楼层
    大神,请收下我的膝盖,牛啊!优秀
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    吃饭
    2020.3.17 16:06
  • 签到天数: 54 天

    连续签到: 1 天

    [LV.5]常住居民I

    中华鲟

    Rank: 5Rank: 5

    主题
    0
    奥币
    797
    积分
    598
    注册时间
    2019.3.19
    在线时间
    11 小时

    发表于 2019.11.13 09:03:16 | 显示全部楼层
    感谢楼主分享~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2020.6.19 21:24
  • 签到天数: 76 天

    连续签到: 1 天

    [LV.6]常住居民II

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    385
    积分
    85
    注册时间
    2016.8.22
    在线时间
    27 小时

    发表于 2019.11.14 16:18:28 | 显示全部楼层
    感谢楼主分享
    啊啊啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2020.6.19 21:24
  • 签到天数: 76 天

    连续签到: 1 天

    [LV.6]常住居民II

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    385
    积分
    85
    注册时间
    2016.8.22
    在线时间
    27 小时

    发表于 2019.11.14 18:52:36 | 显示全部楼层
    感谢楼主分享
    啊啊啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    吃饭
    2020.3.17 16:06
  • 签到天数: 54 天

    连续签到: 1 天

    [LV.5]常住居民I

    中华鲟

    Rank: 5Rank: 5

    主题
    0
    奥币
    797
    积分
    598
    注册时间
    2019.3.19
    在线时间
    11 小时

    发表于 2019.11.16 09:33:54 | 显示全部楼层
    感谢楼主分享`
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    忙~
    2020.6.20 08:49
  • 签到天数: 160 天

    连续签到: 1 天

    [LV.7]常住居民III

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    891
    积分
    88
    注册时间
    2019.11.28
    在线时间
    35 小时

    发表于 2019.11.30 12:09:21 | 显示全部楼层
    值得学习的东西,我又提高了
    新的一天加油!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    49
    积分
    76
    注册时间
    2018.10.14
    在线时间
    2 小时

    发表于 2019.12.20 09:40:40 | 显示全部楼层
    点赞,收藏了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    49
    积分
    76
    注册时间
    2018.10.14
    在线时间
    2 小时

    发表于 2019.12.21 09:19:27 | 显示全部楼层
    点赞,收藏了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    no
    2020.5.15 09:42
  • 签到天数: 16 天

    连续签到: 2 天

    [LV.4]偶尔看看III

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    27
    积分
    113
    注册时间
    2018.10.19
    在线时间
    16 小时

    发表于 2020.1.17 10:31:00 | 显示全部楼层
    学习学习
    周五啦!
    回复

    使用道具 举报

  • TA的每日心情
    忙~
    2020.4.20 09:36
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    钵水母

    Rank: 3Rank: 3

    主题
    5
    奥币
    27
    积分
    40
    注册时间
    2018.2.6
    在线时间
    2 小时

    发表于 2020.4.20 09:36:52 | 显示全部楼层
    学到了,这个图
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016.7.20 14:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    版主

    Rank: 10Rank: 10Rank: 10

    主题
    32
    奥币
    961
    积分
    462
    注册时间
    2016.3.21
    在线时间
    113 小时

    活跃会员突出贡献


     楼主| 发表于 2020.4.20 14:41:43 | 显示全部楼层
    YMkaiye 发表于 2020.4.20 09:36
    学到了,这个图

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    1
    积分
    16
    注册时间
    2020.4.20
    在线时间
    0 小时

    发表于 2020.4.20 17:56:34 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2020.4.20 19:06
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    草履虫

    Rank: 2

    主题
    0
    奥币
    8
    积分
    2
    注册时间
    2020.4.20
    在线时间
    0 小时

    发表于 2020.4.20 19:06:00 | 显示全部楼层
    发发发
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表