Matplotlib 数据可视化 Day1
文章目录
前言
主要参考资料
Datawhale开源资料、 Matplotlib用户指南
一、初识Matplotlib
-
Matplotlib是一个Python 2D绘图库,用来绘制各种静态,动态,交互式的图表。
-
Matplotlib可用于Python脚本,Python和IPython Shell、Jupyter notebook,Web应用程序服务器和各种图形用户界面工具包等。
-
Matplotlib是强大的python数据可视化工具,我们所熟知的pandas和seaborn的绘图接口其实也是基于matplotlib所作的高级封装。
二、简单的绘图示例
1.安装Matplotlib
python -m pip install matplotlib
2.引入库及绘图
- Matplotlib的图像是画在figure上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。
- 创建figure以及axes的方式是通过pyplot.subplots命令,创建axes以后,可用Axes.plot绘图。
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
fig, ax = plt.subplots() # 创建一个包含一个axes的figure
ax.plot(x, y) # 绘制图像
plt.show()
代码运行后自动打印出类似<matplotlib.lines.Line2D at 0x23155916dc0>这样一段话,这是因为matplotlib的绘图代码默认打印出最后一个对象。如果不想显示这句话,有以下三种方法:
- 在代码块最后加一个分号;
- 在代码块最后加一句plt.show()
- 在绘图时将绘图对象显式赋值给一个变量,如将plt.plot([1, 2, 3, 4]) 改成line =plt.plot([1, 2, 3, 4])
三、Figure的组成
- 一个完整的matplotlib图像通常会包括以下四个层级,也被称为容器(container)。
- 在matplotlib的世界中,通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果。
Figure:顶层级,用来容纳所有绘图元素
Axes:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成
Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素
Tick:axis的下属层级,用来处理所有和刻度有关的元素
四、绘图接口
matplotlib提供了两种最常用的绘图接口
1.OO模式
- 显式创建图形(figure)和轴(axes),并在它们上调用方法,也被称为OO模式(object-oriented style)
- 通过plt.subplot()命令来创建Figure和Axes,然后再对axes进行数据的绑定
x = np.linspace(0, 2, 100)
fig