详解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多线程用法实例详解
Jan 15 Python
仅利用30行Python代码来展示X算法
Apr 01 Python
python监控键盘输入实例代码
Feb 09 Python
python 读入多行数据的实例
Apr 19 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
TensorFlow利用saver保存和提取参数的实例
Jul 26 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
详解Django CAS 解决方案
Oct 30 Python
python 追踪except信息方式
Apr 25 Python
python反爬虫方法的优缺点分析
Nov 25 Python
python自动获取微信公众号最新文章的实现代码
Jul 15 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中的静态变量的基本用法
2014/03/20 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
校园安全演讲稿
2014/05/09 职场文书
节能减耗标语
2014/06/21 职场文书
商场消防安全责任书
2014/07/29 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
考试作弊检讨
2015/01/27 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang