Matplotlib快速入门指南(适合小白)

 更新时间:2023年09月21日 10:49:39   作者:盼小辉丶  
这篇文章主要给大家介绍了关于Matplotlib快速入门指南的相关资料,Matplotlib是一个非常强大的Python画图工具,支持跨平台运行,它不仅是Python常用的2D绘图库,同时它也提供了一部分3D绘图接口,需要的朋友可以参考下

1. Matplotlib 常用模块

Matplotlib  库中主要包含两个重要模块  pyplob  和  pylab pyplot  是  Matplotlib  中的一个重要模块,在后续教程中,我们会经常使用  pyplot ,该模块允许我们自动、隐式地创建图形及其轴,以实现所需的绘图;使用该模块,可以实现图形的快速绘制,而不需要进行任何图形或轴的实例化。  pylab  是  Matplotlib  的另一个重要模块,在需要使用矩阵、执行数学运算等函数功能时可以使用该模块,通常情况下不建议使用该模块。

2. Matplotlib 常用概念

我们已经知道, Matplotlib  是一个功能强大的绘图库,可以用于绘图许多类型的图,包括曲线图、直方图、轮廓图、散点图、箱型图等等。在继续使用  Matplolib  进行绘图之前,我们首先对  Matplolib  中常用的一些基本概念和术语进行介绍,以对  Matplolib  有更好的了解。使用  Matplotlib  创建的图形包含很多部分,主要有  Figure Axis Axes Artist

  • Figure Figure  是用于创建不同绘图的画布, Matplotlib  图形中的  Figure  可以包含一个或多个  axes/plots
  • Axis Matplotlib  图形中的轴  axis  用于限制绘制图形的边界,基本上类似于数学中的坐标轴概念;例如,对于  3  维绘图,包含  X  轴、 Y  轴和  Z  轴。
  • Axes axes  通常可以被视为一个绘图  plot ,图形中可以包含多个  axes
  • Artist :一个  Matplotlib  生成图形中的一切都是  Artist  对象,也可以说  Artist  是所有其它类的父类,大多数  artist  都是在  axes  上所绑定,包括文本对象、 Line2D  对象等。

以上概念间的相关关系如下图所示:

Matplotlib 常用概念

3. Matplotlib 简单示例

3.1 导入 Matplotlib 库

在代码中使用  Matplotlib  库时,通常我们会使用一些约定俗成的别名用于简化代码:

import matplotlib as mpl
from matplotlib import pyplot as plt

这种导入方法对于以下三种  Matplotlib  的使用方式都是通用的。

3.1 编写 Python 脚本绘制图形

接下来,我们编写一个入门示例,首先利用  Numpy  创建  NumPy  数组,然后使用  Matplotlib  将其可视化。我们首先编写一个名为  fistplt.py  的文件,并在其中键入以下代码:

# fistplt.py
import matplotlib as mpl
from matplotlib import pyplot as plt
import numpy as np
x = np.arange(6)
y = x ** 3 + 5 * x - 10
plt.plot(x, y)
plt.show()

在以上代码中, np.arange(start, stop, step)  函数用于以给定的间隔  step  创建间距均匀的数列,起始值  start  和间隔  step  参数的默认值分别为  0  和  1 ,该函数的返回值不包含停止值  stop ,即返回半开区间  [start, stop) 。在以上示例中,我们创建了一个以  0  开始,以  5  结束的数组,即  [0, 1, 2, 3, 4, 5] 。接下来,我们使用函数 y = x 3 + 5 × x − 10 y=x^3+5\times x-10 y=x3+5×x−10 根据输入 x x x,创建了函数值 y y y,用于绘制  2D  图形。

接下来,我们使用函数  plot()  将其可视化, plot(x, y)  用于绘制一条曲线,其中,曲线点的  x  坐标在列表  x  中给出,曲线点的  y  坐标在列表  y  中给出, plot()  函数还包含一些其它的可选参数用于控制曲线样式。

最后  show()  函数用于显示绘制的图形, show()  函数会启动一个事件循环,查找所有当前  Figure  对象,并打开一个或多个显示  Figure  的交互式窗口。通常  plt.show()  函数在一个  Python  脚本中只能使用一次,通常位于脚本末尾,应尽量避免在同一脚本中多次使用  show()  函数。

因此我们可以总结使用  Matplotlib  进行绘图的基本步骤:

  • 准备数据,可以使用纯  Python  创建,也可以读取外部文件或使用  Numpy  等其他库获取所需展示的数据
  • 使用绘图函数进行绘制,例如本节所用  plot()  函数用于绘制曲线图,后续的学习中,我们也将学习其它多种不同绘图函数,包括柱状图  bar() ,饼图  pie()  等等
  • 将绘图结果进行展示  show()  或保存  savefig('file_name') ,需要注意的是,不能在  show()  之后  savefig() ,这是由于使用  show()  函数后,画布会进行刷新,再进行保存时只会保存空白图形

编写代码完成后,在命令行提示符下使用命令: python firstplt.py  运行上述脚本,它会打开一个绘图窗口,其中显示的代码中所绘制的图形:

绘图窗口

如上图所示,可以看到绘图窗口中还包含多个图标,其中:

