• 【Matplotlib】matplotlib库 中 pyplot.scatter() 的使用


    系列文章目录


    第二章 Matplotlib 库中 pyplot.scatter() 的使用


    目录

    系列文章目录

    文章目录

    一、pyplot.sctter() 函数的参数详解

    二、pyplot.sctter()  的使用


    一、pyplot.scatter() 函数的参数详解

    pyplot.scatter() 函数就是用来绘制散点图的。我们先来看一下官方文档。

    官方文档:

    matplotlib.pyplot.scatter(x, y,

    s=None,

    marker=None,

    c=None,

    cmap=None,

    norm=None,

    vmin=None,

    vmax=None,

    alpha=None,

    linewidths=None,

    verts=None,

    edgecolors=None,

    *,

    data=None,

    **kwargs)
     

    其中:

    • x, y,就是散点的坐标,数据点的位置
    • s=None,  散点的大小,面积
    • marker=None,   散点样式,默认值为实心圆,'o'
    • c=None,  散点的颜色,默认为‘b’, 也就是blue
    • cmap=None,  指的是matplotlib.colors.Colormap,也就是色彩映射表实例或注册的色彩映射表名称,相当于多个调色盘的合集。仅当 c 是浮点数组时才使用 cmap
    • norm=None, 如果 c 是浮点数组,则使用范数 在 0 到 1 的范围内缩放颜色数据 c,以便映射到色彩映射表 cmap
    • vmin=None, vmax=None, 这两个参数与默认规范结合使用,以将颜色数组 c 映射到色彩映射表 cmap。如果为 None,则使用颜色数组的相应最小值和最大值。当给出数时,不可以使用这两个参数。
    • alpha=None,  散点透明度([0, 1]之间的数,0表示完全透明,1则表示完全不透明)
    • linewidths=None, 散点的边缘线宽
    • edgecolors=None,  散点的边缘颜色

    官方注释: c (颜色)可能的输入如下,

    1 要使用 cmap 和norm 数映射到颜色的 n 个数字的标量或序列。

    2 一个 2D 数组,其中的行为 RGB 或 RGBA。

    3 长度为 n 的颜色序列。

    4 单色格式字符串。

    norm、vmin、vmax 这3个参数是对散点颜色亮度进行设置

    二、pyplot.scatter()  的使用

    既然了解了函数的各个参数,那么话不多说,我们直接上代码。

    首先只给散点坐标,其他参数默认,来看看绘制出的散点图

    1. # 导入两个库
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. # 固定随机状态,可以获得重复数据 
    5. np.random.seed(10)
    6. n = 20
    7. # rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
    8. x = np.random.rand(n)
    9. y = np.random.rand(n)
    10. # 绘制散点图
    11. plt.scatter(x, y)
    12. plt.show()

    输出结果:(随机生成了20个散点)

     

    设置一下常用参数,来看看效果

    1. # 导入两个库
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. # 固定随机状态,可以获得重复数据
    5. np.random.seed(10)
    6. n = 20
    7. # rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
    8. x = np.random.rand(n)
    9. y = np.random.rand(n)
    10. area= 500*np.random.rand(n)
    11. colors=np.random.rand(n)
    12. # 绘制散点图
    13. plt.scatter(x, y, s = area, marker = '*', c = colors, alpha = 0.6)
    14. plt.show()

    输出结果:(生成20个星状的散点)

    设置色彩映射表 cmap 参数,使用调色盘中的颜色。

    1. # 导入两个库
    2. import matplotlib.pyplot as plt
    3. import numpy as np
    4. # 固定随机状态,可以获得重复数据
    5. np.random.seed(10)
    6. n =20
    7. # rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
    8. x = np.random.rand(n)
    9. y = np.random.rand(n)
    10. area= 2000*np.random.rand(n)
    11. colors=np.random.rand(n)
    12. # 绘制散点图
    13. plt.scatter(x, y, s = area, marker = 'o', c = colors, alpha = 0.6, cmap= 'viridis' )
    14. # 绘制颜色条
    15. plt.colorbar()
    16. plt.show()

    输出结果:

    注意:

    • 这里 cmap= 'viridis' ,意思就是选择这个调色盘,将参数c中获取到的数值,映射到“色盘”中已经对应好的颜色上。
    • 从“色盘”viridis中获取到的颜色,可以通过plt.colorbar( )显示为颜色条。

    设置范数 norm  参数,控制颜色变化范围

    其中,我们需要用到colors.Normalize( ),使用方法如下:

    class matplotlib.colors.Normalize(vmin=None, vmax=None)

    1. # 使用norm 范数参数
    2. # 导入三个库
    3. import matplotlib.pyplot as plt
    4. import numpy as np
    5. from matplotlib import colors # 调整“色盘”,导入colors
    6. # 固定随机状态,可以获得重复数据
    7. np.random.seed(10)
    8. n =20
    9. # randn( )函数返回一个或一组样本,具有标准正态分布(标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。)。
    10. x = np.random.randn(n)
    11. y = np.random.randn(n)
    12. area = 2000*np.random.rand(n)
    13. color = np.random.rand(n)
    14. changecolor = colors.Normalize(vmin=0.4, vmax=0.8)
    15. # 绘制散点图
    16. plt.scatter(x, y, s = area, marker = 'o', c = color, alpha = 0.6, cmap= 'viridis' , norm = changecolor )
    17. # 绘制颜色条
    18. plt.colorbar()
    19. plt.show()

    输出结果:

     可以看见,颜色的变化范围变成了(0.4, 0.8)

  • 相关阅读:
    自动编码器简单理解及简单使用描述
    会员权益-新功能发布:定时发布博文
    PerfView专题 (第一篇):如何寻找 C# 热点函数
    哪些电商平台的 API 很好用?为什么?
    深度学习-LSTM
    Ubuntu下 FTP的搭建配置
    [二进制学习笔记]C中的格式化字符串
    Rockchip Uboot CmdLine 作用 来源 常用参数
    Java客户端Http请求工具Okhttp和RestTemplate的详细介绍
    深入理解JVM虚拟机第四篇:一些常用的JVM虚拟机
  • 原文地址:https://blog.csdn.net/m0_51816252/article/details/126209555