首页 > 编程笔记 > Python笔记 阅读:17

Matplotlib scatter()函数的用法(非常详细)

散点图主要用于展示数据的分布情况。如需创建散点图,可以使用 pyplot 模块中的 scatter() 函数或 Axes 对象的 scatter() 方法。

创建散点图

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 参数用于设置各个点的形状,该参数的取值可参考下表:

表: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 气泡图

相关文章