项目Value
“保存”图标此按钮用于将所绘制的图形另存为所需格式的图片,包括png,jpg,pdf,svg等常见格式
“调节”图标此按钮用于调整图片的尺寸,边距等图片属性
“缩放”图标此按钮用于缩放图片,用于观察图形细节,单击此按钮后,在图形上使用鼠标左键拖拽进行放大,使用鼠标右键拖拽进行缩小
“移动”图标此按钮用于移动图形,可以与“缩放”按钮结合观察放大后图片的具体细节,同时,单击此按钮后,在图形上使用鼠标右键拖拽可以缩放坐标轴的比例
“还原”图标此按钮用于将图形恢复到其初始状态,取消缩放、移动等操作

NOTE: 在之后的教程中,我们主要使用这种方式进行讲解,但是相关的绘图方法与接下来要讲的两种  Matplotlib  使用方式完全相同。

3.2 在 Jupyter Notebook 中使用Matplotlib

Jupyter Notebook  是一个基于浏览器的交互式数据分析工具,用于将相关描述、代码、图形、HTML元素以及多种内容组合到一个可执行文档中。如果要  Jupyter Notebook  中以交互方式展示绘图结果,使用  %matplotlib  命令,除此之外,在  Jupyter Notebook  中,还可以选择将图形直接嵌入 Notbook 中:

%matplotlib inline

命令  %matplotlib inline  会将绘图结果静态的嵌入到  Jupyter Notebook  中,而使用命令  %matplotlib  后  Matplotlib  绘制仍将打开一个交互式绘图窗口来绘制图形。

然后导入 Matplotlib 的方法与在脚本中完全一致:

import matplotlib as mpl
from matplotlib import pyplot as plt

在下图中,可以看到使用  %matplotlib  命令时,仍会打开一个交互式绘图窗口来进行绘制。

交互式绘图

而在下图中,可以看到使用  %matplotlib inline  命令则会将绘图结果直接静态的嵌入到  Jupyter Notebook  中。

静态绘图

3.3 在 IPython Shell 中使用 Matplotlib

如果要在  IPython Shell  中使用  Matplotlib  模式,需要在启动  ipython  后使用  %matplotlib  魔法命令:

%matplotlib

运行以上命令时,它将给出 Matplotlib 所使用的后端:

Using matplotlib backend: Qt5Agg

在执行上述魔法命令后,通过导入  Matplotlib  库就可以使用  Matplotlib  库,这与其它方式使用  Matploblib  时的导入方式完全相同:

import matplotlib as mpl
from matplotlib import pyplot as plt

接下里,使用任何绘图函数命令都将打开一个交互式绘图窗口来绘制图形。

In [1]: %matplotlib
Using matplotlib backend: Qt5Agg
In [2]: import matplotlib as mpl
...: from matplotlib import pyplot as plt
...: import numpy as np
In [3]: x = np.arange(6)
...: y = x ** 3 + 5 * x - 10
...: plt.plot(x,y)
Out[3]: [<matplotlib.lines.Line2D at 0x7f1a0e4b2550>]

相关链接

总结 

到此这篇关于Matplotlib快速入门指南的文章就介绍到这了,更多相关Matplotlib快速入门内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 中将二进制转换为整数的多种方法

    Python 中将二进制转换为整数的多种方法

    这篇文章主要介绍了Python 中将二进制转换为整数,Python 中提供了多种方式将二进制字符串转换为整数,其中包括使用 int() 函数、使用二进制前缀和使用 eval() 函数,本文通过实例代码讲解的非常详细,需要的朋友可以参考下
    2023-05-05
  • Django开发RESTful API实现增删改查(入门级)

    Django开发RESTful API实现增删改查(入门级)

    这篇文章主要介绍了Django开发RESTful API实现增删改查(入门级),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python删除csv文件的行列

    python删除csv文件的行列

    这篇文章主要介绍了python删除csv文件中的某几列或行,主要介绍了python对csv删除的方法,感兴趣的同学可以参考学习
    2021-04-04
  • Python Flask 模型介绍和配置方法

    Python Flask 模型介绍和配置方法

    flask是基于MTV的结构,其中M指的就是模型,即数据模型,在项目中对应的是数据库,下面纪录以mysql和orm方式连接数据库的方法,对Python Flask 模型介绍和配置方法感兴趣的朋友跟随小编一起看看吧
    2022-12-12
  • 详解用Python调用百度地图正/逆地理编码API

    详解用Python调用百度地图正/逆地理编码API

    这篇文章主要介绍了详解用Python调用百度地图正/逆地理编码API,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python2写csv文件中文乱码问题及解决方法

    Python2写csv文件中文乱码问题及解决方法

    python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode、decode,这篇文章给大家介绍Python2写csv文件中文乱码问题及解决方法,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • Linux下python3.7.0安装教程

    Linux下python3.7.0安装教程

    这篇文章主要为大家详细介绍了Linux下python3.7.0安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • python中字典dict常用操作方法实例总结

    python中字典dict常用操作方法实例总结

    这篇文章主要介绍了python中字典dict常用操作方法,实例总结了Python针对字典操作的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • python字典保存为json后读取出错问题及解决

    python字典保存为json后读取出错问题及解决

    这篇文章主要介绍了python字典保存为json后读取出错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python中单例模式总结

    Python中单例模式总结

    单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。
    2018-02-02

最新评论