学习总结
(1)多查官方文档:https://matplotlib.org/
(2)从图形,布局,文本,样式等多维度系统梳理matplotlib的绘图方法,构建对于绘图方法的整体理解;从绘图API层级,接口等方面阐明matplotlib的设计理念,摆脱只会复制粘贴的尴尬处境。
(3)本次学习最好将matplotlib升级到最新版本V3.3.3(2020年12月),否则可能会出现报错。
文章目录
- 学习总结
- 一、一个最简单的绘图例子
- 二、Figure的组成
- 三、两种绘图接口
- 四、作业
- 五、打卡计划
- Reference
一、一个最简单的绘图例子
Matplotlib的图像是画在figure(如windows,jupyter窗体)上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。最简单的创建figure以及axes的方式是通过pyplot.subplots
命令,创建axes以后,可以使用Axes.plot
绘制最简易的折线图。
import matplotlib.pyplot as plt
import numpy as
fig, ax = plt.subplots() # 创建一个包含一个axes的figure
ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) # 绘制图像
和MATLAB命令类似,还可以通过一种更简单的方式绘制图像,matplotlib.pyplot
方法能够直接在当前axes上绘制图像,如果用户未指定axes,matplotlib会帮你自动创建一个。所以上面的例子也可以简化为以下这一行代码。
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])
二、Figure的组成
通过一张figure解剖图,一个完整的matplotlib图像通常会包括以下四个层级,这些层级也被称为容器(container)。可以通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果,一副完整的图像实际上是各类子元素的集合。
-
Figure
:顶层级,用来容纳所有绘图元素 -
Axes
:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成 -
Axis
:axes的下属层级,用于处理所有和坐标轴,网格有关的元素 -
Tick
:axis的下属层级,用来处理所有和刻度有关的元素
三、两种绘图接口
matplotlib提供了两种最常用的绘图接口
- 显式创建figure和axes,在上面调用绘图方法,也被称为OO模式(object-oriented style)
- 依赖pyplot自动创建figure和axes,并绘图
使用第一种绘图接口,是这样的:
x = np.linspace(0, 2, 100)
fig, ax = plt.subplots()
ax.plot(x, x, label='linear')
ax.plot(x, x**2, label='quadratic')
ax.plot(x, x**3, label='cubic')
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()
而如果采用第二种绘图接口,绘制同样的图,代码是这样的:
x = np.linspace(0, 2, 100)
plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
四、作业
你在工作或学习中通常何时会用到数据可视化,希望通过可视化达到什么目的?
【答】论文画图,数据分析,写报告等。
五、打卡计划
Reference
(1)matplotlib官网用户指南 (2)matplotlib让图表跑起来:http://www.360doc.cn/mip/880939392.html