详解Python使用Plotly绘图工具,绘制甘特图


Posted in Python onApril 02, 2019

今天来讲一下如何使用Python 的绘图工具Plotly来绘制甘特图的方法

甘特图大家应该了解熟悉,就是通过条形来显示项目的进度、时间安排等相关情况的。

我们今天来学习一下,如何使用ployly来绘制甘特图

绘制甘特图的函数为Plotly.figure_factoryz中create_gantt方法

通过参数事件Task,开始Start,结束Finish的时间的数据来绘制甘特图

import plotly as py
import plotly.figure_factory as ff
 
pyplt = py.offline.plot
 
df = [dict(Task = "项目1", Start = '2019-02-01', Finish = '2019-05-28'),
   dict(Task = "项目2", Start = '2019-03-05', Finish = '2019-04-15'),
   dict(Task = "项目3", Start = '2019-03-20', Finish = '2019-05-30')]
 
fig = ff.create_gantt(df)
pyplt(fig, filename='tmp/1.html')

详解Python使用Plotly绘图工具,绘制甘特图

运行上诉代码,我们可以看到纵坐标为我们的的项目数量。横坐标时间不短增加,越接近纵坐标的,说明事件发生的情况越早。

还可以在甘特图中加入数字索引值

代码如下:

import plotly as py
import plotly.figure_factory as ff
 
pyplt = py.offline.plot
df = [dict(Task="项目1", Start='2019-01-01', Finish='2019-02-28', Complete=10),
   dict(Task="项目2", Start='2018-12-05', Finish='2019-04-15', Complete=10),
   dict(Task="项目3", Start='2019-02-20', Finish='2019-05-30', Complete=50),
   dict(Task="项目4", Start='2019-03-20', Finish='2019-06-30', Complete=50),
   dict(Task="项目5", Start='2019-01-12', Finish='2019-04-28', Complete=100),
   dict(Task="项目6", Start='2019-03-07', Finish='2019-08-21', Complete=100)]
 
fig = ff.create_gantt(df, index_col='Complete', show_colorbar=True)
pyplt(fig, filename='tmp/1.html')

 详解Python使用Plotly绘图工具,绘制甘特图

运行上诉代码,可以看到右边出现了索引条,每项工作后的complete属性即为其对应的索引值,在create_gamtt函数中

设置,index_col = ‘Complete',则会出现相同条形对应相同颜色的,可以根据颜色来盘点任务大概对应的索引值是多少。

这个值得范围0-100,用来反映工作完成的进度,100表示全部完成,0表示没有进展。

接下来讲解如何按照类别来进行索引

import plotly as py
import plotly.figure_factory as ff
pyplt = py.offline.plot
 
df = [dict(Task="项目1", Start='2019-01-01', Finish='2019-02-02', Resource='Complete'),
   dict(Task="项目2", Start='2019-02-15', Finish='2019-03-15', Resource='Incomplete'),
   dict(Task="项目3", Start='2019-01-17', Finish='2019-02-17', Resource='Not Started'),
   dict(Task="项目4", Start='2019-01-17', Finish='2019-02-17', Resource='Complete'),
   dict(Task="项目5", Start='2019-03-10', Finish='2019-03-20', Resource='Not Started'),
   dict(Task="项目6", Start='2019-04-01', Finish='2019-04-20', Resource='Not Started'),
   dict(Task="项目7", Start='2019-05-18', Finish='2019-06-18', Resource='Not Started'),
   dict(Task="项目8", Start='2019-01-14', Finish='2019-03-14', Resource='Complete')]
 
colors = {'Not Started': 'rgb(220, 0, 0)',
     'Incomplete': (1, 0.9, 0.16),
     'Complete': 'rgb(0, 255, 100)'}
 
fig = ff.create_gantt(df, colors=colors, index_col='Resource', group_tasks=True)
pyplt(fig, filename='tmp/1.html')
运行上诉代码,得到如下图所示内容

运行上诉代码,得到如下图所示内容

详解Python使用Plotly绘图工具,绘制甘特图

这里我们通过按照不同的颜色,来分别项目的类型。同一颜色,为同一项目。在每一项数据中

Resource代表此项工作所属的状态。这里分了三种状态。
通过在设置create_gantt函数中的index_col = 'Resource'即可完成。

color属性用于设置不同状态对应的颜色。

以上所述是小编给大家介绍的Python使用Plotly绘图工具,绘制甘特图详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Windows8下安装Python的BeautifulSoup
Jan 22 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
Python整数对象实现原理详解
Jul 01 Python
Django基础知识 URL路由系统详解
Jul 18 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
简单了解django orm中介模型
Jul 30 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
Python学习之os模块及用法
Jun 03 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 #Python
python3.6下Numpy库下载与安装图文教程
Apr 02 #Python
python使用Plotly绘图工具绘制气泡图
Apr 01 #Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 #Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 #Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
Apr 01 #Python
python使用Plotly绘图工具绘制柱状图
Apr 01 #Python
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
各种咖啡的英文名子是什么
2021/03/03 新手入门
php MessagePack介绍
2013/10/06 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
Python在线运行代码助手
2016/07/15 Python
Python编程实现蚁群算法详解
2017/11/13 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
原生python实现knn分类算法
2019/10/24 Python
python3.7添加dlib模块的方法
2020/07/01 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
python使用建议与技巧分享(一)
2020/08/17 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
医生自荐信
2013/10/11 职场文书
优秀语文教师事迹
2014/05/18 职场文书
计算机软件专业求职信
2014/06/10 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书