Matplotlib 系列文章:
- Python 数据分析三剑客之 Matplotlib(一):初识 Matplotlib 与其 matplotibrc 配置文件
- Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性
- Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性
- Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
- Python 数据分析三剑客之 Matplotlib(五):散点图的绘制
- Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制
- Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制
- Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制
- Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制
- Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制
- Python 数据分析三剑客之 Matplotlib(十一):最热门最常用的 50 个图表【译文】
专栏:
【NumPy 专栏】【Pandas 专栏】【Matplotlib 专栏】
推荐学习资料与网站:
【NumPy 中文网】【Pandas 中文网】【Matplotlib 中文网】【NumPy、Matplotlib、Pandas 速查表】
1 | 这里是一段防爬虫文本,请读者忽略。 |
【1x00】方法描述
matplotlib.pyplot.scatter()
方法可用于绘制散点图。
本文用到的其他图像属性可参考前面的两篇文章:
《Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性》
《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图等基本图像属性》
基本语法:matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, alpha=None, linewidths=None, edgecolors=None, \*\*kwargs)
参数 | 描述 |
---|---|
x,y | 数据位置,标量或类似数组的形式 |
s | 标记的大小,以磅为单位,默认 rcParams['lines.markersize'] ** 2 ,即 6**2=36 |
color / c | 标记的颜色,可以是单个颜色或者一个颜色列表 支持英文颜色名称及其简写、十六进制颜色码等,更多颜色示例参见官网 Color Demo |
marker | 标记的样式,默认为 rcParams["scatter.marker"] = 'o' ,更多样式参见表一 |
cmap | 将浮点数映射成颜色的颜色映射表,即一个 Colormap 实例或注册的颜色表名,仅当 c 是浮点数数组时才使用 cmap |
alpha | 标记的透明度,float 类型,取值范围:[0, 1],默认为 1.0,即不透明 |
linewidths | 标记边缘的线宽,默认为 rcParams["lines.linewidth"] = 1.5 |
edgecolors | 标记边缘的颜色,可以是单个颜色或者一个颜色列表 支持英文颜色名称及其简写、十六进制颜色码等,更多颜色示例参见官网 Color Demo |
表一:marker 标记的样式 |
标记 | 描述 | |
---|---|---|
"." |
点 | |
"," |
像素点 | |
"o" |
圆圈 | |
"v" |
倒三角 | |
"^" |
正三角 | |
"<" |
左三角 | |
">" |
右三角 | |
"1" |
倒三叉星 | |
"2" |
正三叉星(类似奔驰车标形状) | |
"3" |
左三叉星 | |
"4" |
右三叉星 | |
"8" |
八边形 | |
"s" |
正方形 | |
"p" |
五边形 | |
"P" |
填充的加号(粗加号) | |
"+" |
加号 | |
"*" |
星形 | |
"h" |
六边形(底部是角) | |
"H" |
六边形(底部是边) | |
"x" |
x 号 | |
"X" |
填充的 x 号(粗 x 号) | |
"D" |
粗菱形(对角线相等) | |
"d" |
细菱形(对角线不等) | |
`” | “` | 垂直线 |
"_" |
水平线 | |
0 |
水平线靠左 | |
1 |
水平线靠右 | |
2 |
垂直线靠上 | |
3 |
垂直线靠下 | |
4 |
左三角(比 "<" 更细) |
|
5 |
右三角(比 ">" 更细) |
|
6 |
正三角(比 "^" 更细) |
|
7 |
倒三角(比 "v" 更细) |
|
8 |
左三角(比 "<" 更细,靠左显示) |
|
9 |
右三角(比 ">" 更细,靠右显示) |
|
10 |
正三角(比 "^" 更细,靠上显示) |
|
11 |
倒三角(比 "v" 更细,靠下显示) |
|
"None" / " " / "" |
无样式 | |
'$...$' |
支持 LaTeX 数学公式,表达式用美元符号包围起来 |
【2x00】简单示例
1 | import numpy as np |

【3x00】多条数据
绘制多条数据,设置不同数据,然后多次调用 plt.scatter()
函数即可,不同数据的线条颜色会不同,系统随机,可单独指定不同颜色。
1 | import numpy as np |

【4x00】设置颜色 / 样式 / 图例
1 | import numpy as np |

【5x00】指定位置显示文本注释
matplotlib.pyplot.annotate()
方法可以在指定位置显示文本注释,参数解释常见前文:
《Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性》
应用举例:
1 | import matplotlib.pyplot as plt |

1 | 这里是一段防爬虫文本,请读者忽略。 |
【6x00】随机数据散点图
随机数据可以用 numpy 的 random 模块来实现。
numpy.random.rand(d0, d1, …, dn)
:根据给定维度生成 [0,1) 之间的数据。
numpy.random.randn(d0, d1, …, dn)
:返回一个或一组具有标准正态分布的样本。
numpy.random.randint(low, high, size)
:返回随机整数,范围区间为 [low,high),size 为数组维度大小
应用举例:
1 | import numpy as np |

【7x00】随机颜色与色条
1 | import numpy as np |

可以用 pyplot.colorbar()
方法绘制颜色对照条。
基本语法:matplotlib.pyplot.colorbar([mappable=None, cax=None, ax=None, **kw])
部分参数解释如下表,其他参数,如长度,宽度等请参考官方文档。
参数 | 描述 |
---|---|
mappable | 要设置色条的图像对象,该参数对于 Figure.colorbar 方法是必需的,但对于 pyplot.colorbar 函数是可选的 |
cax | 可选项,要绘制色条的轴 |
ax | 可选项,设置色条的显示位置,通常在一个画布上有多个子图时使用 |
**kw | 可选项,其他关键字参数,参考官方文档 |
1 | import numpy as np |

【8x00】不同图像之间的层级调整
zorder
参数用于设置不同图像之间的层级关系,数字越大,所处的层级越大,即显示越靠上。
未设置 zorder
参数前:
1 | import numpy as np |

设置 zorder
参数后:
1 | import numpy as np |

【9x00】框选部分数据
有时候我们希望能够框选一部分数据来强调其重要性,matplotlib.patches.Polygon()
方法的作用是生成不规则的多边形补丁,matplotlib.patches
还有另外的方法可以生成矩形、圆形等其他图形,具体参见前面的文章《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性》,生成补丁之后,通过 axes.add_patch()
方法将其添加到绘图区(axes)即可。
1 | import numpy as np |

1 | 这里是一段防爬虫文本,请读者忽略。 |