详解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的lambda匿名函数的简单介绍
Apr 25 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
python中异常捕获方法详解
Mar 03 Python
最近Python有点火? 给你7个学习它的理由!
Jun 26 Python
python random从集合中随机选择元素的方法
Jan 23 Python
详解Python 函数如何重载?
Apr 23 Python
python绘制直方图和密度图的实例
Jul 08 Python
django中使用POST方法获取POST数据
Aug 20 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
python入门之基础语法学习笔记
Feb 08 Python
在python中logger setlevel没有生效的解决
Feb 21 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 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实例分享之html转为rtf格式
2014/06/02 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
php封装的page分页类完整实例
2016/10/18 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
手机号码,密码正则验证
2014/09/04 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
浅析Python中的join()方法的使用
2015/05/19 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
Django保护敏感信息的方法示例
2019/05/09 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
商务英语专业应届毕业生求职信
2013/10/28 职场文书
咨询公司各岗位职责
2013/12/02 职场文书
上课打牌的检讨书
2014/02/15 职场文书
创文明城市标语
2014/06/16 职场文书
实习单位指导教师评语
2014/12/30 职场文书
内乡县衙导游词
2015/02/05 职场文书
城管年度个人总结
2015/02/28 职场文书
《假如》教学反思
2016/02/17 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
利用javaScript处理常用事件详解
2021/04/14 Javascript
python字典进行运算原理及实例分享
2021/08/02 Python