在这篇博客中,用一个小栗子来介绍一下散点图在多变量数据中的一方面应用。数组
scikit库中提供了一些数据,这里使用iris数据集,是一种鸢尾属植物,所给数据中包括两种类型的花,目的是根据所给信息判断两种花分别属于哪一类。也就是说找到区分这两种花的方法。spa
1 from sklearn.datasets import load_iris 2 import numpy as np 3 import matplotlib.pyplot as plt 4 import itertools
1 data = load_iris() 2 x = data['data'] 3 y = data['target'] 4 col_names = data['feature_names']
首先看一下这个数据集中都有什么,放一张过程当中的截图。code
从上面以及具体内容(数据较多,能够自行查看)能够看到,x中是150x4的二维数组,对应着花萼的长度宽度和花瓣的长度宽度。y中是存储着已知的每组数据对应的花的种类,有0、1两种状况。feature_names中存了每一个属性的名称。blog
先给出主要的程序,而后慢慢解释其中用到的知识点。ci
1 # 绘出6个图形,包括了如下几个列:花萼长度、花萼宽度、花瓣长度和花瓣宽度
2 plt.close('all') # 关掉其余的图像
3 plt.figure(1) 4
5 # 绘制一个3行2列的图
6 subplot_start = 321
7 col_numbers = range(0, 4) 8 # 为图形添加标签
9 col_pairs = itertools.combinations(col_numbers, 2) 10 plt.subplots_adjust(wspace = 0.5) 11
12 for col_pair in col_pairs: 13 plt.subplot(subplot_start) 14 plt.scatter(x[:,col_pair[0]], x[:,col_pair[1]], c=y) 15 plt.xlabel(col_names[col_pair[0]]) 16 plt.ylabel(col_names[col_pair[1]]) 17 subplot_start += 1
18 plt.show()