R-plotly|交互式甘特图(Gantt chart)-项目管理/学习计划
本文首发于“生信补给站”微信公众号,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信息
去掉 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曲线
Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化
maftools | 从头开始绘制发表级oncoplot(瀑布图)
ggalluvial|炫酷桑基图(Sankey),你也可以秀
【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】
R-plotly|交互式甘特图(Gantt chart)-项目管理/学习计划的更多相关文章
- vue甘特图gantt
vue做甘特图,先大致介绍下核心功能: (1)横轴.纵轴拖拽: (2)自定义监听点击事件(双击.右键等)(3)任务之间显示父子层级关系:(4)左侧列表信息,右侧时间轴表示任务:(5)每个任务可以订制样 ...
- odoo10甘特图gantt view
odoo10中的gantt图示例 1.Gantt属性说明 甘特图视图的根元素是<gantt />,它没有子节点但可以采用以下属性: date_start (required) 提供每条记录 ...
- 交互式甘特图组件VARCHART XGantt 如何在活动中标注非工作间隔
甘特图从1998年的第一个商用版本开始就致力于计划编制和项目管理方面控件的研究和开发,经过20多年的积累和沉淀,目前可为软件开发商和最终用户提供最顶级的计划编制和项目管理的控件产品,帮助用户快速的整合 ...
- 自己做的js甘特图插件
版权所有,禁止转载 内容都在代码中,上图上代码! 代码 <!DOCTYPE html> <html> <head> <title>ganttu.html ...
- 一款开源且功能强大的C#甘特图控件.NET Winforms Gantt Chart Control
甘特图在项目管理中非常重要,甘特图的思想比较简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比.管理 ...
- MVC使用Gantt Chart实现甘特图,管理事情进度
借助"甘特图",可以直观地了解任务.活动.工作的进度.dhtmlxGantt是一个开源的Javacirpt库,能帮助我们快速创建"甘特图",本篇体验在MVC中的 ...
- 【转载】 JQuery.Gantt(甘特图) 开发指南
转载来自: http://www.cnblogs.com/liusuqi/archive/2013/06/09/3129293.html JQuery.Gantt是一个开源的基于JQuery库的用于实 ...
- JQuery.Gantt(甘特图)开发
一.简介 JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库. 二.前端页面 2.1 资源引用 首先需要将下载到的源码中的CSS.IMG.JS等资源放入 ...
- Twproject Gantt开源甘特图功能扩展
1.Twproject Gantt甘特图介绍 Twproject Gantt 是一款基于 jQuery 开发的甘特图组件,也可以创建其它图表,例如任务树(Task Trees).内置编辑.缩放和 CS ...
随机推荐
- asp.netcore2.1 IIS部署发布
下载SDK .net core2.1 SDK下载地址:https://www.microsoft.com/net/download 创建Demo项目 打开 powershell 新建项目 dotnet ...
- 前端自动化部署linux centOs + Jenkins + nignx + 单页面应用
Jenkins是什么? Jenkins 是一款业界流行的开源持续集成工具,广泛用于项目开发,具有自动化构建.测试和部署等功能. 准备工作 Linux centOS系统阿里云服务器一个 码云一个存放vu ...
- 一些简单的Linux命令(centos修改网络ip,修改主机名)
环境:linux centos 7 vi /etc/sysconfig/network-scripts/ifcfg-enp3s0f0 可以修改网关地址,网络IP地址,子网地址等等 [root@loca ...
- Winform中设置DevExpress的RadioGroup的items从配置文件中加载
场景 DevExpress的RadioGroup的items选项如果是不确定的话,需要其从配置文件中加载. 实现 在项目目录下新建Config文件夹,文件夹下新建xml配置文件. <?xml v ...
- hbase 修复 hbase hbck
hbase hbck 新版本的 hbck 可以修复各种错误,修复选项是: (1)-fix,向下兼容用,被-fixAssignments替代 (2)-fixAssignments,用于修复region ...
- 浮动后的 <li> 如何在 <ul> 中居中显示?
百度了许久都没有满意的解决方案,现在终于搞定了. 其实,只要 ul 的父元素 css 样式设了 text-align: center; 然后 ul 设了 display: inline-block; ...
- map转java对象
pom依赖: <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons ...
- CentOS7.2搭建LAMP环境
所谓的Lamp就是:Linux+Apache+mysql+php.这里的Linux使用CentOS7.2. 0x00 开始我们可以先更新一下yum: # 升级所有包同时也升级软件和系统内核 yum - ...
- AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...
- spring中使用aop配置事务
spring的事务配置有5种方式,这里记录其中的一种:基于tx/aop声明式事务配置 在之前spring aop介绍和示例这篇所附代码的基础上进行测试 一.添加save方法 1.在testDao类里添 ...