前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据清洗 Chapter03 | Seaborn常用图形

数据清洗 Chapter03 | Seaborn常用图形

作者头像
不温卜火
发布2020-10-28 14:46:14
1.6K0
发布2020-10-28 14:46:14
举报
文章被收录于专栏:不温卜火

Seaborn是一个画图工具 Seaborn是基于Matplotlib的一个Python作图模块 配色更加好看,种类更多,但函数和操作比较简单

1、散点图

散点图可直接观察两个变量的分布情况

  • 1、使用jiontplot()函数画出散点图
代码语言:javascript
复制
import seaborn as sns
import pandas as pd
import numpy as np
iris = pd.read_csv('./data/iris.csv')

sns.jointplot(x='sepal_length', y='petal_length', data=iris)
14
14
  • 2、设置参数kind为reg,对散点进行线性拟合
代码语言:javascript
复制
sns.jointplot("sepal_length", "petal_length", data=iris, kind="reg")
15
15
  • 3、设置参数kind为hex,绘制六边形箱体联合分布直方图
代码语言:javascript
复制
sns.jointplot("sepal_length", "petal_length", data=iris, kind="hex")
16
16
  • 4、设置参数kind为kde,绘制密度曲线图
代码语言:javascript
复制
sns.jointplot("sepal_width", "petal_length", data=iris, kind="kde", space=0, color="g")
17
17

2、盒图(箱线图)

通常最大值和最小值检测数据集中的异常值 通过中位数判断数据集的偏态和尾重

18
18
  • 1、打开文件
代码语言:javascript
复制
import seaborn as sns
import pandas as pd
import numpy as np
tips = pd.read_csv("./data/tips.csv")

tips.head(3)
19
19
  • 2、用boxplot(0绘制账单(bill)的盒图
代码语言:javascript
复制
sns.boxplot(x=tips["total_bill"])
20
20
  • 3、以天(day)为单位,绘制账单的盒图
代码语言:javascript
复制
sns.boxplot(x="day", y="total_bill", data=tips)
21
21
  • 4、分别绘制抽烟者和不抽烟者账单的盒图
  • 使用hue指定抽烟(smoker)特征
代码语言:javascript
复制
sns.boxplot(x="day", y="total_bill",hue = "smoker", data=tips,palette = "Set3")
22
22

3、直方图

直方图中,条形的长为对应组的频数与组距的比 直方图能够清楚显示各组频数分布情况 易于显示各组之间频数的差别

  • 1、使用distplot()函数绘制直方图

distplot()结合了Matplotlib中的hist()、kdeplot()和rugplot()

代码语言:javascript
复制
sns.distplot(tips["total_bill"])
23
23
  • 2、使用参数rug添加地毯图

rug用于观察数据的密度分布

代码语言:javascript
复制
sns.distplot(tips["total_bill"], rug=True, hist=False)
24
24
  • 3、使用直方图和最大似然高斯分布拟合展示变量分布

kde用于指定是否在图上添加高斯核密度估计

  1. kde=False
代码语言:javascript
复制
from scipy.stats import norm
sns.distplot(tips["total_bill"], fit=norm, kde=False)
25
25
  1. kde=True
代码语言:javascript
复制
from scipy.stats import norm
sns.distplot(tips["total_bill"], fit=norm, kde=True)
26
26
  • 4、设置vertical参数和color参数,改变直方图的方向和颜色
代码语言:javascript
复制
sns.distplot(tips["total_bill"], vertical=True,color='y')
27
27

4、柱状图

柱状图用于反映离散特征中不同特征值的数目

  • 1、使用Seaborn中的.countpolt()绘制柱状图
代码语言:javascript
复制
sns.countplot(x="day", data=tips)
28
28
  • 2、使用两个离散变量做柱状图
代码语言:javascript
复制
sns.countplot(x="day", hue="sex", data=tips)
29
29
  • 3、绘制水平柱状图
代码语言:javascript
复制
sns.countplot(y="day", hue="sex", data=tips)
30
30

5、核密度图

核密度图(kernel density estimation ,kde) 是一种非参数检验方法 用于估计未知的密度函数

使用Seaborn中的kdeplot()函数绘制单变量或双变量的核密度估计图

  • 1、绘制单变量核密度估计图
代码语言:javascript
复制
sns.kdeplot(tips["total_bill"])
31
31
  • 2、设置color参数,在核密度曲线下方区域进行颜色填充
代码语言:javascript
复制
sns.kdeplot(tips["total_bill"],shade=True,color='r')
32
32
  • 3、绘制双变量核密度图
代码语言:javascript
复制
sns.kdeplot(tips["total_bill"],tips['tip'])
33
33
  • 4、n_levels设置层数,cmap设置颜色
代码语言:javascript
复制
sns.kdeplot(tips["total_bill"],tips['tip'], n_levels=30, cmap="Purples_d")
34
34

6、小提琴图

小提琴图是盒图与核密度图的结合 能够一次从多个维度反映出数据的分布

  • 1、使用violinplot()函数绘制小提琴图
代码语言:javascript
复制
sns.violinplot(x=tips["total_bill"])
35
35
  • 2、根据星期(day)进行分组,绘制特征账单的小提琴图
代码语言:javascript
复制
sns.violinplot(x="day", y="total_bill", data=tips)
36
36
  • 4、绘制两个离散变量嵌套分组的小提琴图

palette用于指定seaborn内置颜色

代码语言:javascript
复制
sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips, palette="muted")
37
37
  • 5、参数scale用于调节小提琴图的大小

