还是用iris数据集举例,一起来完成对它的探索性数据分析吧!(也就是画个图,瞅瞅长的啥样子)
import pandas
iris = pandas.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data')
iris.columns=['sepal_length','sepal_width','petal_length','petal_width','species']
绘图的基本指令
先画图初步了解一下数据的样子
import seaborn
%matplotlib inline
seaborn.countplot(x="species",data=iris)
![output_3_1 output_3_1]()
可以看出三类别的花是很平均的,每种各占50个
seaborn.barplot(x='species',y='petal_length',data=iris)
![output_5_1 output_5_1]()
setosa这种花的花瓣长度明显小于其他两种
seaborn.boxplot(x='species',y='petal_length',data=iris)
![output_7_1 output_7_1]()
这样就更清楚了,甚至我们可以通过花瓣长度这样一种指标来在我们的150个训练集中区别出setosa这种花
seaborn.distplot(iris['petal_width'])
![output_9_1 output_9_1]()
分类绘图
#Pandas库对类别进行选取,然后进行画图
iris_vir=iris[iris.species == 'Iris-virginica']
iris_s=iris[iris.species == 'Iris-setosa']
iris_ver=iris[iris.species =='Iris-versicolor']
#参数赋值,加上label&图例&设置坐标轴范围,xlim设置x轴范围,ylim设置y轴范围
seaborn.distplot(iris_vir['petal_width'],label='vir').set(ylim=(0,15))
seaborn.distplot(iris_s['petal_width'],label='s')
seaborn.distplot(iris_ver['petal_width'],label='ver').legend()
![output_11_1 output_11_1]()
#FacetGrid 从数据集不同的侧面进行画图,hue指定用于分类的字段,使得代码会更加简洁
g=seaborn.FacetGrid(iris,hue='species')
g.map(seaborn.distplot,'petal_width').add_legend()
![output_12_1 output_12_1]()
#尝试修改row/col参数,替代hue参数,row:按行展示,col:按列展示
g=seaborn.FacetGrid(iris,row='species')
g.map(seaborn.distplot,'petal_width').add_legend()
![output_13_1 output_13_1]()
#画出线性回归的曲线
seaborn.regplot(x='petal_width',y='petal_length',data=iris)
![output_14_1 output_14_1]()
#分类画线性回归
g = seaborn.FacetGrid(iris,hue='species')
#设置坐标轴范围
g.set (xlim=(0,2.5))
g.map(seaborn.regplot,'petal_width','petal_length').add_legend()
![output_15_1 output_15_1]()
#不显示拟合曲线,用matplotlib画散点图
import matplotlib.pyplot as plt
g = seaborn.FacetGrid(iris,hue='species')
g.map(plt.scatter,'petal_width','petal_length').add_legend()
![output_16_1 output_16_1]()
ok,这样就完成了我们对iris数据集的探索性数据分析,也就是画图瞅瞅长得啥样。