详解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中文乱码的解决方法
Nov 04 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
python unittest实现api自动化测试
Apr 04 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
Python读取YAML文件过程详解
Dec 30 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
tensorflow2.0教程之Keras快速入门
Feb 20 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
10个实用的PHP正则表达式汇总
2014/10/23 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
vue小白入门教程
2018/04/02 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
2014自主招生自荐信策略
2014/01/27 职场文书
2014年端午节活动方案
2014/03/11 职场文书
干部考核评语
2014/04/29 职场文书
学雷锋标语
2014/06/25 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
学校运动会简讯
2015/07/20 职场文书
《确定位置》教学反思
2016/02/18 职场文书