论plt.scatter()画散点图未设置“颜色参数c”却能画出五颜六色点的原因

2021-09-07 17:13:37 浏览数 (1)

目 录

1 问题描述

2 原因剖析

3 实例回顾

3.1 调用一次 plt.scatter() 方法产生一个点

3.2 调用三次 plt.scatter() 方法产生三个点

3.3 调用多次 plt.scatter() 方法产生多个点


1 问题描述

今天重点学习了 matplotlib 库的理论与用法,在进行到使用 matplotlib 库中 plt.scatter() 方法画散点图的内容学习时,遇到了一个问题:绘制散点时未设置“颜色参数c”却能画出五颜六色的点,找同学解决无果后在老师的指点下解决了该问题,现将问题产生原因分享给大家,希望给需要的人予以帮助!

画散点图关键语句中并未对颜色参数c进行设置:

代码语言:javascript复制
plt.scatter(x, y, s, alpha=z)     # 关键语句

却能画出五颜六色的点:

2 原因剖析

我在此处用的是一个循环语句随机绘制出位置、大小、透明度不一的圆点。

matplotlib 的 plt.scatter() 方法在每次生成点时,为了让使用者容易区别这些点是不同次使用 plt.scatter() 方法产生的点,系统会自动为每一个点随机匹配一种颜色。

3 实例回顾

3.1 调用一次 plt.scatter() 方法产生一个点

代码语言:javascript复制
plt.scatter(X[0], Y[0], s=111)

可以看到,未设置“颜色参数c”,调用一次 plt.scatter() 方法生成的一个点是方法默认蓝色。

3.2 调用三次 plt.scatter() 方法产生三个点

代码语言:javascript复制
plt.scatter(X[0], Y[0], s=111)
plt.scatter(X[1], Y[0], s=111)
plt.scatter(X[2], Y[0], s=111)

可以看到,未设置“颜色参数c”,调用三次 plt.scatter() 方法生成的三个点是不同的三种颜色。

3.3 调用多次 plt.scatter() 方法产生多个点

代码语言:javascript复制
for i in range(n):
    x, y, s = X[i], Y[i], S[i]
    print(x, y, s)
    plt.scatter(x, y, s)

可以看到,未设置“颜色参数c”,调用多次 plt.scatter() 方法生成的多个点是多种不同颜色。

:X、Y用于产生随机坐标 S:用以确定生成点随机大小


感谢阅读

END

0 人点赞