matplotlib自定义图例,matplotlib绘图基础

  matplotlib自定义图例,matplotlib绘图基础

  绘制精美的图表是常见的绘图库,本文主要介绍了绘制精美的图表绘制甘特图的万能模板案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  

目录

定义一个绘制甘特图的类调用及数据格式类似于展示的图形

 

  

定义一个绘制甘特图的类

 

  # -*-编码: utf-8 -*-

  从日期时间导入日期时间

  导入系统

  将数组作为铭牌导入

  将matplotlib.pyplot作为血小板计数导入

  将matplotlib.font_manager作为font_manager导入

  将matplotlib.dates作为mdates导入

  导入日志记录

  来自pylab导入*

  mpl。RC params[ font。sans-serif ]=[ sim hei ]

  类别甘特图(对象):

  #颜色色标:参考http://colorbrewer2.org/

  RdYlGr=[#d73027 , #f46d43 , #fdae61 , #fee08b , #ffffbf , #d9ef8b , #a6d96a , #66bd63 , #1a9850]

  POS_START=1.0

  POS_STEP=0.5

  def __init__(自身,任务):

  自我fig=plt.figure(figsize=(15,10))

  自我. ax=self ._fig.add_axes([0.1,0.1,75,

  自我。任务=任务[:-1]#倒序

  定义格式日期(自身,日期_字符串):

  尝试:

  日期=日期时间。日期时间。strptime(date _ string, %Y-%m-%d %H:%M:%S) #将日期字符串转换成日期时间类型

  除了值错误为错误:

  伐木。错误(“{ 0 }”字符串无法转换为日期时间对象: {1} "。格式(日期字符串,错误))

  sys.exit(-1)

  mpl _ date=mdates。日期2编号(日期)#得到日期类型的时间戳

  返回日期

  def _plot_bars(自身):

  i=0

  对于自我任务:中的任务

  开始=自我.格式日期(任务[开始]) #获取任务开始时间的时间戳

  结束=自我.格式日期(任务[end]) #获取任务结束时间的时间戳

  bottom=(i *甘特图. POS_STEP)甘特图POS_START

  宽度=结束-开始#柱子的宽度

  自我. ax.barh(bottom,width,left=start,height=0.3,align=center ,label=task[label],color=Gantt .RdYlGr[i%len(甘特图. RdYlGr)])

  i=1

  def _configure_yaxis(self):

  task _ labels=[t[ label ]for t in self。任务]#所有的刻度文本标签

  pos=self ._位置(len(任务标签))#素有的刻度值

  ylocs=self ._ax.set_yticks(pos) #设置y轴刻度线

  ylabels=self ._ ax。set _ yticklabels(task _ labels)#设置y轴刻度标签

  plt.setp(ylabels,size=medium) #设置y轴刻度标签属性(中号字)

  def _configure_xaxis(self):

  自我. ax.xaxis_date() #使用时间轴

  rule=mdates。rulewrapper(mdates .每周,间隔=1) #生成时间生成器(每周一个值,从周日开始)

  loc=mdates .规则定位器(规则)#生成时间刻度

  formatter=mdates .DateFormatter(%m/%d) #生成时间格式

  自我. ax。xaxis。set _ major _ locator(loc)#设置主刻度

  自我. ax。xaxis。set _ major _ formatter(格式化程序)#设置主刻度标签格式

  xlabels=self ._ax.get_xticklabels() #获取刻度标签对象

  plt.setp(xlabels,rotation=70,fontsize=10) #设置刻度标签对象的属性(30度旋转,字体大小10)

  定义_配置_图形(自身):

  自我. configure_xaxis()

  自我. configure_yaxis()

  自我. ax.grid(True,axis=x ,color=gray )

  自我. set_legend()

  自我. fig.autofmt_xdate()

  定义_集合_图例(自身):

  font=font_manager .FontProperties(size=small )

  自我. ax.legend(loc=右上,prop=font)

  def _positions(自身,计数):

  结束=计数*甘特图. POS_STEP甘特图POS_START

  pos=np.arange(甘特图。位置_开始,结束,甘特图. POS_STEP)

  退货位置

  定义显示(自身):

  自我。_ plot _ bars()

  自我。_configure_figure()

  plt.show()

  

调用及数据格式

 

  if __name__==__main__:

  测试数据=(

  {label: 项目调查, start 3360 2019-02-01 1233600336000 , end 3360 2019-03-15 18336000336000 },

  {label: 项目准备, start 3360 2019-02-15 0933600:00 , end 3360 2019-04-09 12336000336000 },

  {label: 制定计划, start 3360 2019-04-10 12:0336000 , end 3360 2019-05-30 18336000336000 },

  {label: 项目实施, start 3360 2019-05-01 0933600:00 , end 3360 2019-08-31 1:00336000 },

  {label: 项目培训, start 3360 2019-07-01 0933600336000 , end 3360 2019-09-21 1:00336000 },

  {label: 工程验收, start 3360 2019-09-22 0933600:00 , end 3360 2019-10-22 1:00:00 },

  {label: 项目完成, start 3360 2019-10-23 0933600336000 , end 3360 2019-11-23 1:00336000 },

  )

  甘特图=甘特图(测试数据)

  Plt.xlabel(“项目日期”)

  Plt.ylabel(“项目进度”)

  项目标题(“项目进度甘特图”)

  图形尺寸=(10,10),dpi=150

  gantt.show()

  

类似于展示的图形

 

  本文关于matplotlib绘制甘特图的通用模板案例到此为止。有关matplotlib甘特图的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: