1.2为多变量数据绘制散点阵图
2018-10-10 08:39:54来源:博客园 阅读 ()
在这篇博客中,用一个小栗子来介绍一下散点图在多变量数据中的一方面应用。
scikit库中提供了一些数据,这里使用iris数据集,是一种鸢尾属植物,所给数据中包括两种类型的花,目的是根据所给信息判断两种花分别属于哪一类。也就是说找到区分这两种花的方法。
加载库
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']
首先看一下这个数据集中都有什么,放一张过程中的截图。
从上面以及具体内容(数据较多,可以自行查看)可以看到,x中是150x4的二维数组,对应着花萼的长度宽度和花瓣的长度宽度。y中是存储着已知的每组数据对应的花的种类,有0、1两种情况。feature_names中存了每个属性的名称。
先给出主要的程序,然后慢慢解释其中用到的知识点。
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()
- #7:col_numbers = range(0, 4) 上面看到数据中包括四个属性来判断该花属于哪个类型,在程序当中也就是二维数组中列的0~3。
- #9:col_pairs = itertools.combinations(col_numbers, 2) itertools.combination可以将里面的内容组合在一起。这里由于二维更便于展示,两两组合起来绘图,观察哪些属性可以更清晰的区分出两种花来。返回一个迭代器。
- #12:循环从生成的所有两两组合中取出来,绘图。
- #14:plt.scatter(x[:,col_pair[0]], x[:,col_pair[1]], c=y) 绘制散点图,横纵轴为组合在一起的两个属性,[:,col_pair[0]]的意思就是组合中第一个属性的150个数据。
- #17: subplot_start += 1 使图像依次画在一个图形中。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python变量和常量 2019-08-13
- 在 Python 中这样命名变量就是给自己挖坑 2019-08-13
- Python基础总结之第二天从变量开始(新手可相互督促) 2019-07-24
- tcp服务端无线为多个客户端服务 2019-07-24
- 第四章 函数之高级函数 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash