当前位置: 首页 > news >正文

房产类网站开发h5 小米网站模板

房产类网站开发,h5 小米网站模板,3d建模培训学校,企业英文网站制作文章目录 1 前言2 知识点2.1 matplotlib.pyplot.barh2.2 matplotlib.legend的handles参数 3 代码实现4 绘制效果5 总结参考 1 前言 这篇文章的目的是#xff0c;总结记录一次使用matplotlib绘制时序甘特图的经历。之所以要绘制这个时序甘特图#xff0c;是因为22年数模研赛C… 文章目录 1 前言2 知识点2.1 matplotlib.pyplot.barh2.2 matplotlib.legend的handles参数 3 代码实现4 绘制效果5 总结参考 1 前言 这篇文章的目的是总结记录一次使用matplotlib绘制时序甘特图的经历。之所以要绘制这个时序甘特图是因为22年数模研赛C题需要用到用于更好地呈现求解的车身缓冲区调序优化结果。 首先我们觉得在这篇博客中出现的下面这张图展示效果很好于是也想绘制一张。 这张图中横坐标是递增变化的时间纵坐标是PBS中的区域编号其中不同的颜色代表不同的车身如果某个时间段车身达到了某个区域那么图中所对应的矩形区块将填充为该车身对应的颜色。 在知道上述信息后我们开始在网上查找甘特图的绘制方法因为我个人习惯用python的matplotlib库绘制图表于是根据关键词搜索到了如下的文章 Python实现生产过程可视化甘特图。看着比较像我们想要的那种效果于是琢磨了一下代码怎么写的。 2 知识点 拜读完代码后我总结了使用matplotlib绘制甘特图的一些知识点。 2.1 matplotlib.pyplot.barh 该函数的作用是绘制横向的柱状图。 官方文档函数定义如下 matplotlib.pyplot.barh(y, width, height0.8, leftNone, *, aligncenter, dataNone, **kwargs) 使用到的参数详解 参数名称解释y可传入float类型决定柱状图的y轴坐标width可传入float类型决定柱状图的宽带可以理解为横跨x轴的长度height可传入float类型默认0.8决定柱状图的高度可以理解为横跨y轴的长度left可传入float类型默认0决定柱状图最左侧与y轴的距离align可选’center’或’edge’, 默认 ‘center’柱状图与y坐标的对齐方式默认居中color柱状图的颜色edgecolor柱状图边缘的颜色linewidth柱状图边缘的宽度如果为0则不绘制边缘zorderfloat类型控制artist对象的绘制顺序zorder越小越先绘制有点图层的意思 2.2 matplotlib.legend的handles参数 我也是第一次见往plt.legend函数中传入handles参数的没有系统学过matplotlib库,这里也不详细解释了直接说怎么用吧。当我们想要自定义图例时使用下面代码 patches [mpatches.Patch(color m_colors[i], label m_labels[i]) for i in range(m)] plt.legend(handles patches)其中color参数是图例matplotlib.patches对象对应的颜色label为图例对应的标签。 3 代码实现 绘制代码如下 import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpatchesplt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus] False # 用来正常显示负号def gantt_chart(wt, x_labels, y_labels, m_labels):wt: 工作矩阵大小为mxnx2m为车身数n为区域编号数第三维中第1个元素为车身进入区域的时间第2个元素为停留时间。color_list代表各车身的颜色矩阵大小为nx4。m, n wt.shape[0], wt.shape[1]m_colors plt.colormaps[terrain](np.linspace(0, 0.95, m))for i in range(n):for j in range(m):if wt[j, i, 1] ! 0:plt.barh(y i, width wt[j, i, 1], left wt[j, i, 0], height 1, edgecolor (0, 0, 0),color m_colors[j], zorder 10)# 图例绘制patches [mpatches.Patch(color m_colors[i], label m_labels[i]) for i in range(m)]plt.legend(handles patches, bbox_to_anchor (1.005, 0), loc 3, borderaxespad 0)plt.xticks(x_labels, fontsize 7)plt.yticks(list(range(n)), y_labels)plt.xlabel(时间/s)plt.ylabel(区域编号)plt.title(车身位置-时序甘特图)plt.grid(axis x, zorder 0)# plt.savefig(result21_车身位置-时序甘特图.jpg, dpi 200)plt.show()def custom_gantt_chart(path result21.csv, car_num 25, T 180):data np.loadtxt(open(path, rb), delimiter ,, encoding utf-8-sig, dtype object)[1:car_num 1, 1:T 1]car_label [fcar{i} for i in range(1, 26)]region_code [1, 410, 49, 48, 47, 46, 45, 44, 43, 42, 41,310, 39, 38, 37, 36, 35, 34, 33, 32, 31,210, 29, 28, 27, 26, 25, 24, 23, 22, 21, 2]car_num, T_num, region_num data.shape[0], data.shape[1], len(region_code)T_range [t for t in range(0, T_num 1, 3)]Wt np.zeros((car_num, region_num, 2))Wt[:, :, 0] -1for i in range(car_num):for j in range(T_num):if data[i, j] or data[i, j] 3:continueidx region_code.index(data[i, j])if Wt[i, idx, 0] -1:Wt[i, idx, 0] jWt[i, idx, 1] 1gantt_chart(Wt, T_range, region_code, car_label)if __name__ __main__:custom_gantt_chart(result21.csv, car_num 25, T 200)4 绘制效果 5 总结 可以从绘制效果中看到有些柱状图的颜色两两之间不仔细看根本分不出来。对于这个问题主要是这条代码m_colors plt.colormaps[terrain](np.linspace(0, 0.95, m))在色条上均匀取色时因为色条颜色数量太少即使是渐变色条随着取色数量增多也不容易分辨造成的。terrain颜色条包含的颜色如下图 关于更多的颜色条种类及使用方法参见https://matplotlib.org/stable/tutorials/colors/colormaps.html 参考 [1] https://zhuanlan.zhihu.com/p/106787569 [2] https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.barh.html [3] https://matplotlib.org/stable/api/legend_api.html [4] https://matplotlib.org/stable/tutorials/colors/colormaps.html
http://www.w-s-a.com/news/562613/

