Seaborn函数总结

Seaborn是matplotlib库的扩展,主要专注于统计学的分析
Seaborn背后有调色板

import seaborn as sns
sns.set_style(‘darkgrid’) 设置一些背景
sns.load_dataset(‘tips’) 加载数据 seaborn datasets

画图

sns.relplot(x=‘total_bill’,y=‘tip’, data=tips) 画散点图 relational plots
-x 针对同一个x对应多个y的情况,line plot会根据mean和95%的置信区间(confidence interval)来作图
-y
-ci = None ‘sd标准差/None’ 取消置信区间
-estimator= None 取消所有的东西

  • hue=‘字段’ 用颜色来进行区分 有渐变的效果
  • style=‘字段’ 用数据形状来区分字段
  • size = ‘字段’ 其实这是用大小来分类
  • sizes=(15,200) 可以指定大小的区间 跟size连用
  • kind=‘line折线x要有个时间关系/scatter散点/box箱线图/swarm钟型图/boxen/violin小提琴图(KDE把离散的值连续化)’ 图像的类型
  • sort = False 排序

用hue可以根据某个column分成不同的颜色绘制 hue和style像groupby
sns.lmplot() 画一个线性回归的模型
sns.scatterplot()
sns.lineplot()

离散图

sns.catplot(data=tips,x=‘day’, y=‘total_bill’) categorical plots分类的 replot也可以 只是好看了

  • jitter=True 控制数据随机左右摆动 False就是变成直线
  • kind=‘strip, swarm, box, violin,boxen,point, bar, count. strip为默认值’
  • hue=‘字段’
  • order = [‘NO’,‘Yes’] 可以指定列 谁在前和后的一个排序
  • dodge=False 取消闪躲

箱线图

  • IQR = Q3 -Q1
  • 上面的线是1.5*IQR
    -下猫须,没人小于箱子的1.5 没有意义

sns.boxplot(x=“time”, y=“tip”, data=data)

条形图

sns.catplot(x=‘sex’, y=‘survived’,hue=‘class’, kind=‘bar’,data=titainc)
tips[‘weekend’] = tips[‘day’].isin([‘sat’,‘sun’])

g = sns.catplot(x='day',y = 'total_bill',kind='violin',data=tips)
sns.catplot(x='day',y = 'total_bill',kind='swarm',data=tips,as = g.ax) #2条形图的上面

直方图

x = np.random.normal(size=100) 拿到了100个高斯分布的数据

sns.distplot(x, kde=True) 他是一个直方图,连续的曲线是kde
-kde= True 就会有连续的曲线
-bins = 20 分20份
-rug = True 标识下面的小数字 的一个数据点,越密就越多

KDE Kernel Density Estimation 核密度估计 就是把离散的函数变平滑

  • 每一个观测附近用一个正太分布曲线近似
  • 叠加所有观测的正太分布曲线
  • 归一化
    sns.kdeplot(x ,bw=0.2) 画一条曲线把离散的变成连续的
    -bandwidth 用于近似的正太分布的宽度 越大 越扁越矮,数越小 越尖越高

柱状图

sns.barplot(x=“month”, y=“passengers”, hue=‘year’, data=data)
seaborn.countplot() 分类直方图对输入的定量就是不变的量进行分类,只能对x或者y 不能同时x和y

散点图

sns.scatterplot(x=“tip”, y=“total_bill”, data=data)
sns.jointplot(x=‘x’ ,y=‘y’,data=df) 这两个维度都是高斯分布 会把两个维度都展示在一起

  • kind=‘hex/kde(等高线图)’ 六角箱图 把散点变成六角箱,箱子里面的点越多,颜色就越深

等高线图

f, ax = plt.subplots()
sns.kdeplot(df.x,df.y, ax=ax)

短竖线图

sns.rugplot(df.y,color=‘blue’ vertical=True,ax=ax) 这是y轴 x轴去掉vertical

iris.corr()
sns.pairplot(iris) 自己跟自己是直方图 自己跟别人是散点图
-hue

绘制线性回归模型

sns.lmplot(data=tips,x=‘total_bill’,y=‘tip’) 会有95置信区间和拟合的线

  • x_jitter=0.1 会在x轴上左右抖动一下
  • x_estimator=np.mean 做平均值估算
  • ci = 50 就会变小 默认是95
  • scatter_kes={“s”:80} 点的大小
  • order = 2 就是更高的维度
  • robust = True 忽略异常点
  • logiste = True 用回归拟合
    -col=‘time’ 将两个图分开
  • row=‘sex’ 按sex行进行分开
  • height =8 图片的大小
  • aspect=0.4长和宽的比例
  • size = 30
  • col_wrap=2 一行只出2个图

残差

sns.residplot(x=‘x’,y=‘y’,data=anscombe.query(’'dataset == ‘I’ “”))

你可能感兴趣的:(python)