🏳️🌈Python 有着强大的绘图库 matplotlib, 该库集成了大量的绘图函数,可以满足我们平时绝大多数的绘图需求。其中,matplotlib 库是 Python 进行可视化功能的主要软件包,matplot 本是 matlab 中的绘图库,matplotlib 其实就是在 Python 实现 matplot 的功能。
🏳️🌈利用 Python 绘制散点图与在 matlab 中操作类似,以数据集 fourclass 为例(数据集的获取方式见文章 Python 对数据集进行归一化处理并存储为 mat 格式的文件
🏳️🌈样本的两个属性值作为在平面图中的二维坐标,根据样本的标签值给散点相应的颜色,代码如下:
from scipy.io import loadmat #导入 loadmat, 用于对 mat 格式文件进行操作
import numpy as np
import matplotlib.pyplot as plt #导入绘图操作用到的库
#读取数据得到一个字典类型数据,需要根据键名 ’data‘ 取出对应的值。
data = loadmat(r'C:\Users\Desktop\fourclass.mat')['data']
fig = plt.figure() # 创建画布
ax = fig.add_subplot(111)
idx_1 = np.where(data[:, -1] == 1) # 找出标签为1的样本
idx_2 = np.where(data[:, -1] == -1) # 找出标签为-1的样本
#绘制散点图
p1 = ax.scatter(data[idx_1, 0], data[idx_1, 1], marker='.', color='black', s=8)
p2 = ax.scatter(data[idx_2, 0], data[idx_2, 1], marker='.', color='red', s=8)
plt.show() #显示散点图
🏳️🌈首先,创建一个画布,然后再调用add_subplot()
函数,111 表示这个画布中,第一行第一列中的第一个子图,add_subplot(111)
就是在创建的画布中创建第一个子图,这个子图在第一行第一列,一般只画一个图就使用 111 就可以了。
🏳️🌈其次,根据样本的标签找出对应的样本。fourclass 数据集是二分类数据集,如果你使用的是其他数据集,有 N 个分类,可以依此类推设置 idx_N = np.where(data[:, -1] == N) # 找出第N类
。
🏳️🌈然后,绘制散点图。以 p1 所在行的代码为例,ax.scatter()
函数第一个参数 data[idx_1, 0] 是样本的横坐标,第二个参数 data[idx_1, 1] 是样本的纵坐标,marker 表示散点的形状, color 表示颜色参数,s 表示散点的像素大小。值得注意的是,这里所绘制的散点图是二维的,碰巧我们使用的数据集也是只有两个条件属性,可以比较好的刻画样本的分布,如果你使用的数据集的条件属性大于2个,自己综合考虑选择两个代表性的属性分别作为横、纵坐标。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/157080.html