5-3 可视化库Seaborn-变量分析绘图
In [1]:
%matplotlib inline
import numpy as np
import pandas as pd
from scipy import stats,integrate
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(color_codes=True)
#生成高斯数据随机种子
np.random.seed(sum(map(ord,"distributions")))
1.简单的单变量数据特征绘图
- 直方图:显示数据范围里的数据个数
- kde:核密度估计
In [2]:
x=np.random.normal(size=100)
#画直方图bins自动分组
sns.distplot(x,kde=False)
Out[2]:
在distplot()中改变bins的个数,将数据分成30组
In [3]:
sns.distplot(x,bins=30,kde=False)
Out[3]:
2.查看数据分布情况
In [4]:
x=np.random.gamma(6,size=200)
sns.distplot(x,kde=False,fit=stats.gamma)#fit=stats.gamma是拟合统计的曲线
Out[4]:
3.根据均值和协方差生成数据
In [5]:
mean,cov=[0,1],[(1,.5),(.5,1)]
data=np.random.multivariate_normal(mean,cov,200)
df=pd.DataFrame(data,columns=["x","y"])
df
Out[5]:
4.观测两个变量之间的分布关系最好用散点图
In [6]:
sns.jointplot(x="x",y="y",data=df)
Out[6]:
5.数据量大时通过颜色深浅来判别每个区域的密度
- kind:指定绘图方式有{ “scatter” | “reg” | “resid” | “kde” | “hex” }这几种
In [7]:
x,y=np.random.multivariate_normal(mean,cov,2000).T
with sns.axes_style("white"):#指定风格
sns.jointplot(x=x,y=y,kind="hex",color="k")
In [8]:
sns.jointplot(x=x,y=y,kind="kde",color="k")
Out[8]:
In [9]:
sns.jointplot(x=x,y=y,kind="reg",color="k")
Out[9]:
5.用鸢尾花数据来绘制两个变量间的关系图
In [10]:
iris=sns.load_dataset("iris")
sns.pairplot(iris)
Out[10]:
此资源来自https://www.cnblogs.com/AI-robort/,博客园的karina512。