Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

5.2 matplotlib数据可视化

matplotlib(https://matplotlib.org/)是一个用于生成出版级质量的绘图包。该项目由John Hunter于2002年发起,目的在于在Python环境下进行Matlab(一种针对科学计算的软件)风格的绘图。

MatplotlibTimeline

Matplotlib最初由John D. Hunter编写,第一个公开版本于2003年发布。Michael Droettboom在John Hunter于2012年8月去世前不久被提名为matplotlib的首席开发者,Thomas Caswell于2014年加入,他现在(2021年)是首席开发者。

1. 一张图片的解剖

matplotlib图形由多个元素的层次结构组成,当这些元素放在一起时,就形成了实际的图形。

MatplotlibFigureIntro

figure - 图形; title - 标题; tick - 刻度; axis - 轴; label - 标签; line - 线; scatter plot - 散点图; grid - 网格; legend - 图例; spine - 图脊;

任何基本部件的一个重要属性是zorder属性,它在图中指示了基本部件的虚拟深度。这个zorder值用于在渲染基本部件之前从最低到最高排序。这样就可以控制什么在什么的后面。大多数绘图者都创建一个默认的zorder值,这样各个图形部件可以恰当的渲染。例如,图脊、刻度和刻度标签通常在实际图形的后面。

为了方便使用,matplotlib还定义了一些预定义的zorder值,常用的有以下几种:

图形部件zorder值用途
legend5用于表示图例。
text3用于表示图形中的文本标签。
line2用于表示图形中的线条,如直线、曲线等。
patch1用于表示图形中的填充区域,如矩形、圆形等。

这些预定义的zorder值可以在绘图时直接使用,也可以通过设置zorder属性来自定义其他值。通过合理设置zorder属性,可以控制图形元素的叠加顺序,从而实现更灵活的图形绘制。

2. matplotlib库的安装

请在jupyter-lab新建一个Terminal(终端),输入命令如下:

pip install matplotlib --user -i https://mirrors.aliyun.com/pypi/simple

其中,https://mirrors.aliyun.com/pypi/simple为指定pypi镜像地址,加快下载速度。在安装的过程中,如果需要打断或者终止以上命令,使用ctrl+c

练习:安装matplotlib库

  1. 安装matplotlib库

  2. 使用import关键词来加载matplotlib库



3. 一个标准绘图流程

[1]初始化(initialize)

import numpy as np
import matplotlib.pyplot as plt

[2]准备(prepare)

X = np.linspace(0, 8*np.pi, 1000)  #np.pi 圆周率
Y = np.sin(X)

[3] 渲染(Render)

plt.figure(figsize=(6,2))   # 很重要!!! 生成一个空的图形 
plt.plot(X, Y, '-')         # 绘制别的图形,只需要修改这里
plt.show()                # 很重要!!!显示绘制的图形
<Figure size 600x200 with 1 Axes>

练习

  1. 使用pandas库读取世界幸福报告数据集,路径为:‘datasets/world-happiness-report-china.csv’,读取完赋值给变量df

  2. 横坐标变量X为’年份’, 纵坐标变量Y为’幸福指数’

  3. 绘制幸福指数随年份变化的折线图

  4. 观察图形,你能得出什么结论?








参考