前面说到的主要是matplotlib对于图像的基础操作,然后从这篇开始,主要说一下点图,分析点图在实际问题的数据处理中应用非常广泛,比如说逻辑回归是利用现有的数据点通过拟合得到一定的函数关系,甚至生活中,物体运动的轨迹,也可以看做是连续的点绘制而成,还有图像,也是很多个像素点堆砌而成的,在图像处理中经常会针对单个像素点进行处理。
现在的深度学习或者机器学习,模型都是固定的,大多 不需要怎么改动,而能提升训练效果的,最重要的就是能更好的处理数据,而很多数据本身就是点集,利用matplotlib将点绘制成可视化的图像,也方便人工智能工程师的分析理解,毕竟可视化的效果,总比看着枯燥的数据想象要来的更好。
散点图
以下是一个散点图的简单演示,利用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()