数据清洗 Chapter03 | Seaborn常用图形

举报
不温卜火 发表于 2020/12/03 01:12:23 2020/12/03
【摘要】 这篇文章讲述的是Seaborn常用图形。希望这篇数据清洗的文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ Chapter03 | Seaborn常用图形 1、散点图2、盒图(箱线图)3、直方图4、柱状图5、核密度图6、小提琴图7、点对图8、回归图 Seaborn是一个画图工具 Seaborn是基于Matplotlib的一个Py...

这篇文章讲述的是Seaborn常用图形。希望这篇数据清洗的文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~


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

1、散点图

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

  • 1、使用jiontplot()函数画出散点图
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)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

14

  • 2、设置参数kind为reg,对散点进行线性拟合
sns.jointplot("sepal_length", "petal_length", data=iris, kind="reg")

  
 
  • 1

15

  • 3、设置参数kind为hex,绘制六边形箱体联合分布直方图
sns.jointplot("sepal_length", "petal_length", data=iris, kind="hex")

  
 
  • 1

16

  • 4、设置参数kind为kde,绘制密度曲线图
sns.jointplot("sepal_width", "petal_length", data=iris, kind="kde", space=0, color="g")

  
 
  • 1

17

2、盒图(箱线图)

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

  • 1、打开文件
import seaborn as sns
import pandas as pd
import numpy as np
tips = pd.read_csv("./data/tips.csv")

tips.head(3)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

19

  • 2、用boxplot(0绘制账单(bill)的盒图
sns.boxplot(x=tips["total_bill"])

  
 
  • 1

20

  • 3、以天(day)为单位,绘制账单的盒图
sns.boxplot(x="day", y="total_bill", data=tips)

  
 
  • 1

21

  • 4、分别绘制抽烟者和不抽烟者账单的盒图

  • 使用hue指定抽烟(smoker)特征

sns.boxplot(x="day", y="total_bill",hue = "smoker", data=tips,palette = "Set3")

  
 
  • 1

22

3、直方图

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

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

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

sns.distplot(tips["total_bill"])

  
 
  • 1

23

  • 2、使用参数rug添加地毯图

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

sns.distplot(tips["total_bill"], rug=True, hist=False)

  
 
  • 1

24

  • 3、使用直方图和最大似然高斯分布拟合展示变量分布

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

  1. kde=False
from scipy.stats import norm
sns.distplot(tips["total_bill"], fit=norm, kde=False)

  
 
  • 1
  • 2

25

  1. kde=True
from scipy.stats import norm
sns.distplot(tips["total_bill"], fit=norm, kde=True)

  
 
  • 1
  • 2

26

  • 4、设置vertical参数和color参数,改变直方图的方向和颜色
sns.distplot(tips["total_bill"], vertical=True,color='y')

  
 
  • 1

27

4、柱状图

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

  • 1、使用Seaborn中的.countpolt()绘制柱状图
sns.countplot(x="day", data=tips)

  
 
  • 1

28

  • 2、使用两个离散变量做柱状图
sns.countplot(x="day", hue="sex", data=tips)

  
 
  • 1

29

  • 3、绘制水平柱状图
sns.countplot(y="day", hue="sex", data=tips)

  
 
  • 1

30

5、核密度图

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

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

  • 1、绘制单变量核密度估计图
sns.kdeplot(tips["total_bill"])

  
 
  • 1

31

  • 2、设置color参数,在核密度曲线下方区域进行颜色填充
sns.kdeplot(tips["total_bill"],shade=True,color='r')

  
 
  • 1

32

  • 3、绘制双变量核密度图
sns.kdeplot(tips["total_bill"],tips['tip'])

  
 
  • 1

33

  • 4、n_levels设置层数,cmap设置颜色
sns.kdeplot(tips["total_bill"],tips['tip'], n_levels=30, cmap="Purples_d")

  
 
  • 1

34

6、小提琴图

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

  • 1、使用violinplot()函数绘制小提琴图
sns.violinplot(x=tips["total_bill"])

  
 
  • 1

35

  • 2、根据星期(day)进行分组,绘制特征账单的小提琴图
sns.violinplot(x="day", y="total_bill", data=tips)

  
 
  • 1

36

  • 4、绘制两个离散变量嵌套分组的小提琴图

palette用于指定seaborn内置颜色

sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips, palette="muted")

  
 
  • 1

37

  • 5、参数scale用于调节小提琴图的大小

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

sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, palette="Set2",split=True,scale="count")

  
 
  • 1

38

7、点对图

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

  • 1、使用pairplot()函数绘制点对图
sns.set(style="ticks", color_codes=True)
sns.pairplot(iris)

  
 
  • 1
  • 2

39

  • 2、使用pandas库,也可以绘制点对图,不过比这个难些
pd.scatter_matrix(iris, diagonal='hist', color = 'b',alpha=0.3, figsize=(10, 10), marker='o')

  
 
  • 1

40

  • 3、设置参数diag_kind,指定对角线子图上的类型
sns.set(style='darkgrid')
sns.pairplot(iris, diag_kind='kde', kind='reg', markers='+')

  
 
  • 1
  • 2

41

  • 4、选择变量,绘制点对图
sns.pairplot(iris,markers='o',x_vars=["sepal_width", "sepal_length"],y_vars=["petal_width", "petal_length"], kind='reg')

  
 
  • 1

42

  • 5、通过hue作为分类,并用不同颜色标注
sns.set(style='darkgrid')
sns.pairplot(iris, vars=['sepal_width', 'sepal_length'], palette="Set1", size=3)

  
 
  • 1
  • 2

43

8、回归图

  • 1、使用lmplot()函数绘制数据的线性回归图
sns.lmplot(x="total_bill", y="tip", data=tips)

  
 
  • 1

44

  • 2、设置hue参数,拟合出不同水平的直线
sns.lmplot(x="total_bill",y="tip",hue="smoker",data=tips,palette='Set1')

  
 
  • 1

45

  • 3、设置col参数,对数据集进行分组:抽烟者和不抽烟者
sns.lmplot(x="total_bill", y="tip", col="smoker", data=tips)

  
 
  • 1

46

  • 4、设置row和col参数,用性别和抽烟两个离散特征进行分组
sns.lmplot(x="total_bill", y="tip", row="sex", col="time",data=tips, size=3)

  
 
  • 1

47


各位路过的朋友,如果觉得可以学到些什么的话,点个赞再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。每个小伙伴的关注都是本人更新博客的动力!!!

文章来源: buwenbuhuo.blog.csdn.net,作者:不温卜火,版权归原作者所有,如需转载,请联系作者。

原文链接:buwenbuhuo.blog.csdn.net/article/details/105440590

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。