目录
八、imshow()、imsave()和imread()方法(图像处理三剑客)
一、Matplotlib入门
matplotlib 的核心功能
matplotlib 是一个用于创建静态、动态和交互式可视化的 Python 库。其核心功能包括生成线图、散点图、柱状图、直方图、饼图、等高线图、3D 图形等。支持高度自定义的图形属性(如颜色、线型、标签、标题),并可与 NumPy、Pandas 等科学计算库无缝协作。
主要用途场景
- 数据探索与分析:通过可视化快速发现数据分布、趋势或异常值。
- 学术研究:绘制论文中的实验图表,支持 LaTeX 公式渲染。
- 工程与报告:生成自动化报告中的动态图表或仪表盘组件。
- 教学演示:动态展示数学函数或算法过程(如梯度下降)。
安装方法
通过 pip 安装(推荐大多数用户):
运行以下命令安装最新稳定版:
pip install matplotlib
通过 conda 安装(适合 Anaconda 用户):
conda install matplotlib
验证安装:
在 Python 环境中执行以下命令无报错即安装成功:
import matplotlib
print(matplotlib.__version__)
可选依赖项
- 交互式后端:如需 Jupyter Notebook 支持,建议同时安装
ipympl或启用%matplotlib widget。 - 导出功能:导出 PDF/SVG 需安装
ghostscript和latex依赖(仅高级用户需要)。
二、Pyplot介绍
pyplot在matplotlib中的含义
pyplot是matplotlib库中的一个模块,提供了与MATLAB类似的绘图接口。它简化了常见的绘图任务,使用户能够通过简单的函数调用快速生成图表。pyplot的设计目标是让用户能够以最少的代码完成高质量的图形输出。
pyplot的主要作用
pyplot模块的作用主要体现在以下几个方面:
通过高级函数简化绘图流程,隐藏底层细节,用户无需直接操作图形对象即可完成大部分绘图需求。提供状态机接口,自动跟踪当前图形和坐标轴,减少手动管理图形元素的负担。
支持快速生成常见图表类型,如折线图、散点图、柱状图、饼图等。内置丰富的样式和参数配置选项,允许用户轻松调整图表外观。
pyplot的核心功能
pyplot的核心功能包括创建图形窗口、绘制图形元素、添加标签和标题、设置坐标轴范围等。它能够处理图形布局和自动缩放,确保数据在图表中合理展示。
提供交互式功能,如缩放、平移和保存图表。支持多种输出格式,包括PNG、PDF、SVG等。集成文本和注释工具,方便在图表中添加说明信息。
pyplot的使用特点
采用命令式编程风格,适合快速原型设计和交互式数据分析。保持与MATLAB绘图语法的高度相似性,降低学习成本。作为matplotlib的推荐接口,在大多数基础绘图场景中都是首选工具。
三、基本绘图
1.折线图


关键点解释:
np.linspace() 比 range() 更适合生成绘图用的连续数据
plt.figure() 应该在绘图前调用,用于控制图形大小和DPI
颜色可以使用名称('red')、缩写('r')或十六进制值('#FF0000')
线型包括:'-'(实线), '--'(虚线), '-.'(点划线), ':'(点线)
label 参数必须与 plt.legend() 配合使用才会显示图例。
2.Marker可定义的符号
常见 Marker 符号表格
| 符号名称 | 代码/表示 | 示例图示 | 适用场景 |
|---|---|---|---|
| 圆圈 (Circle) | 'o' 或 'circle' |
○ | 散点图、标记数据点 |
| 方形 (Square) | 's' 或 'square' |
□ | 强调边界或对比数据 |
| 菱形 (Diamond) | 'D' 或 'd' |
◇ | 特殊数据点或高亮显示 |
| 三角形 (Triangle) | '^', 'v', '<', '>' |
△ ▽ ◁ ▷ | 方向性数据或趋势标记 |
| 星形 (Star) | '*' 或 'star' |
★ | 关键数据或异常值标记 |
| 叉号 (Cross) | 'x' 或 'X' |
✕ | 错误点或交叉验证标记 |
| 点号 (Dot) | '.' |
· | 密集数据的小型标记 |
| 加号 (Plus) | '+' |
+ | 数学或科学数据标记 |
| 横线 (Horizontal Line) | '_' |
― | 基线或参考线标记 |
| 竖线 (Vertical Line) | `' | '` |
自定义符号扩展
- Unicode 字符:可直接使用 Unicode 符号(如
'♠','♥')。 - LaTeX 符号:部分库支持 LaTeX 语法(如
r'显示希腊字母)。'
- 图片路径:某些库支持自定义图片作为标记(需提供图像路径)。
代码示例(Python Matplotlib)
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [2, 5, 3]
markers = ['o', 's', '*']
for i in range(len(x)):
plt.scatter(x[i], y[i], marker=markers[i], s=100)
plt.show()
输出图形将依次显示圆形、方形和星形标记。
3.多曲线绘制



关键点解释:
-
面向对象风格(ax.plot)比pyplot风格(plt.plot)更灵活,适合复杂图形
-
markevery参数可以控制标记的显示频率 -
zorder控制图层叠放顺序,数值越大越靠上 -
alpha控制透明度,范围0(完全透明)到1(完全不透明) -
图例的
title和样式设置可以使图表更专业
4.高级散点图



关键点解释:
-
cmap参数控制颜色映射,常用的有'viridis', 'plasma', 'inferno', 'magma', 'cividis' -
plt.colorbar()需要传入一个可映射对象(如散点图的集合) -
回归线展示了如何将统计分析与可视化结合
-
annotate方法可以添加带箭头的注释 -
tight_layout()自动调整子图间距,避免标签重叠
5.堆叠柱状图与误差棒


最低0.47元/天 解锁文章
303

被折叠的 条评论
为什么被折叠?



