当前位置 博文首页 > Python matplotlib绘制散点图的实例代码

    Python matplotlib绘制散点图的实例代码

    作者:机器视觉之眼 时间:2021-08-10 17:50

    前言

    前面说到的主要是matplotlib对于图像的基础操作,然后从这篇开始,主要说一下点图,分析点图在实际问题的数据处理中应用非常广泛,比如说逻辑回归是利用现有的数据点通过拟合得到一定的函数关系,甚至生活中,物体运动的轨迹,也可以看做是连续的点绘制而成,还有图像,也是很多个像素点堆砌而成的,在图像处理中经常会针对单个像素点进行处理。

    现在的深度学习或者机器学习,模型都是固定的,大多 不需要怎么改动,而能提升训练效果的,最重要的就是能更好的处理数据,而很多数据本身就是点集,利用matplotlib将点绘制成可视化的图像,也方便人工智能工程师的分析理解,毕竟可视化的效果,总比看着枯燥的数据想象要来的更好。

    在python中画散点图主要是用matplotlib模块中的scatter函数,先来看一下scatter函数的基本信息。

    可以看到scatter中有很多参数,经常使用的参数主要有以下几个:

    散点图

    以下是一个散点图的简单演示,利用numpy的random函数生成随机数,然后将这些点画出来。如图安装图中API设置窗口的参数,这里简单说一下cmap='jet_r'这个,jet_r是一个颜色映射算法,就是系统会根据图像中的信息自动配置颜色,这里也可以自己设置颜色,也可以用其他的颜色映射表示。

    绘制散点图相关API:

    mp.scatter(
    	xarray, yarray,  # 给出点的坐标
        marker='',		 # 点型
        s = 60,			 # 点的大小
        edgecolor='',	 # 边缘色
        facecolor='',	 # 填充色
        zorder=3,		 # 绘制图层编号 
        c=d,			 # 设置过渡性颜色
        cmap='jet'		 # 颜色映射
    )
    

    随机生成符合 正态分布 的随机数:

    n = 500
    # 随机生成n个数
    # 172: 数学期望
    # 20:  标准差
    x = np.random.normal(172, 20, n)
    
    import numpy as np
    import matplotlib.pyplot as mp
    
    n = 500
    # 随机生成500个样本身高
    x = np.random.normal(172, 10, n)
    # 随机生成500个样本体重
    y = np.random.normal(65, 10, n)
    
    mp.figure('Persons', facecolor='lightgray')
    mp.title('Person Points', fontsize=16)
    mp.xlabel('Height', fontsize=12)
    mp.ylabel('Weight', fontsize=12)
    mp.tick_params(labelsize=10)
    mp.grid(linestyle=':')
    
    d = (x-172)**2 + (y-65)**2
    mp.scatter(x, y, c=d, cmap='jet_r',
    	alpha=0.6, label='Person', s=50)
    mp.legend()
    mp.show()
    

    总结

    jsjbwy