🏳️🌈Python 有着强大的绘图库 matplotlib, 该库集成了大量的绘图函数,可以满足我们平时绝大多数的绘图需求。其中,matplotlib 库是 Python 进行可视化功能的主要软件包,matplot 本是 matlab 中的绘图库,matplotlib 其实就是在 Python 实现 matplot 的功能。
🏳️🌈利用 Python 绘制散点图与在 matlab 中 *** 作类似,以数据集 fourclass 为例(数据集的获取方式见文章https://blog.csdn.net/weixin_43252521/article/details/121768104?spm=1001.2014.3001.5501)
🏳️🌈样本的两个属性值作为在平面图中的二维坐标,根据样本的标签值给散点相应的颜色。
代码如下:
from scipy.io import loadmat
import numpy as np
import matplotlib.pyplot as plt
data = loadmat(r'C:\Users\Desktop\fourclass.mat')['data']
# 创建画布
fig = plt.figure()
ax = fig.add_subplot(111)
idx_1 = np.where(data[:, 1] == 1) # 找出第一类
p1 = ax.scatter(data[idx_1, 0], data[idx_1, 1], marker='.', color='black', s=8)
idx_2 = np.where(data[:, -1] == -1) # 找出第二类
p2 = ax.scatter(data[idx_2, 0], data[idx_2, 1], marker='.', color='red', s=8)
plt.show()
🏳️🌈from scipy.io import loadmat
导入 loadmat, 用于对 mat 格式文件进行读 *** 作,读入 mat 格式文件的内容。import matplotlib.pyplot as plt
导入matplotlib,导入进行绘图 *** 作用到的库。numpy 库通常和 matplotlib 库一起搭配使用,numpy 与存储数据有关。
🏳️🌈读入数据使用了 loadmat 函数,得到一个字典类型数据,需要根据键名 ’data‘ 取出对应的值。
🏳️🌈首先,创建一个画布,然后再调用add_subplot()
函数,111 表示这个画布中,第一行第一列中的第一个子图,add_subplot(111)
就是在创建的画布中创建第一个子图,这个子图在第一行第一列,一般只画一个图就使用 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)
语句,绘制散点。ax.scatter()
函数第一个参数 data[idx_1, 0] 是样本的横坐标,第二个参数 data[idx_1, 1] 是样本的纵坐标,marker 表示散点的形状, color 表示颜色参数,s 表示散点的像素大小。
🏳️🌈最后,plt.show()
显示创建的散点图显示在画布中。绘制的散点图如下所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)