详解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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
Python re模块介绍
Nov 30 Python
Python字符串替换实例分析
May 11 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
Python中return self的用法详解
Jul 27 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
python实现按关键字筛选日志文件
Dec 24 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
python之语音识别speech模块
Sep 09 Python
python绘制云雨图raincloud plot
Aug 05 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使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
js文件中调用js的实现方法小结
2009/10/23 Javascript
Script的加载方法小结
2011/01/12 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
Python中的闭包详细介绍和实例
2014/11/21 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Python try except finally资源回收的实现
2021/01/25 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
HTML5通用接口详解
2016/06/12 HTML / CSS
九年级数学教学反思
2014/02/02 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
公司会议开幕词
2015/01/29 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
讲座新闻稿
2015/07/18 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python