详解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 相关文章推荐
Python编写简单的HTML页面合并脚本
Jul 11 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
python日志记录模块实例及改进
Feb 12 Python
Python实现带下标索引的遍历操作示例
May 30 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
Python操作Jira库常用方法解析
Apr 10 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 Python
python动态规划算法实例详解
Nov 22 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
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
微信access_token的获取开发示例
2015/04/16 PHP
详解php中反射的应用
2016/03/15 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
如何编写jquery插件
2017/03/29 jQuery
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python实现方便使用的级联进度信息实例
2015/05/05 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
应届生.NET方向面试题
2015/05/23 面试题
餐饮业的创业计划书范文
2013/12/26 职场文书
婚内房产协议书范本
2014/10/02 职场文书
乱世佳人观后感
2015/06/08 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书