Matplotlib scatter()函数的用法(非常详细)
散点图主要用于展示数据的分布情况。如需创建散点图,可以使用 pyplot 模块中的 scatter() 函数或 Axes 对象的 scatter() 方法。
下面的代码是使用 Axes 对象的 scatte() 方法创建如下图所示的散点图:

图 1 散点图
下面的代码将散点图中各个点的形状设置为大菱形,将它们的大小设置为 60 个像素:

图 2 更改散点图的样式
下面的代码将每个点的 y 轴坐标设置为 s 参数的值,这样每个点的大小就能直观表示每个点的数值大小:

图 3 气泡图
创建散点图
scatter() 函数或 scatter() 方法的前两个参数分别表示各个点的 x 轴坐标和 y 轴坐标,创建散点图时必须指定这两个参数。其他参数都是关键字参数,用于设置各个点的大小、颜色、形状等。下面的代码是使用 Axes 对象的 scatte() 方法创建如下图所示的散点图:

图 1 散点图
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5, 6, 7, 8, 9] y = [5, 7, 3, 9, 8, 2, 1, 6, 4] fig, ax = plt.subplots() ax.scatter(x, y) plt.show()
更改散点图的样式
scatter() 函数或 scatter() 方法中的 s 参数用于设置各个点的大小,c 参数用于设置各个点的颜色,marker 参数用于设置各个点的形状,该参数的取值可参考下表:取值 | 形状 |
---|---|
. | 点 |
, | 像素 |
o | 圆 |
* | 星号 |
+ | 加号 |
| | 竖线 |
_ | 横线 |
v | 下三角形 |
^ | 上三角形 |
< | 左三角形 |
> | 右三角形 |
1 | 下花三角形 |
2 | 上花三角形 |
3 | 左花三角形 |
4 | 右花三角形 |
8 | 八边形 |
d | 小菱形 |
D | 大菱形 |
h | 竖六边形 |
H | 横六边形 |
p | 五角星 |
P | 填充后的加号 |
s | 正方形 |
x | 叉子 |
X | 填充后的叉子 |
下面的代码将散点图中各个点的形状设置为大菱形,将它们的大小设置为 60 个像素:
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5, 6, 7, 8, 9] y = [5, 7, 3, 9, 8, 2, 1, 6, 4] fig, ax = plt.subplots() ax.scatter(x, y, s=60, marker='D') plt.show()如下图所示:

图 2 更改散点图的样式
创建气泡图
与创建散点图类似,创建气泡图也使用 pyplot 模块中的 scatter() 函数或 Axes 对象的 scatter() 方法,此时需要将该函数或方法的 s 参数的值设置为一个列表对象,以便将各个点设置为不同的大小。下面的代码将每个点的 y 轴坐标设置为 s 参数的值,这样每个点的大小就能直观表示每个点的数值大小:
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5, 6, 7, 8, 9] y = [500, 700, 300, 900, 800, 200, 100, 600, 400] fig, ax = plt.subplots() ax.scatter(x, y, s=y) plt.show()如下图所示:

图 3 气泡图