详解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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
使用python将mdb数据库文件导入postgresql数据库示例
Feb 17 Python
python实现按任意键继续执行程序
Dec 30 Python
Python编程实现的图片识别功能示例
Aug 03 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
Python实现扫码工具的示例代码
Oct 09 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
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
react路由配置方式详解
2017/08/07 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
python之yield表达式学习
2014/09/02 Python
简单上手Python中装饰器的使用
2015/07/12 Python
python实现TF-IDF算法解析
2018/01/02 Python
python如何读写csv数据
2018/03/21 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
python 实现倒排索引的方法
2018/12/25 Python
用Python解数独的方法示例
2019/10/24 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
phpquery中文手册
2021/03/18 PHP
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
Linux机考试题
2015/07/17 面试题
幼儿园社区活动总结
2014/07/07 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS