详解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中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
python线程、进程和协程详解
Jul 19 Python
Python 模板引擎的注入问题分析
Jan 01 Python
详解python脚本自动生成需要文件实例代码
Feb 04 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
Python实现识别图片内容的方法分析
Jul 11 Python
Python button选取本地图片并显示的实例
Jun 13 Python
使用python 写一个静态服务(实战)
Jun 28 Python
Python中字符串List按照长度排序
Jul 01 Python
python通过http下载文件的方法详解
Jul 26 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
如何解决安装python3.6.1失败
Jul 01 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实现XSS安全过滤的方法
2015/07/29 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
Python Tkinter GUI编程入门介绍
2015/03/10 Python
Saltstack快速入门简单汇总
2016/03/01 Python
利用python实现数据分析
2017/01/11 Python
pandas带有重复索引操作方法
2018/06/08 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
在python里面运用多继承方法详解
2019/07/01 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Python Django基础二之URL路由系统
2019/07/18 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
python实现图片上添加图片
2019/11/26 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
如何安装ruby on rails
2014/02/09 面试题
数控专业大学生的自我鉴定
2013/11/13 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
《乞巧》教学反思
2014/02/27 职场文书
保护野生动物倡议书
2014/05/16 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js