count表示根据不同bin对应观测值多少调节

代码语言:javascript
复制
sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, palette="Set2",split=True,scale="count")
38
38

7、点对图

刻画数据集一对变量之间相互关系,并对单变量做出分布直方图

  • 1、使用pairplot()函数绘制点对图
代码语言:javascript
复制
sns.set(style="ticks", color_codes=True)
sns.pairplot(iris)
39
39
  • 2、使用pandas库,也可以绘制点对图,不过比这个难些
代码语言:javascript
复制
pd.scatter_matrix(iris, diagonal='hist', color = 'b',alpha=0.3, figsize=(10, 10), marker='o')
40
40
  • 3、设置参数diag_kind,指定对角线子图上的类型
代码语言:javascript
复制
sns.set(style='darkgrid')
sns.pairplot(iris, diag_kind='kde', kind='reg', markers='+')
41
41
  • 4、选择变量,绘制点对图
代码语言:javascript
复制
sns.pairplot(iris,markers='o',x_vars=["sepal_width", "sepal_length"],y_vars=["petal_width", "petal_length"], kind='reg')
42
42
  • 5、通过hue作为分类,并用不同颜色标注
代码语言:javascript
复制
sns.set(style='darkgrid')
sns.pairplot(iris, vars=['sepal_width', 'sepal_length'], palette="Set1", size=3)
43
43

8、回归图

  • 1、使用lmplot()函数绘制数据的线性回归图
代码语言:javascript
复制
sns.lmplot(x="total_bill", y="tip", data=tips)
44
44
  • 2、设置hue参数,拟合出不同水平的直线
代码语言:javascript
复制
sns.lmplot(x="total_bill",y="tip",hue="smoker",data=tips,palette='Set1')
45
45
  • 3、设置col参数,对数据集进行分组:抽烟者和不抽烟者
代码语言:javascript
复制
sns.lmplot(x="total_bill", y="tip", col="smoker", data=tips)
46
46
  • 4、设置row和col参数,用性别和抽烟两个离散特征进行分组
代码语言:javascript
复制
sns.lmplot(x="total_bill", y="tip", row="sex", col="time",data=tips, size=3)
47
47
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、散点图
  • 2、盒图(箱线图)
  • 3、直方图
  • 4、柱状图
  • 5、核密度图
  • 6、小提琴图
  • 7、点对图
  • 8、回归图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档