『Python 干货』#3 Matplotlib(简明)

访问博客查看 本文 最新内容,排版更美观ヾ(•ω•`)o 如有错误欢迎指出~

Python 系列学习笔记:

学习 Machine Learning 的时候发现需要用许多矩阵运算和画图的库,本文将以实用主义的方式记录每次遇到的新用法。

2021 年贵系的暑培新增了「科学计算」内容,本文部分内容参考了清华 LZJ 同学的教程。本文将持续更新。

Matplotlib 基础

绘图时最常用的模块是 Matplotlib 中的 pyplot 模块。绘图时先调用相关绘图函数,设置图像各种细节,最后调用 plt.show() 显示图片。

这时会出现一个基于 Qt 实现的交互窗口,程序执行到 plt.show() 时阻塞。在交互窗口中可以进一步调整图片格式细节或保存图片,关闭窗口后程序继续运行。下面以一个例子说明:

import numpy as np
from matplotlib import pyplot as plt

x = np.linspace(-4, 4, 30)  # [-4, 4] 中长度为 30 的等差数列
y = np.sin(x)               # 获得 sin 值
plt.plot(x, y)              # 以 x 为自变量,y 为因变量,绘制折线图
plt.show()                  # 显示图像,程序阻塞

格式字符串

与 Matlab 相似,Matplotlib 使用事先约定好的字符串代表绘图格式,将其写入 plt.plot() 即可,如 plt.plot(x, y, 'bo') 即蓝色圆圈标记。

  • color:绘制点的颜色,支持以下缩写,还可以用 c='#000' 指定。
字符 颜色 字符 颜色 字符 颜色 字符 颜色
b 蓝色 r 红色 m 洋红色 k 黑色
g 绿色 c 青色 y 黄色 w 白色
  • marker:绘制点的形状。
字符 标记 字符 标记 字符 标记 字符 标记
. 点标记 > 右三角标记 p 五边形标记 D 菱形标记
, 像素标记 1 三叉戟标记 * 星形标记 d 菱形标记
o 圆圈标记 2 三叉戟标记 h 六角形标记 竖线标记
v 倒三角标记 3 三叉戟标记 H 六角形标记 _ 横线标记
^ 正三角标记 4 三叉戟标记 + +标记
< 左三角标记 s 正方形标记 x x标记
  • line:绘制线的形状。
字符 格式 字符 格式 字符 格式 字符 格式
- 实线 -- 虚线 -. 点划线 : 点线

特定类型图

下面是一些常用的绘图函数。更多官网案例:https://matplotlib.org/stable/gallery/index.html

折线图 plot()

plt.plot() 用于绘制折线图,需要一系列点作为因变量和自变量,函数接口如下:

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

观察接口,可以发现有以下的用法:

  • 传入两个等长数组或列表,前者是自变量,后者是因变量。
  • 只传入一个数组或列表,自变量默认从 0 开始整数递增。
  • 传入两个列表,各包含两个值,可以绘制一条直线。

散点图 scatter()

plt.scatter() 用于绘制散点图,需要两个等长数组或列表,函数接口如下:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, **kwargs)

其中只有 xy 为必填项,s 代表每个点的大小,可以是常数也可以是列表。

子图 subplot()

plt.subplot() 用于在一张图里绘制多个子图,函数接口如下:

matplotlib.pyplot.subplot(nrows, ncols, index, **kwargs)

其中只有 nrowncols 表示总共有多少子图,index 代表其中第几个。如:plt.subplot(2,2,1),也可以缩写为 plt.subplot(221)

紧跟在 plt.subplot() 语句后面的语句绘制的就是 index 所指向的图,绘制完再次使用 plt.subplot() 语句切换到下一张子图。

其他辅助库

除了上述的数据分析第三方库,还有一些辅助工具库也许有用。因为不知道记在哪里,就先放在本节。

Time

time 是 Python 中处理时间的标准库,提供系统级精确计时功能(可以用于程序性能分析)。其主要功能分为三块:时间获取、时间格式化、程序计时,这里介绍计时相关内容。

  • sleep(s)s 为休眠时间,单位秒,可以是浮点数。
  • perf_counter():返回一个 CPU 级别的精确时间计数值,单位为秒。

后者的使用由于计数器起点不确定,连续调用求差值才有意义:

import time
import numpy as np

arr = np.arange(100000000)
start = time.perf_counter()     # 计数器起点
arr = arr * 2
end = time.perf_counter()       # 计数器终点
print('numpy time cost: %.3f s' % (end - start))

pipreqs

当我们写好一个 Python 项目之后,如果要开源代码,为了让别人能快速运行项目,一般可以提供一个 requirements.txt 的,用以配置环境。

pipreqs 是用于自动生成上述文件的一个第三方库,使用 pip install pipreqs 安装,进入项目根目录,执行 pipreqs ./ 即可。如果出现编码错误,可以指定编码方式解决:

pipreqs ./ --encoding utf-8

其他人则可以使用以下命令配置环境:

pip install -r requirements.txt
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容