方式 :画图
探索型数据分析的常用图表
- 条形图、直方图
- 饼图(饼图在探索型数据分析中使用较少,原因是肉眼对于角度之间的大小差别没有对高度之间的差别敏感, 不容易看清楚,不明显)
- 折线图、散点图
- 箱形图
条形图
seaborn.barplot(x="day",y="total_bill",data=tips)#条形图 error bar 误差 波动情况
直方图 :整体分布情况
seaborn.distplot(X) #distribution
#line chart 折线图 CI 68%确信
seaborn.pointplot(x="day",y="tip",data=tips,ci=68)
#scatter diagram 散点图
两个属性的相关关系
账单和小费 ,通过线性回归做条线
seaborn.regplot(x="total_bill",y="tip",data=tips)
#box plot 箱形图 数据分布情况 前25% ,最少25 在什么地方 。。。异常值,差距值>1.5
seaborn.boxplot(x="day",y="total_bill",data=tips)
网络数据可视化:可以使用Gephi软件(节点和边的关系)
时空数据可视化:可以使用MapBox或CART实现(先从地图上画出来数据)
本节课所使用的数据为iris(150朵花)数据集,需要自行设置header
import pandas
#括号里面直接指定了数据的来源,当然你也可以按照老师视频中所讲授的来操作
iris = pandas.read_csv("G:/tools/python/iris.data.csv")#加州大学欧文分校
iris.columns=['sepal_length','sepal_width','petal_length','petal_width','species']
iris.sample(10)#随机取10个样本
iris.describe()
绘图基本指令
import seaborn
%matplotlib inline
seaborn.countplot(x="species",data=iris)
seaborn.barplot(x='species',y='petal_length',data=iris)
seaborn.boxplot(x='species',y='petal_length',data=iris)#箱型图
#你是否也从上面的三种类型的绘图结果中,对这个数据集有一个初步的印象了呢?
seaborn.distplot(iris['petal_width'])#传入一个序列, 没有区分类别
分类绘图
#Pandas库对类别进行选取,然后进行画图
iris_vir=iris[iris.species
==
'Iris-virginica']#比较
iris_s=iris[iris.species
==
'Iris-setosa']
#参数赋值,加上label&图例&设置坐标轴范围,xlim设置x轴范围,ylim设置y轴范围
iris_ver=iris[iris.species
==
'Iris-versicolor']
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()
#seaborn 非常强大的功能, FacetGrid 从数据集不同的侧面进行画图,hue指定用于分类的字段,使得代码会更加简洁
#尝试修改row/col参数,替代hue参数,row:按行展示(展示为一列),col:按列展示(一行)
g=seaborn.FacetGrid(iris,row='species') #hue='species col 并排
g.map(seaborn.distplot,'petal_width').add_legend()
#画出线性回归的曲线
seaborn.regplot(x='petal_width',y='petal_length',data=iris)#散点图 正相关
#分类画线性回归
g = seaborn.FacetGrid(iris,hue='species')
g.map(seaborn.regplot,'petal_width','petal_length')
g.map(seaborn.regplot,'petal_width','petal_length').add_legend()
#设置坐标轴范围
g.set (xlim=(0,2.5))
g.map(seaborn.regplot,'petal_width','petal_length').add_legend()
#不显示拟合曲线,用matplotlib画散点图
import matplotlib.pyplot as plt
g = seaborn.FacetGrid(iris,hue='species')
g.set(xlim=(0, 2.5))
g.map(plt.scatter,'petal_width','petal_length').add_legend()