python 绘图模块matplotlib的使用简介
作者:AsiaYe 发布时间:2023-08-09 19:09:01
上周对线上某几个磁盘进行了fio硬盘性能测试,测试完成之后的结果需要绘制成图像展示出来。我在官网上查找了一下fio自带的命令fio_generate_plot和fio2gnuplot工具的用法,找到了图像的绘制方法,在某一个单一的场景下,确实可以使用这两个工具来进行硬盘性能图像绘制,但是问题是,如果要对比多个场景下绘制出来的图像的差异,fio自带的绘图工具实现起来就有些困难了,但是确实也能实现。例如下图:
如图所示为磁盘iodepth不变,numjobs在(1,8,16)三种不同的场景下绘制出来的结果,具体怎么绘制的,原谅我暂时也没找到办法。这是前人绘制出来的图像。
那么为了换一种思路解决这个问题,我查找了python的绘图方法,找到了使用python matplotlib模块绘制多条曲线图的方法。如果你的电脑上没有自带这个模块,请使用:
pip install matplotlib
命令来进行安装。
来看看matplotlib绘制曲线的方法:
# /usr/bin/env python
# -*- coding=utf-8 -*-
import matplotlib.pyplot as plt
def PlotDemo1():
fig = plt.figure() # figure对象可以看成整个图表。在figure图表之上增加多个子图,然后在子图之上绘制点和线
# 通过add_subplot增加子图(返回了一个axes坐标轴),该方法需要三个参数,分别为:numrows, numcols, fignum。其中,一共有numrows*numcols个子图,
# 将图表分为N行*M列,fignum标识了该子图的顺序,其范围从1到numrows*numcols。在上例中1,1,1表示了该绘图对象仅有1个子图,也就是1*1类型
ax = fig.add_subplot(1, 1, 1)
ax.plot([1, 2, 3, 4]) # 指定纵坐标,此时横坐标数量会自动设置的和纵坐标数量相等,从0开始,也就是横坐标会变成[0,1,2,3]
ax.plot([1,2,3,4],[2,3,4,5]) # 指定横坐标和纵坐标,绘制另外一条曲线
plt.show()
PlotDemo1()
这里我绘制了最简单的2条曲线,ax这个变量里面可以继续添加需要plot的x数组和y数组,这样就可以在一张图里面绘制若干条线。来看上面代码绘制的结果图:
可以看到有两条线:
第一条是蓝色的线,也就是:
ax.plot([1,2,3,4])
这条命令传入的参数代表纵坐标的值,因为没有传递横坐标,因此横坐标默认从0开始,以1位单位递增。
第二条是橙色的线条:
ax.plot([1,2,3,4],[2,3,4,5])
这条命令第一个数组是x轴的数组,第二个数组是Y轴的数组
这两条线出现了部分重复的地方,所以看上去像是一条直线一样。
有了这个绘制的思路,我们就可以将我们需要绘制的点,放在两个list里面,其中一个作为横坐标,另外一个作为纵坐标,这样就可以绘制出来我们想要的图像了,关于图像的标题、横纵坐标说明、图示等等,都可以使用对应的函数来进行丰富。具体的绘制方法,可以参考网上更加详细的模块说明,这里我就提供一个思路,希望对大家有帮助。
最后,上一下利用python画出来的几张磁盘性能的图,可以跟上面的图进行对比:
来源:https://cloud.tencent.com/developer/article/1737711


猜你喜欢
- 从字符串载入模板我们可以定义模板字符串,然后载入并解析渲染:template.New(tplName string).Parse(tpl s
- Python的优点和缺点本节内容如下:Python的优点Python的缺点使用Python的知名网站Python的优点1. 简单 Pytho
- 此代码适合你做网站用,普通朋友可以不用理这个东西!ASP:<%dim objXMLHTTP, qq, pwd qq = &
- 本文主要研究的是python将字典内容存入mysql,分享了实现代码,具体介绍如下。1.背景项目需要,用python实现了将字典内容存入本地
- 看完了这个你就可以用asp修改注册表了!大名鼎鼎的WSH听说过吗? 它就是Windows script Host的缩写形式,WSH是Wind
- 存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,接下来就一个小例子来说明,用存储过程插入或更新语句。1、数据库表结构所用数据库为
- 1.scrapy_splash是scrapy的一个组件scrapy_splash加载js数据基于Splash来实现的Splash是一个Jav
- 一、sort函数如果对python中的列表进行排序,可以使用List类的成员函数sort,该函数会在原空间上进行操作,对列表本身进行修改,不
- MySQL默认编码是latin1,因业务需要把它转到UTF8。1、导出数据导出表结构 mysqldump -d dataname >
- 前言本文主要给大家介绍了关于django配置连接数据库及原生sql语句的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介
- 一行代码对话ChatGPT最近ChatGPT火爆全球,哪怕你不是程序员,应该也听过他的大名了。今天我们就来一起体验一下~1行Python代码
- 实例如下所示:>>>from compiler.ast import flatten>>>Xmatrix
- 代码如下:<% '隐藏并修改文件的最后修改时间的aspshell '原理:通过FSO可以修改文件的
- 我也一一试过,结果是:中文乱码问题没解决,mysql服务却不能启动了, 汗颜了,还是自己动手解决吧,我这里也截图了,方便参观。我用的是app
- 本文作为属性篇的最后一篇文章, 将讲述HTML和CSS的关键—盒子模型(Box model). 理解Box model的关键便是margin
- Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语
- 本文实例为大家简单分享javascript、jquery实用demo,供大家参考,具体内容如下javascript判断H5页面离开funct
- 由于新云CMS系统,网站底部“版权信息”字段在数据库中是“文本”类型,有250个字符的限制。想在这里给加网站统计代码,因为字数限制的原因,就
- 本文实例讲述了Python3.4编程实现简单抓取爬虫功能。分享给大家供大家参考,具体如下:import urllib.requestimpo
- 1、准备html文件首先我们需要准备一个鼠标滑动的html文件,用来演示鼠标滑动的效果,注意需要将我们的html文件放在自己的服务器上,这样