相关文章:

  • 制作网站的后台公众号做视频网站会封吗
  • 广西企业建站邯郸景区网站制作
  • 开发商城网站多少钱城厢区建设局网站
  • 网站外链多的危害天水市建设局网站
  • 网站接入商学交互设计网站
  • 目前最新的网站后台架构技术综述什么网站可以做名片
  • 成都建站长沙做网站美工的公司
  • 湖南省住房与城乡建设厅网站平顶山网站关键词优化
  • 购物网站前台功能模块汕头网站设计电话
  • 网站你懂我意思正能量免费wordpress菜单底部导航代码
  • 一个主机可以建设多少个网站山东高端网站建设
  • 长沙网站建设搭建网络营销做得好的公司
  • 如何做网站的后台管理石家庄seo关键词排名
  • 给自己公司做个网站山东做外贸网站的公司
  • 张家港网站建设培训江苏省建设工程网站系统
  • html个人网站桂林建站
  • 湛江网站优化快速排名wordpress文章页面宽度
  • 自己建网站怎么弄唯品会一家专门做特卖的网站
  • 做文化传播公司网站做搜狗pc网站点
  • 免费的黄冈网站有哪些平台可以聊天呢要查询一个网站在什么公司做的推广怎么查
  • 凡客建站登录入口网站建设先进部门评选标准
  • 响应式设计 手机网站政务中心建设网站
  • 如何做卖衣服的网站网站登录接口怎么做
  • 网站源码下载了属于侵权吗499全包网站建设
  • 怎样创建网站信息平台网络推广官网首页
  • 网站建设的课程网站 逻辑结构
  • 开通企业网站搬瓦工暗转wordpress
  • 成都网站建设有名的公司怎么做出有品牌感的网站
  • 中国网站的建设淘宝数据网站开发
  • 深圳建站网站模板wordpress 文章最长