python的matplotlib.pyplot绘制甘特图
博主本来就想简单地找一下代码,画一幅甘特图,结果百度之后发现甘特图的代码基本都不是用matplotlib库,但是像柱状图等统计图通常都是用这个库进行绘制的,所以博主就花了一些时间,自己敲了一份代码,简单地绘制了一份博主想要的甘特图,下边博主就来介绍分享一下。
何为甘特图?
甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况。以提出者亨利·劳伦斯·甘特(Henry Laurence Gantt)先生的名字命名。


def getGant():
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 in range(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的matplotlib.pyplot绘制甘特图的更多相关文章
- python中matplotlib所绘制的图包含了很多的对象
上图中的top=‘off’意思是说顶部的grid lines 看不见. 去除frame,意思就是将这个矩形给去除掉,spine意思是脊柱 bars = plt.bar(pos, popularity, ...
- Python使用Plotly绘图工具,绘制甘特图
今天来讲一下如何使用Python 的绘图工具Plotly来绘制甘特图的方法 甘特图大家应该了解熟悉,就是通过条形来显示项目的进度.时间安排等相关情况的. 我们今天来学习一下,如何使用ployly来绘制 ...
- 利用pandas读取Excel表格,用matplotlib.pyplot绘制直方图、折线图、饼图
利用pandas读取Excel表格,用matplotlib.pyplot绘制直方图.折线图.饼图 数据: 折线图代码: import pandas as pdimport matplotlib. ...
- 使用Excel 2007绘制甘特图
本文将教大家如何使用Excel 2007制作甘特图.Excel并未提供甘特图类型,但还是可以绘制甘特图的,方法就是通过对堆积条形图类型进行自定义,使之显示任务.任务工期和层次结构. 下面的过程可帮助创 ...
- 如何使用Excel绘制甘特图
摘自:http://www.mifengtd.cn/articles/how-to-create-a-gantt-chart-in-excel.html 再造<优秀的时间管理和项目管理工具> ...
- 【python】pandas & matplotlib 数据处理 绘制曲面图
Python matplotlib模块,是扩展的MATLAB的一个绘图工具库,它可以绘制各种图形 建议安装 Anaconda后使用 ,集成了很多第三库,基本满足大家的需求,下载地址,对应选择pytho ...
- Python使用matplotlib模块绘制多条折线图、散点图
用matplotlib模块 #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:折线图.散点图测试 ''' import rando ...
- python 运用numpy库与matplotlib库绘制数据图
代码一 import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,6,100) y=np.cos(2*np.pi*x)*np ...
- Python数据分析-Matplotlib图标绘制
Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...
随机推荐
- vi/vim 设置.vimrc(/etc/vim | $HOME)
转载请注明来源:https://www.cnblogs.com/hookjc/ "====================================================== ...
- 关于 BSGS 以及 ExBSGS 算法的理解
BSGS 引入 求解关于\(X\)的方程, \[A^X\equiv B \pmod P \] 其中\(Gcd(A,P)=1\) 求解 我们令\(X=i*\sqrt{P}-j\),其中\(0<=i ...
- Java中stream的详细用法
来自于:Java 8 stream的详细用法_旅行者-CSDN博客_java stream 一.概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行 ...
- 实现基于MYSQL验证的vsftpd虚拟用户访问
一.配置mysql服务器 1.1 安装mysql # yum -y install mariadb-server # systemctl enable --now mariadb.service &a ...
- 无xml文件的springMVC
使用springMVC我们一般都会在web.xml中配置一个dispatcher,现在我们基于用java代码的方式来使用springMVC import org.springframework.con ...
- 08python语法入门--基本数据类型及内置方法
数字类型int与float 定义 类型转换 使用 字符串 定义 类型转换 使用 优先掌握的操作 需要掌握的操作 了解操作 列表 定义 类型转化 使用 优先掌握的操作 需要掌握的操作 了解操作 元组 作 ...
- JVM学习——内存空间(学习过程)
JVM--内存空间 关于内存的内容,内存的划分.JVM1.7 -> 1.8的变化比较大 JVM指令执行的时候,是基于栈的操作.每一个方法执行的时候,都会有一个属于自己的栈帧的数据结构.栈的深度, ...
- node + express 搭建服务器,修改为自动重启服务器
1.使用express搭建一个项目,步骤如下(安装node步骤已省略) a.全局安装express-generator和express npm i express-generator -g npm i ...
- HDFS的优缺点
HDFS是一个分布式文件存储系统,前身来自于Google发布的大数据三驾马车之一GFS (Google File System). HDFS的优点: 1.高容错 hdfs具有很高的容错性,数据自动保存 ...
- 【windows 操作系统】Windows系统机制之对象管理器
转载自 Windows系统机制之对象管理器 设计的几个目的: 提供一种公共统一的机制来使用系统资源 将对象保护隔离到OS中的一个地方,从而确保统一的一致的对象访问策略 提供一种机制来管理进程对对象的使 ...