Matplotlib快速入门笔记

栏目: Python · 发布时间: 6年前

内容简介:Matplotlib快速入门笔记

我正从 Python 作为突破口,入门机器学习相关知识。出于机器学习实践过程中的需要,快速了解了一下 matplotlib 绘图库。下图是我学习过程中整理的一些概念。

Matplotlib快速入门笔记

本文将以该图为线索梳理相关概念。

简介

matplotlib 是一个2D绘图库,通过它你可以绘制函数曲线、直方图、散点图等各种图像。

Python 中使用 matplotlib 主要用到 matplotlib.artist.Artist 模块。这个模块定义了很多绘图时用到的类型。

Matplotlib快速入门笔记

Artists类型可分为两种:基础数据(primitives)代表了标准的我们想绘制的图形对象,比如Line2D、Rectangle、Text、Image等;容器(container)代表了储存以上对象的地方,比如Axis,Axes和Figure。

使用流程

matplotlib 标准的使用流程如下:

  1. 创建一个画板(Figure)实例。
  2. 使用画板创建一个或多个轴区实例(Axes)。
  3. 使用轴区实例的相关方法,进行绘图。

例如下面代码:

import matplotlib.pyplot as plt  
import numpy as np  
x = np.arange(-10, 10, 0.01)  
y = x*x - 5*x + 1  
fig = plt.figure()    // 创建画板  
ax = fig.add_subplot(111) // 创建轴区  
ax.plot(x, y, 'r--')   // 绘图  
plt.show()

效果如下图: Matplotlib快速入门笔记

上面例子中我们用了 matplotlib.pyplot 模块,来创建和展示画板。实际上为了让 matplotlib 使用起来更靠近类似 MATLAB 基于命令的形式,这个模块把许多Artist类型的方法进行了封装,组成所谓的 The Pyplot API ,参考 文档 。这套API可以让你直接使用pyplot模块进行绘图,而不是使用Artist实例。

下面例子使用 The Pyplot API 实现了同样的效果:

import matplotlib.pyplot as plt  
import numpy as np  
x = np.arange(-10, 10, 0.01)  
y = x*x - 5*x + 1  
plt.plot(x, y, 'r--')  
plt.show()

需要注意:这里直接使用 plt.plot 函数进行绘图,看起来好像并没有创建Figure和Axes对象。其实不是的, pyplot 模块默认创建ID为1的画板,并且在画板中默认创建‘111’轴区实例。所以你就可直接进行绘图。

绘图过程是基于当前上下文进行的。也就是说当前选中的是哪一个画板和哪一个轴区,后续调用的绘图函数就是在这个画板和轴区中进行的。你可以通过给 plt.figure() 指定ID来创建或切换画板。可以通过 plt.subplot()figure.add_subplot() 来创建或切换轴区。

解释一下使用 plt.subplot()figure.add_subplot() 创建Axes时所使用的三位整数组成的参数。假设用xyz代表这三个个位数,则x表示行,y表示列,z为这个x行y列组成的格子中按书写顺序从1开始数下来的第z个。如果超过个位数,传递参数的时候分为独立的三个值进行传递。例如: plt.subplot(10,2,5)

其他

了解这些足够我在机器学习实践中使用了。

在实际应用中可能根据需求的不同选择使用不同的方法绘制图像,如:

  • plot:绘制曲线
  • scatter:绘制散点图
  • hist:绘制直方图
  • imshow:绘制图片
  • ...

作为扩展,可能还需要了解其他的 matplotlib 模块:

  • mpl_toolkits.mplot3d:3D绘图的扩展工具。
  • matplotlib.cm:定义颜色映射与相关处理函数。
  • matplotlib.mlab: Python 数值函数模块,用于兼容MATLAB命令。
  • matplotlib.path:处理折线。
  • matplotlib.patches:用于生成图形元素。
  • ...

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Web Application Hacker's Handbook

The Web Application Hacker's Handbook

Dafydd Stuttard、Marcus Pinto / Wiley / 2011-9-27 / USD 50.00

The highly successful security book returns with a new edition, completely updated Web applications are the front door to most organizations, exposing them to attacks that may disclose personal infor......一起来看看 《The Web Application Hacker's Handbook》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具