3. 画多个子图
这里用到的是sklearn的iris_dataset(鸢尾花数据集)。
此数据集包含四列,分别是鸢尾花的四个特点:
- sepal length (cm)——花萼长度
- sepal width (cm)——花萼宽度
- petal length (cm)——花瓣长度
- petal width (cm)——花瓣宽度
这里起首对数据进行必定的处理,重要就是对特点名称进行两两分列组合,然后任两个特点一个一个做x轴另一个做y轴进行画图。
- # -*- coding=utf-8 -*-
- from matplotlib import pyplot as plt
- from sklearn.datasets import load_iris
- import numpy as np
- import itertools
- data = load_iris()
- #print(data.data)
- #print(data.feature_names)
- #print(data.target)
- features = data['data']
- feature_names = data['feature_names']
- target = data['target']
- labels = data['target_names'][data['target']]
- print(data.data)
- print(data.feature_names)123456789101112131415161718123456789101112131415161718
这里有一个分列组合参考代码,最后是掏出了两两组合的情况。
分列组合的结不雅是feature_names_2包含了分列组合的所有情况,它的每一个元素包含了一个分列组合的所有情况,比如第一个元素包含了所有单个元素分列组合的情况,第二个元素包含了所有的两两组合的情况……所以这里掏出了第二个元素,也就是所有的两两组合的情况
下面是在for轮回里画多个子图的办法。对我来说,这里须要进修的有不少。比如
for i,k in enumerate(feature_names_2[1]):这一句老是记不住。
比如大年夜列表中掏出某元素地点的索引的办法:index1 = feature_names.index(k[0]),也即index = list.index(element)的情势。
比如for轮回的下面这用法:for t,marker,c in zip(range(3),”>ox”,”rgb”):
- plt.figure(1)
- for i,k in enumerate(feature_names_2[1]):
- index1 = feature_names.index(k[0])
- index2 = feature_names.index(k[1])
- plt.subplot(2,3,1+i)
- for t,marker,c in zip(range(3),">ox","rgb"):
- plt.scatter(features[target==t,index1],features[target==t,index2],marker=marker,c=c)
- plt.xlabel(k[0])
- plt.ylabel(k[1])
- plt.xticks([])
- plt.yticks([])
- plt.autoscale()
- plt.tight_layout()
- plt.show()12345678910111213141234567891011121314
这里的可视化效不雅如下:
推荐阅读
企业数据中间团队可以大年夜超大年夜型云办事供给商那边进修到响应的重要的经验教训。与此同时,企业还应从新思虑其冗余策略,并推敲采取诸如像SDN如许的技巧来赞助进步效力。现如今,在数>>>详细阅读
地址:http://www.17bianji.com/lsqh/35556.html
1/2 1