美文网首页生信绘图
R-plotly|交互式甘特图(Gantt chart)-项目管

R-plotly|交互式甘特图(Gantt chart)-项目管

作者: 生信补给站 | 来源:发表于2019-10-21 21:54 被阅读0次

    本文首发于“生信补给站”微信公众号,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)
    
    img

    二 绘制甘特图

    数据如上所示,只需任务或者项目内容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[i], df$Start[i] + df$Duration[i]),  #起试和终止
                     y = c(i, i),  #
                     mode = "lines",
                     line = list(color = df$color[i], width = 20), #设置line plot的颜色和线宽
                     showlegend = F,
                     hoverinfo = "text", #悬浮信息为text信息
                     #设置text显示内容
                     text = paste("Task: ", df$Task[i], "<br>",
                                  "Duration: ", df$Duration[i], "days<br>",
                                  "Resource: ", df$Resource[i]),
                     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"
      )
    }
    
    
    img

    更改Layout信息

    1. 去掉 gridlines
    2. 显示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 颜色
    
    
    img

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

    更多内容:

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

    Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化

    Forest plot(森林图) | Cox生存分析可视化

    maftools|TCGA肿瘤突变数据的汇总,分析和可视化

    maftools | 从头开始绘制发表级oncoplot(瀑布图)

    ggalluvial|炫酷桑基图(Sankey),你也可以秀

    ggplot2|详解八大基本绘图要素

    ggplot2|ggpubr进行“paper”组图合并

    pheatmap|暴雨暂歇,“热图”来袭!!!

    ggplot2-plotly|让你的火山图“活”过来

    ggplot2| 绘制KEGG气泡图

    ggplot2|绘制GO富集柱形图

    绘图系列|R-corrplot相关图

    绘图系列|R-VennDiagram包绘制韦恩图

    R|clusterProfiler-富集分析

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

    img

    相关文章

      网友评论

        本文标题:R-plotly|交互式甘特图(Gantt chart)-项目管

        本文链接:https://www.haomeiwen.com/subject/paixvctx.html