matplotlib库里,总分成两种绘图方法

  1. 方法一:函数式绘图
  2. 方法二:面向对象式绘图

函数式绘图

在matplotlib.pyplot里是封装好的函数,用户可以直接调用函数进行绘图。

一般的,我们约定 matplotlib.pyplot 取别名为 plt

其模块下主要定义如下两方面的函数:

  1. 操作类的函数:对于画布,图,子图,坐标轴,图例,背景,网格等的操作。

如:plt.ylabel(), plt.xlabel(), plot.yscale(), plt.legend(), plt.title(), plt.text() 

  1. 绘图类的函数:画折线图,散点图,条形图,直方图,饼状图等特点图的绘制函数。

如:plt.scatter, plt.plot(), plt.bar, plot.pie(), plt.hise() 

函数绘图的缺优点

缺点:其实函数式的绘图本质上还是在matplotlib对象的封装,在对象的基础上多了一层函数的调用,其定制性并不是很强,都是封装好的函数。

优点:适合一般用户绘图,要求不是很高,定制性不是很强的绘图。新手容易上手,不需要了解内部的对象问题。

 

绘图类的函数

 

matplotlib绘图不止这些,在此只举例了大部分

python 绘图程序 python绘图基本原理_matplotlib

 

python 绘图程序 python绘图基本原理_Python_02

操作类的函数

python 绘图程序 python绘图基本原理_绘图_03

   

python 绘图程序 python绘图基本原理_python 绘图程序_04

例子:

# 导入模块 
import matplotlib.pyplot as plt import numpy as np 

# 数据 
x = np.linspace(0, 2*np.pi, 1000) y = np.sin(x**2) 

# 绘图 
plt.plot(x, y) # 显示 plt.show()

python 绘图程序 python绘图基本原理_Python_05

 

面向对象式的绘图

面向对象式的绘图,才是matplotlib绘图最自然的方式,不过需要先了解一些基本的概念。

python 绘图程序 python绘图基本原理_python 绘图程序_06

figure(图形)

axes(子图形)

title(标题)

legend(图例)

Major tick(大标尺刻度)

Minor tick(小标尺刻度)

Major tick label(大标尺刻度数值)

Minor tick label(小标尺刻度数值)

Y axis label(y轴指标说明)

X axis label(x轴指标说明)

Line(线型图)

Markers(数据标注点)

Grid(格子)等等

基本对象

Figure

  1. 整个图形即是一个Figure对象,即一个弹出的绘图的窗口,便是一个figure。
  2. Figure对象至少包含一个子图,也就是Axes对象。
  3. Figure对象包含一些特殊的Artist对象,如title标题、图例legend。
  4. Figure对象包含画布canvas对象。 canvas对象一般不可见,通常无需直接操作该对象,matplotlib程序实际绘图时需要调用该对象。

Axes

  1. 字面上理解,axes是数据轴axis的复数,但它并不是指数据轴,而是子图对象。可以这样理解,每一个子图都有x和y轴,axes则用于代表这两个数据轴所对应的一个子图对象。
  2. 常用方法set_xlim()以及set_ylim():
  1. 设置子图x轴和y轴对应的数据范围。
  2. set_title():设置子图的标题。
  3. set_xlabel()以及set_ylable():
  4. 设置子图x轴和y轴指标的描述说明。

Axis

  1. Axis是数据轴对象,主要用于控制数据轴上刻度位置和显示数值。
  2. Axis有Locator和Formatter两个子对象,分别用于控制刻度位置和显示数值。

Artist

  1. 基本上所有的对象都是一个Artist对象,包括Figure对象、Axes对象和Axis对象,可以将Artist理解为一个基本类。
  2. 当提交代码,图像最终呈现时,所有的artist对象都会绘制于canvas画布上。

python 绘图程序 python绘图基本原理_Python_07