Python数据处理 matplotlib绘图原理分析

8 篇文章 2 订阅
7 篇文章 0 订阅

参考:https://www.cnblogs.com/zyg123/p/10512513.html

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() 

具体可以参考官方网站

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html?highlight=matplotlib%20pyplot#module-matplotlib.pyplot

函数绘图的缺优点

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

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

 

绘图类的函数

 

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

 

操作类的函数

   

例子:

# 导入模块 
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()

 

面向对象式的绘图

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

可参考官方介绍:https://matplotlib.org/tutorials/introductory/usage.html#sphx-glr-tutorials-introductory-usage-py

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画布上。

参考:https://baijiahao.baidu.com/s?id=1614559225877861604&wfr=spider&for=pc

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值