python动态横道图_python的matplotlib.pyplot绘制甘特图
博主本来就想简单地找一下代码,画一幅甘特图,结果百度之后发现甘特图的代码基本都不是用matplotlib库,但是像柱状图等统计图通常都是用这个库进行绘制的,所以博主就花了一些时间,自己敲了一份代码,简单地绘制了一份博主想要的甘特图,下边博主就来介绍分享一下。
何为甘特图?
甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况。以提出者亨利·劳伦斯·甘特(Henry Laurence Gantt)先生的名字命名。
甘特图以图示通过活动列表和时间刻度表示出特定项目的顺序与持续时间。一条线条图,横轴表示时间,纵轴表示项目,线条表示期间计划和实际完成情况。直观表明计划何时进行,进展与要求的对比。便于管理者弄清项目的剩余任务,评估工作进度。
甘特图是以作业排序为目的,将活动与时间联系起来的最早尝试的工具之一,帮助企业描述工作中心、超时工作等资源的使用。
甘特图包含以下三个含义:
1、以图形或表格的形式显示活动;
2、通用的显示进度的方法;
3、构造时含日历天和持续时间,不将周末节假算在进度内。
简单、醒目、便于编制,在管理中广泛应用。
甘特图按内容不同,分为计划图表、负荷图表、机器闲置图表、人员闲置图表和进度表五种形式。
下面先看一下最终的效果图吧
甘特图(灰度版)
甘特图(RGBA版)
灰度版源码如下:
defgetGant():
timelist= [['2020-6-8','2020-6-14'],['2020-6-15','2020-6-21'],['2020-6-22','2020-7-4'],['2020-7-5','2020-7-10'],['2020-7-11','2020-7-17']]
states=['环境配置','设计阶段','研发阶段','测试阶段','成果验收']
xlabels=['2020-6-8','2020-6-15','2020-6-21','2020-7-5','2020-7-11','2020-7-17']
ylabels=['第一阶段','第二阶段','第三阶段','第四阶段','第五阶段']
xtimes=[0]
ystates=[0]
location=0
plt.figure()
plt.figure(num=3, figsize=(9, 2)) #figsize的设置长和宽
for i inrange(len(timelist)):
Start=timelist[i][0]
Finish=timelist[i][1]
startTime= datetime.datetime.strptime(Start, "%Y-%m-%d")
finishTime= datetime.datetime.strptime(Finish, "%Y-%m-%d")
day= (finishTime-startTime).days#plt.bar(40,10,label=xlabels[i],color='g')
plt.axhline(y=i+0.5, color='k', linestyle='-',alpha= 0.5,linewidth=0.8)
plt.barh(i,day,0.5,location,alpha=(5+i)/10,color = 'g', align="center") #y值,宽度,高度,起始x
plt.text(location+1,i+0.52,states[i], size = 10, alpha = 1)#plt.barh(y,width,1,location,facecolor='tan',edgecolor='r',alpha=0.6,tick_label=label,hatch=".")
plt.xlabel(u"时间")
plt.ylabel(u"软件工程阶段")
location+=day
xtimes.append(location)
ystates.append(i+1)#plt.legend()#若必要可显示图例
plt.xticks(xtimes, xlabels, rotation='horizontal')
plt.yticks(ystates, ylabels, rotation='horizontal')
plt.title(u'甘特图')#plt.grid(True)
plt.savefig('甘特图.png', dpi=300, format='png',bbox_inches="tight") #bbox_inches="tight"解决X轴时间两个字不被保存的问题
plt.show()#若将show函数放在savefig之前,则容易造成保存的图片为空白,因为show函数数重新定义一个画板
在代码编写过程中还是遇到了不少的问题的,比如中文编码问题、图片保存不全问题等。
大家可以关注微信公众号,后台回复甘特图,获取源码。
扫码关注公众号
python动态横道图_python的matplotlib.pyplot绘制甘特图相关推荐
- python的matplotlib.pyplot绘制甘特图
博主本来就想简单地找一下代码,画一幅甘特图,结果百度之后发现甘特图的代码基本都不是用matplotlib库,但是像柱状图等统计图通常都是用这个库进行绘制的,所以博主就花了一些时间,自己敲了一份代码,简 ...
- python3d动图_python中Matplotlib实现绘制3D图的示例代码
Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...
- python动态横道图_Python数据可视化:甘特图画法
大家好,我是一名Python数据分析师,我想把自己转行成功之路上的经验分享给大家,由此就有了我的人工智能四部曲:<15天学会Python编程>.<每天10分钟,用Python学数据分 ...
- python动态横道图_详细解说Python使用Plotly绘图工具,绘制甘特图
今天来讲一下如何使用Python 的绘图工具Plotly来绘制甘特图的方法 甘特图大家应该了解熟悉,就是通过条形来显示项目的进度.时间安排等相关情况的. 我们今天来学习一下,如何使用ployly来绘制 ...
- python动态横道图_用Python pyecharts v1.x 绘制图形【转】
关于pyecharts pyecharts是一个用于生成echart(百度开源的数据可视化javascript库)图表的类库.pyecharts 分为 v0.5.x 和 v1.x 两个大版本,版本不兼 ...
- python动态横道图_jQuery甘特图/日程图/横道图/插件
基于JQ的一款灵活高效,支持自定义拓展的甘特图/日程图插件 支持月/周/小时等显示方式 支持拖动改变时间 展开与收起 添加/删除,刷新 节假日高亮 clicked,dblClicked,changed ...
- python做房源饼状图_python使用matplotlib画饼状图
%matplotlib inlineimport matplotlib.pyplot as plt# 121 > 1行2列第1个fig1 = plt.subplot(121)plt.pie([1 ...
- python画两条曲线_python – 在Matplotlib中绘制两个图之间的线
在许多情况下,来自其他答案的解决方案是次优的(因为只有在计算点之后没有对图进行任何更改时它们才有效). 更好的解决方案是使用专门设计的ConnectionPatch: import matplotli ...
- python画不同颜色的直方图_python - 使用matplotlib同时绘制两个直方图
python - 使用matplotlib同时绘制两个直方图 我使用文件中的数据创建了直方图,没有问题. 现在我想重叠数据另一个文件在同一个直方图中,所以我做了类似的事情 n,bins,patchs ...
最新文章
- openresty nginx升级版
- Android AES加密算法,现在实际上
- Python如何存储数据到json文件
- python的常用数据类型_python 常用数据类型
- 驱动开发 环境搭建(VS2008+WDK+DDKWzard)
- 1-1 顺序表操作集 (20 分)
- chrome本地文件加载跨域请求
- Protel99SE推荐使用英文版
- 你应该懂得的关于电脑配置冷知识
- Sportisimo EDI项目需求及包装标准
- jpress连接数据库mysql_通过Tomcat jpress连接不到数据库
- 解决iview weapp的i-input组件在微信开发者工具中不能输入值的问题
- TI Zigbee Light Link 参考设计
- Spring boot 启动后没反应
- Kiva(亚马逊)机器人介绍
- 行政公益诉讼与民事公益诉讼可相互转化
- [收藏]好学若饥 谦卑若愚
- URAL 2013 Neither shaken nor stirred dfs 模拟
- 助力企业高效率办公,华为云桌面必不可少
- 基于循环神经网络的主题模型