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

更改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 颜色

注:因未掌握交互式插入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-富集分析

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

R-plotly|交互式甘特图(Gantt chart)-项目管理/学习计划的更多相关文章

  1. vue甘特图gantt

    vue做甘特图,先大致介绍下核心功能: (1)横轴.纵轴拖拽: (2)自定义监听点击事件(双击.右键等)(3)任务之间显示父子层级关系:(4)左侧列表信息,右侧时间轴表示任务:(5)每个任务可以订制样 ...

  2. odoo10甘特图gantt view

    odoo10中的gantt图示例 1.Gantt属性说明 甘特图视图的根元素是<gantt />,它没有子节点但可以采用以下属性: date_start (required) 提供每条记录 ...

  3. 交互式甘特图组件VARCHART XGantt 如何在活动中标注非工作间隔

    甘特图从1998年的第一个商用版本开始就致力于计划编制和项目管理方面控件的研究和开发,经过20多年的积累和沉淀,目前可为软件开发商和最终用户提供最顶级的计划编制和项目管理的控件产品,帮助用户快速的整合 ...

  4. 自己做的js甘特图插件

    版权所有,禁止转载 内容都在代码中,上图上代码! 代码 <!DOCTYPE html> <html> <head> <title>ganttu.html ...

  5. 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control

    甘特图在项目管理中非常重要,甘特图的思想比较简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理 ...

  6. MVC使用Gantt Chart实现甘特图,管理事情进度

    借助"甘特图",可以直观地了解任务.活动.工作的进度.dhtmlxGantt是一个开源的Javacirpt库,能帮助我们快速创建"甘特图",本篇体验在MVC中的 ...

  7. 【转载】 JQuery.Gantt(甘特图) 开发指南

    转载来自: http://www.cnblogs.com/liusuqi/archive/2013/06/09/3129293.html JQuery.Gantt是一个开源的基于JQuery库的用于实 ...

  8. JQuery.Gantt(甘特图)开发

    一.简介 JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库. 二.前端页面 2.1 资源引用 首先需要将下载到的源码中的CSS.IMG.JS等资源放入 ...

  9. Twproject Gantt开源甘特图功能扩展

    1.Twproject Gantt甘特图介绍 Twproject Gantt 是一款基于 jQuery 开发的甘特图组件,也可以创建其它图表,例如任务树(Task Trees).内置编辑.缩放和 CS ...

随机推荐

  1. 调用webservice获取电话号码归属地信息

    首先什么是webservice ? 从广义上面讲,任何一个服务器所提供的"数据","内容","方法"等等都可以理解为webservice. ...

  2. json-lib包引入失败的解决方法

    要想使用json-lib的依赖必须加入<classifier>jdk15</classifier> 这一行,否则就导入依赖时就会失败报错,下载不下来jar包,因为json-li ...

  3. 开源导入导出通用库Magicodes.ExporterAndImporter发布

    导入导出通用库 Magicodes.ExporterAndImporter为心莱团队封装的导入导出通用库,并且仍在跟随项目不断地打磨. GitHub地址: https://github.com/xin ...

  4. 使用 Docker 安装 showdoc

    一.简介 ShowDoc 是一个非常适合IT团队在线共享文档的工具,在线访问地址为:https://www.showDoc.cc 本来也可以直接 pull showdoc 镜像到本地,使用 docke ...

  5. Linux服务器MySQL安装

    Linux服务器MySQL安装 1. MySQL官网下载如图: 2. 安装MySQL [root@iZ2zebb0428roermd00462Z /]# rpm -ivh https://dev.my ...

  6. Day 2 Bash shell 认识

    1.拍摄虚拟机的快照 2. 什么是Bash shell? 命令解释器,将用户输入的命令,翻译给内核程序,将用户输入的指令翻译给内核 程序,内核处理完成之后将结果返回给bash. 如何打开一个bash窗 ...

  7. vue2.0搭建vue手脚架(vue-cli)

    1.安装node.js 从node官网下载并安装node,安装步骤很简单,只要一路“next”就可以了.安装完成后,打开命令行工具输入命令node -v,如下图,如果出现对应版本号,就说明安装成功了. ...

  8. 使用 Nginx 部署前后端分离项目,解决跨域问题

    前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...

  9. HTTP协议的运行流程

    1.HTTP协议的流程是什么样的呢? (1)http客户端发起请求,创建端口 (2)http服务器在端口监听客户端请求 (3)http服务器向客户端返回状态和内容 更详细的请参考大神:https:// ...

  10. [STL] Implement "map", "set"

    练习热身 Ref: STL中map的数据结构 C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Re ...