1 Matplotlib介绍
Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表。

Matplotlib提供了一个套面向绘图对象编程的API接口,能够很轻松地实现各种图像的绘制,并且它可以配合Python GUI工具(如 PyQt、Tkinter 等)在应用程序中嵌入图形。同时 Matplotlib 也支持以脚本的形式嵌入到 IPython shell、Jupyter 笔记本、web 应用服务器中使用。
1.1 Matplotlib架构组成
matplotlib框架分为三层,这三层构成了一个栈,上层可以调用下层。

1.1.1 脚本层
主要用于可视化编程,pytplot模块可以提供给我们一个与matplotlib打交道的接口。可以只通过调用pyplot模块的函数从而操作整个程序包,来绘制图形。
- 操作或者改动Figure对象,例如创建Figure对象
- 大部分工作是处理样本文件的图形与坐标的生成
1.1.2 美工层
图形中所有能看到的元素都属于Artist对象,即标题、轴标签、刻度等组成图形的所有元素都是Artist对象的实例。
- Figure:指整个图形(包括所有的元素,比如标题、线等)。
- Axes(坐标系):axes是子图对象,子图对象指的是x和y轴。axes 常用有set_xlabel()、set_ylabel()设置x和y轴坐标名字。
- Axis(坐标轴):坐标系中的一条轴,包含大小限制、刻度和刻度标签。
一个figure(图)可以包含多个axes(坐标系),但是一个axes只能属于一个figure。一个axes(坐标系)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系。

1.1.3 后端层
matplotlib的底层,实现了大量的抽象接口类,这些API用来在底层实现图形元素的一个个类。
- FigureCanvas对象实现了绘图区域这一概念。
- Renderer对象在FigureCanvas上绘图。
1.2 Pyplot介绍
通过Pyplot 对数据进行图形化展示,可以直观的了解数据的分布情况,更好的制定出学习方法。同时,它还可以展示出我们机器学习到的计算方法,了解其与实际情况是否相符等问题。
- Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。
- Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。
- Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生成新的图像,在图像中产生新的绘图区域等等。
Pyplot 绘图流程如下:

2 Pyplot函数
Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改
plot():用于绘制线图和散点图scatter():用于绘制散点图bar():用于绘制垂直条形图和水平条形图hist():用于绘制直方图pie():用于绘制饼图imshow():用于绘制图像subplots():用于创建子图
2.1 plt.plot参数说明
plt.plot(x,y,format_string,**kwargs)
`plt.plot()`函数是Matplotlib库中用于绘制线条图的函数,它有多个参数可以控制绘图的各个方面。以下是常用的一些参数:
- x: x轴数据的列表或数组
- y: y轴数据的列表或数组
- linewidth: 线条的宽度,从0到无穷大的浮点数,例如2.5
- color: 线条的颜色,可以是字符串、元组或RGBA值,代表不同的颜色。例如:红色'red'、绿色'green'、蓝色'blue'、黑色'black'、白色'white'、灰色'gray'等;RGB元组(0, 0, 1)表示蓝色,RGBA元组(0, 1, 0, 0.5)表示半透明的绿色
- linestyle: 线条的样式,可以是字符串,如实线'-'、虚线'--'、点线':'、破折线'-.'等
'-': 实线
'--': 虚线
'-.': 点划线
':': 点线
'': 无线条,只显示标记
'None': 无线条,不显示标记
' ': 无线条,不显示标记
- marker: 数据点的标记样式
| 标记字符 | 说明 | 标记字符 | 说明 | 标记字符 | 说明 |
|---|---|---|---|---|---|
| ' . ' | 点标记 | ' 1 ' | 下花三角 | ' h ' | 竖六边形 |
| ' , ' | 像素标记 | ' 2 ' | 上花三角 | ' H ' | 横六边形 |
| ' o ' | 实心圆 | ' 3 ' | 左花三角 | ' + ' | 十字标记 |
| ' v ' | 倒三角 | ' 4 ' | 右花三角 | ' x ' | x标记 |
| ' ^ ' | 上三角 | ' s ' | 实心方形 | ' D ' | 菱形标记 |
| ' > ' | 右三角 | ' p ' | 实心五角 | ' d ' | 菱形标记 |
| ' < ' | 左三角 | ' * ' | 星形标记 | ' | ' | 直线标记 |
- markersize: 标记的大小,从0到无穷大的浮点数,例如7.5
- label: 字符串类型,代表绘制的线条的标签,在图例中显示。例如Line 1
- alpha: 线条和标记的透明度,从0到1的浮点数,表示线条和标记的透明度。例如0.5
- zorder: 整数类型,表示绘图的层数,数值越大越靠上。例如2
还有一些其他参数:
- solid_capstyle: 实线端点的样式,如普通平直样式"butt"、圆角样式"round"、斜角样式"projecting"等
- dash_capstyle: 虚线端点的样式,与solid_capstyle类似
- dash_joinstyle: 虚线连接处的样式,如圆弧连接"round"、斜接连接"bevel"、锐角连接"miter"等
- solid_joinstyle: 实线连接处的样式,与dash_joinstyle类似
- markevery: 标记显示的间隔,可以是数字、元组或者函数,可以是数字、元组或者函数。例如:每隔一个数据点标记一个点:markevery=2;从第二个开始,每个5个数据点标记一个点:markevery=(1, 5);根据某个函数的返回值来控制标记的位置:markevery=lambda i: i%3==0
`plt.plot()`函数的参数比较多,不同的参数组合可以实现各种各样的效果。
2.2 plt.scatter参数说明
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=

本文介绍了Python中常用的可视化工具Matplotlib,包括其架构组成(脚本层、美工层、后端层)和Pyplot子库。详细说明了Pyplot的多个绘图函数参数,如plt.plot、plt.scatter等。还展示了使用Matplotlib绘制直线、折线、散点图等多种图形的方法。
最低0.47元/天 解锁文章
4623

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



