python 绘图模块matplotlib的使用简介

上周对线上某几个磁盘进行了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画出来的几张磁盘性能的图,可以跟上面的图进行对比:

以上就是python 绘图模块matplotlib的使用简介的详细内容,更多关于python 绘图模块matplotlib的资料请关注我们其它相关文章!

(0)

相关推荐

  • python Matplotlib基础--如何添加文本和标注

    创建一个优秀的可视化图表的关键在于引导读者,让他们能理解图表所讲述的故事.在一些情况下,这个故事可以通过纯图像的方式表达,不需要额外添加文字,但是在另外一些情况中,图表需要文字的提示和标签才能将故事讲好.也许标注最基本的类型就是图表的标签和标题,但是其中的选项参数却有很多.让我们在本节中使用一些数据来创建可视化图表并标注这些图表来表达这些有趣的信息.首先还是需要将要用到的模块和包导入Pycharm: import matplotlib.pyplot as plt import matplotli

  • python 利用matplotlib在3D空间中绘制平面的案例

    图形: 0.import import numpy as np import matplotlib as mpl from matplotlib import cm from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D 1.水平和垂直平面 # 创建画布 fig = plt.figure(figsize=(12, 8), facecolor='lightyellow' ) # 创建 3D 坐标系 a

  • python如何用matplotlib创建三维图表

    Matplotlib 最开始被设计为仅支持二维的图表.到 1.0 版本发布左右,一些三维图表的工具在二维展示的基础上被创建了出来,结果就是 Matplotlib 提供了一个方便的(同时也是有限的)的可用于三维数据可视化的一套工具.三维图表可以使用载入mplot3d工具包来激活,这个包会随着 Matplotlib 自动安装: from mpl_toolkits import mplot3d 一旦模块被导入,三维 axes 就可以像其他普通 axes 一样通过关键字参数projection='3d'

  • Python3 用matplotlib绘制sigmoid函数的案例

    我就废话不多说了,大家还是直接看代码吧~ import matplotlib.pyplot as plt import numpy as np def sigmoid(x): # 直接返回sigmoid函数 return 1. / (1. + np.exp(-x)) def plot_sigmoid(): # param:起点,终点,间距 x = np.arange(-8, 8, 0.2) y = sigmoid(x) plt.plot(x, y) plt.show() if __name__

  • 如何利用Python matplotlib绘制雷达图

    本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指标,雷达图几乎随处可见,应用场景非常多. 一.matplotlib绘制圆形雷达图 # coding=utf-8 import numpy as np import matplotlib.pyplot as plt results = [{"大学英语": 87, "高等数学": 79, "体育":

  • python可视化 matplotlib画图使用colorbar工具自定义颜色

    python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without any mapple/plot) 自定义colorbar可以画出任何自己想要的colorbar,自由自在.不受约束,不依赖于任何已有的图(plot/mappable).这里使用的是mpl.colorbar.ColorbarBase类,而colorbar类必须依赖于已有的图. 参数可以参考下面的描述->matplotlib: class matplotlib.co

  • python可视化分析的实现(matplotlib、seaborn、ggplot2)

    一.matplotlib库 1.基本绘图命令 import matplotlib.pyplot as plt plt.figure(figsize=(5,4)) #设置图形大小 plt.rcParams['axes.unicode_minus']=False #正常显示负号 plt.rcParams['font.sans-self']=['Kai Ti'] #设置字体,这里是楷体,SimHei表示黑体 #基本统计图 plt.bar(x,y);plt.pie(y,labels=x);plt.plo

  • python使用matplotlib的savefig保存时图片保存不完整的问题

    python使用matplotlib的savefig保存时图片保存不完整的问题 使用如下形式的代码进行图片保存时,保存的图片出现不完整的情况,如图1所示. plt.colorbar() plt.savefig(title) plt.show() 一开始我以为是图片大小比例不对,因而通过以下代码进行修改: plt.figure(figsize=(10,8)) 但是无论怎么修改,始终会出现这种情况,要么是下面显示不完全,要么就是左边显示不完全.这是为什么呢? 这是因为colorbar会占据右边位置,

  • python 用Matplotlib作图中有多个Y轴

    在作图过程中,需要绘制多个变量,但是每个变量的数量级不同,在一个坐标轴下作图导致曲线变化很难观察,这时就用到多个坐标轴.本文除了涉及多个坐标轴还包括Axisartist相关作图指令.做图中label为公式的表达方式.matplotlib中常用指令. 一.放一个官方例子先 from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxes import matplotlib.pyplot as plt import nu

  • python 利用matplotlib在3D空间绘制二次抛物面的案例

    图形预览: 0.import import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D 1.开口向上的抛物面 fig = plt.figure(figsize=(9,6), facecolor='khaki' ) ax = fig.gca(projection='3d') # 二元函数定义域平面集 x = np.linspace(start=-3, stop=3,

  • 用pip给python安装matplotlib库的详细教程

    Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 1.首先在python里安装pip,打开安装python的文件夹,找到python\scripts查看是否有pip.exe,如果有说明python里已经安装了pip,直接进入下一步.如果没有pip.exe,则需要先安装pip,官网上有详细教程,此处不再介绍.链接https://pip.pypa.io/en/stable/installing/ 2.添加环境变量,右键我的电脑

随机推荐