初识 Matplotlib
Matplotlib 是Python 2D绘图库,能够以多种英拷贝格式和跨平台的交互式环境生成出版物质量的图形,可以用来绘制静态,动态,交互式的图表。
Matplotlib 可用于Python脚本,我一般使用的是jupyter notebook 。
Matplotlib 是Python数据可视化库中的泰斗,它已经成为python中公认的数据可视化工具,我们所熟悉的pandas以及seaborn的绘图接口也都是基于Matplotlib的高级封装接口。
Matplotlib的图是其实是在画figure上的,而它的每一个figure会包含一个或者多个axes(一个可以指定坐标系的子区域),最简单创建figure和axes的方式是通过pyplot.subplots
来实现,创建axes后,可以通过Axes.plot
来绘制简单的折线图
import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subpots()
axes.plot([1,2,3,4],[1,2,3,4])#绘制图表
matplotlib.pyplot
方法能够直接在当前axes上绘制图像,如果用户未指定axes,matplotlib会帮你自动创建一个。所以上面的例子也可以简化为以下这一行代码。
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])
Figure的组成
现在我们来深入看一下figure的组成。通过一张figure解剖图,我们可以看到一个完整的matplotlib图像通常会包括以下四个层级,这些层级也被称为容器(container),下一节会详细介绍。在matplotlib的世界中,我们将通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果,一副完整的图像实际上是各类子元素的集合。
-
Figure:顶层级,用来容纳所有绘图元素
-
Axes:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成
-
Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素
-
Tick:axis的下属层级,用来处理所有和刻度有关的元素
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()
个人比较喜欢用plot的方法
以上学习并借鉴于Datawhale的可视化学习第一天