Matplotlib基础教程
来源:互联网 发布:数据科学实战 编辑:程序博客网 时间:2024/06/05 14:44
刚开始学matplotlib,看了很多快速教程,虽然能快速上手画图,但是未能理解其中的原理,学习过于呆板,很难举一反三,现将目前所了解基础原理总结如下。
matplotlib实际上是一套面向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、文字Text、刻度等在内存中都有一个对象与之对应。
为了方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。我们只需要调用pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。pyplot模块虽然用法简单,但不适合在较大的应用程序中使用。
为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示”Get
Current Figure”和”Get Current
Axes”。在pyplot模块中,许多函数都是对当前的Figure或Axes对象进行处理,比如说:
plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。
Matplotlib 里的常用类的包含关系为 Figure -> Axes -> (Line2D, Text,
etc.)一个Figure对象可以包含多个子图(Axes),在matplotlib中用Axes对象表示一个绘图区域,可以理解为子图。可以使用subplot()快速绘制包含多个子图的图表,它的调用形式如下:
subplot(numRows, numCols, plotNum) subplot将整个绘图区域等分为numRows行*
numCols列个子区域,然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1。如果numRows,numCols和plotNum这三个数都小于10的话,可以把它们缩写为一个整数,例如subplot(323)和subplot(3,2,3)是相同的。subplot在plotNum指定的区域中创建一个轴对象。如果新创建的轴和之前创建的轴重叠的话,之前的轴将被删除。
figure可以理解为一个画布即一个弹出窗口,axes可以理解为窗口的一部分,可以用来创建一个图像即这部分可以让我们作图。我们可以用如下方式创建figure以及axes:
import numpy as npimport matplotlib.pyplot as pltfig1 = plt.figure(1) #创建figurefig2 = plt.figure(2)ax1 = fig1.add_subplot(211,facecolor='r')#在第一个figure中创建一个axesax2 = fig1.add_subplot(222,facecolor='g')ax3 = fig2.add_subplot(221,facecolor = 'b')plt.show()
另一种方式如下:
import numpy as npimport matplotlib.pyplot as pltplt.figure(1) # 创建图表1plt.figure(2) # 创建图表2ax1 = plt.subplot(211) # 在图表2中创建子图1ax2 = plt.subplot(212) # 在图表2中创建子图2x = np.linspace(0, 3, 100)for i in xrange(5): plt.figure(1) #❶ # 选择图表1 plt.plot(x, np.exp(i*x/3)) plt.sca(ax1) #❷ # 选择图表2的子图1 plt.plot(x, np.sin(i*x)) plt.sca(ax2) # 选择图表2的子图2 plt.plot(x, np.cos(i*x))plt.show()
matplotlib API包含有三层,Artist层处理所有的高层结构,例如处理图表、文字和曲线等的绘制和布局。通常我们只和Artist打交道,而不需要关心底层的绘制细节。
直接使用Artists创建图表的标准流程如下:
- 创建Figure对象
- 用Figure对象创建一个或者多个Axes或者Subplot对象
- 调用Axies等对象的方法创建各种简单类型的Artists
- matplotlib 基础教程
- matplotlib 基础教程
- Matplotlib基础教程
- matplotlib基础教程(1)
- matplotlib绘图--完整-基础教程(一)
- Python 3基础教程46-Matplotlib样式修改
- Python 3基础教程47-Matplotlib显示图例
- Python 3基础教程44-Matplotlib之plot函数
- Python 3基础教程45-Matplotlib添加标签和标题描述
- Python 3基础教程48-Matplotlib绘制散点图和柱状图
- MatPlotLib
- matplotlib
- matplotlib
- matplotlib
- matplotlib
- matplotlib
- matplotlib
- matplotlib
- 进程间通信方式总结
- Qcom spk protect 的流程
- DOM的基本操作
- ubuntu16.04 cuda8.0 cudnn6.0 faster-rcnn配置
- 索引,事务,视图
- Matplotlib基础教程
- SpringBoot使用多实例QUARTZ出现重复执行问题
- AVFoundation学习笔记(三): 媒体捕捉、读取及写入
- Zabbix安装配置
- JAVA笔记
- 有关ActiveMQ(二)
- 反转链表java实现
- 个人存档用2
- 模拟面试-线程向