数据可视化可以让我们很直观的发现数据中隐藏的规律,察觉到变量之间的互动关系,帮助我们更好地解释现象和发现数据价值,做到一图胜千文的说明效果。http://seaborn.pydata.org/index.html

python数据分析的可视化库有:

  • matplotlib 是可视化的必备技能库,比较底层,api很多,学起来不太容易。

  • seaborn 是建构于matplotlib基础上,能满足绝大多数可视化需求。

  • matplotlib和seabron是静态可视化库,pyecharts有很好的web兼容性,可以进行可视化动态效果。

seaborn是一个面向对象可视化库,本次使用seaborn自带的tips(餐厅小费)数据集进行数据的分布探索,在遇到新的数据集合时候,分析问题不至于无从下手;

Seaborn通过sns.set()方法实现主题风格更改,可以设置5种风格的图表背景:darkgrid, whitegrid, dark, white, ticks,通过参数style设置,默认情况下为darkgrid风格:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# 修改baseUrl的路径即可完成数据读取修改
baseUrl="C:\\Users\\71781\\Desktop\\2020\\ML-20200422\\seaborn_sklearn\\"
# tips=sns.load_dataset("tips")
tips=pd.read_csv("tips.csv")# 如果想增加对特征属性的描述(单位或含义),可对数据进行重命名操作
tips.columns=("total_bill_dollar","tips_dollar","sex","smoker","day","time","size")
# 特征属性多的时候使用set_option方法可展示最多500个列;
pd.set_option("display.max_columns",500) #让所有列都能加载出来
# tips['day'].values
# tips['day'].value_counts
# tips['day'].shape
tips.head()
# 针对离散值,查看值域
np.unique(tips['time'])
# 针对整型特征属性describe查看常规统计
tips.describe()

1、分布图(连续性变量):distplot()

# 1、分布图(连续性变量):distplot()
# 探究单个连续属性的分布图,使用distplot()方法,横坐标是数据,纵坐标是概率图;参照seaborn官网api:
# seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)
# 被定义为灵活的绘制单变量分布图l
sns.distplot(tips["total_bill_dollar"])

2、数量统计图(离散变量):countplot()

# 2、数量统计图(离散变量):countplot()
# 分布图一般是针对连续性的特征属性,当特征属性是离散的时使用countplot()方法查看特征属性值的个数统计量;
# seaborn.countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, dodge=True, ax=None, **kwargs)# 由于seaborn默认是图形竖着排列,不好观察,所以这里使用matplotlib和seaborn结合使得两个图横向排列,预先定义画布然后填充图形,非常实用!
fig,(axis1,axis2,axis3) = plt.subplots(1,3,figsize=(15,5))
sns.countplot(x='sex', data=tips, ax=axis1)
# countplot() 可以绘制两个离散值之间的统计关系图,能够直观观察问题
sns.countplot(x='sex', hue="time", data=tips, order=['Female','Male'], ax=axis2)
sns.countplot(x='time', hue="sex", data=tips, order=['Dinner','Lunch'], ax=axis3)
# 图2和图3描述了一个问题,女性偏爱吃午餐,男性偏爱吃晚餐;

# countplot() 中x和y只能指定一个,指定x轴则y轴展示数量,指定y轴则x轴展示数量
fig,(axis1,axis2,axis3) = plt.subplots(1,3,figsize=(15,5))
sns.countplot(y='sex', data=tips, ax=axis1)
sns.countplot(y='sex', hue="time", data=tips, order=['Female','Male'], ax=axis2)
sns.countplot(y='time', hue="sex", data=tips, order=['Dinner','Lunch'], ax=axis3)

3、两个变量的散点图:scatterplot()

# 3、两个变量的散点图:scatterplot()
# scatterplot() 单纯只做散点图,但是能突出3个变量间的关系,一般把参数中的hue设置成分类结果,观察每一种分类的分布情况
# seaborn.scatterplot(x=None, y=None, hue=None, style=None, size=None, data=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, markers=True, style_order=None, x_bins=None, y_bins=None, units=None, estimator=None, ci=95, n_boot=1000, alpha='auto', x_jitter=None, y_jitter=None, legend='brief', ax=None, **kwargs)
ax = sns.scatterplot(x="total_bill_dollar", y="tips_dollar", hue="day",size="smoker",data=tips)
# 下图中用不用颜色区分day,然后用不同大小区分了smoker,一个图装了4个变量之间的关系。。。

4、根据属性值域绘制散点图:relplot()

# 4、根据属性值域绘制散点图:relplot()
#  relplot()根据不同特征属性值域绘制变量之间的散点图
# seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=None, row=None, col=None, col_wrap=None, row_order=None, col_order=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, markers=None, dashes=None, style_order=None, legend='brief', kind='scatter', height=5, aspect=1, facet_kws=None, **kwargs)
# 行按照time值域分类,列按照sex值域分类,总共是 2*2 =4个图,很容易发现女性喜欢周四中午吃午餐,男性喜欢周末吃晚餐;
sns.relplot(x="total_bill_dollar", y="tips_dollar", hue="day",col="time", row="sex", data=tips)

5、两个变量的联合分布图jointplot()

# 5、两个变量的联合分布图jointplot()
# 单个变量的分布探究完成后,可以做多个连续性变量之间的联合分布散点图,使用jointplot()函数,在x和y轴绘制分布图,在中心绘制散点图;
# seaborn.jointplot(x, y, data=None, kind='scatter', stat_func=None, color=None, height=6, ratio=5, space=0.2, dropna=True, xlim=None, ylim=None, joint_kws=None, marginal_kws=None, annot_kws=None, **kwargs)
sns.jointplot(x="total_bill_dollar", y="tips_dollar", data=tips, color="black")
# jointplot() 既可以看到单个变量的分布,又可以查看两者之间的关系,kind='kde'得到密度图,kind='reg'得到回归线;
sns.jointplot(x="total_bill_dollar", y="tips_dollar", data=tips,kind='reg',color="red")

6、箱线图:boxplot()

# 6、箱线图:boxplot()
# boxplot可以直观明了地识别数据批中的异常值,也可以判断数据批的偏态和尾重,发现有一些异常点;
ax1=sns.boxplot(x="day", y="total_bill_dollar",hue="smoker", data=tips)

7、不重叠散点图:swarmplot()

# 7、不重叠散点图:swarmplot()
ax1=sns.swarmplot(x="day", y="total_bill_dollar",hue="smoker",  data=tips)

8、有个变量属性的重叠散点图:stripplot()

# 8、有个变量属性的重叠散点图:stripplot()
ax = sns.stripplot(x="day", y="total_bill_dollar", hue="smoker",data=tips)

# 一般swarmplot(),stripplot() 同boxplot()和violinplot()一同使用,既可以观察总体分布,也能看个体分布情况
ax1=sns.boxplot(x="day", y="total_bill_dollar", data=tips)
ax1 = sns.swarmplot(x="day", y="total_bill_dollar", data=tips)

9、小提琴图跟boxplot()用途一样

# 9、小提琴图跟boxplot()用途一样
ax1 = sns.violinplot(x="day", y="total_bill_dollar", hue="smoker",data=tips)
ax1 = sns.stripplot(x="day", y="total_bill_dollar", hue="smoker",data=tips)

10、绘制条件关系的多图网格:FacetGrid()

# 10、绘制条件关系的多图网格:FacetGrid()
g = sns.FacetGrid(tips, col="time",  row="smoker")
g = g.map(plt.hist, "total_bill_dollar")

# 比较随性的绘图方法,很灵活
g = sns.FacetGrid(tips, col="time",  row="sex")
g = g.map(plt.scatter, "total_bill_dollar", "tips_dollar", edgecolor="w")

11、barplot()函数

若输出的值域是离散值,我们可以将其转换成1/0的连续性,然后看特征属性的贡献度;

# 11、barplot()函数,直观绘制曲线图
# 若输出值域是离散值,我们可以将其转换成1/0
# 这里值域是个连续性的,所以我们把sex转换为1和0,探究一下
tips['sex'].replace('Female',0,inplace=True)
tips['sex'].replace('Male',1,inplace=True)
tips.head()# 求均值
perc=tips[['day','sex','time']].groupby(['day','time'],as_index=False).mean()
sns.barplot(x='time',y='sex',hue='day',data=perc)

一般掌握以上的绘图方法就能够确保够用,主要是熟能生巧,能够快速找到数据之间的关系,筛选有价值的数据字段,快速完成特征工程;

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的程序媛姐姐

一定要备注【高清图】

????????????????????

➕我们的程序媛小姐姐微信要记得备注【高清图】

来都来了,喜欢的话就请分享点赞在看三连再走吧~~~

【完结!】数据挖掘从入门到放弃(五)seaborn 的数据可视化相关推荐

  1. Py之Seaborn:数据可视化Seaborn库的柱状图、箱线图(置信区间图)、散点图/折线图、核密度图/等高线图、盒形图/小提琴图/LV多框图的组合图/矩阵图实现

    Py之Seaborn:数据可视化Seaborn库的柱状图.箱线图(置信区间图).散点图/折线图.核密度图/等高线图.盒形图/小提琴图/LV多框图的组合图/矩阵图实现 目录

  2. Py之seaborn:数据可视化seaborn库(二)的组合图可视化之密度图/核密度图分布可视化、箱型图/散点图、小提琴图/散点图组合可视化的简介、使用方法之最强攻略(建议收藏)

    Py之seaborn:数据可视化seaborn库(二)的组合图可视化之密度图/核密度图分布可视化.箱型图/散点图.小提琴图/散点图组合可视化的简介.使用方法之最强攻略(建议收藏) 目录 二.组合图可视 ...

  3. 五、MATLAB数据可视化

    五.MATLAB数据可视化 声明: 笔记是学习慕课网<科学计算与MATLAB语言>课程和刘卫国主编的<MATLAB程序设计与应用(第3版)>后的个人总结,方便自己以后巩固和复习 ...

  4. Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid密度图等的函数源代码详解之最强攻略

    Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid折线图/柱状图+散点图/矩形密度图的 ...

  5. seaborn 教程_使用Seaborn进行数据可视化教程

    seaborn 教程 "Seaborn makes the exploratory data analysis phase of your data science project beau ...

  6. pyecharts入门及新冠病毒疫情数据可视化(绘制地理图表)

    前言 一般用matplotlib和seaborn就可以做可视化,为什么偏要用pyecharts? 它是中国人做的! 更重要的,是它非常好用,可以作出非常多很酷的动图.比如大家刷疫情的时候,常看到的图 ...

  7. 【数据可视化从入门到精通】指南-发展史-数据可视化应用场景-发展前景-技术选型①

    实战「外卖实战」数据大屏 基于 Vue 3.0 + EChart 4.0 开发 前置学习 具备javascript.html.css的基础 具备Vue的使用基础 了解npm和webpack的基本概念 ...

  8. 这篇文章把数据讲透了(五):数据可视化(下)

    一.前言 上几期文章中,我们已经了解到"数据"是一个庞大的体系(如下图所示),并用了菜市场的例子,为大家讲解数据来源的含义:用买菜的例子,为大家讲解数据采集的步骤:用洗菜.择菜的例 ...

  9. 数据挖掘从入门到放弃(一):线性回归和逻辑回归

    " 数据挖掘算法基于线性代数.概率论.信息论推导,深入进去还是很有意思的,能够理解数学家.统计学家.计算机学家的智慧,这个专栏从比较简单的常用算法入手,后续研究基于TensorFlow的高级 ...

  10. 数据挖掘从入门到放弃:线性回归和逻辑回归

    公众号后台回复"图书",了解更多号主新书内容 作者:yzq 来源:数据社 " 数据挖掘算法基于线性代数.概率论.信息论推导,深入进去还是很有意思的,能够理解数学家.统计学 ...

最新文章

  1. UI之UI View--属性及用法
  2. [c]如何通过结构体元素找到结构体?
  3. rbac权限管理5张表_PHP之常用的RBAC权限管理详解
  4. openpyxl库,1秒合并多张表格并设置图表格式
  5. php接口数据加密、解密、验证签名【转】
  6. SpringCloud工作笔记050---关于同一账号多人同时登录的token重复问题
  7. .net快速创建PDF文档 by c#
  8. Mac上创建cocos2d-x工程
  9. 《Android进阶之光》— Android 书籍
  10. 喀秋莎Camtasia Studio微视频录制工具使用指南
  11. MATLAB安装错误:Check your internet connection and proxy settings in MATLAB Web preferences
  12. react native 获取验证码
  13. sphinxapi.php 详解,【转】Sphinx PHP api全文检索的例子
  14. Nginx架构四之七层负载均衡
  15. NLP实战之textCNN中文文本分类
  16. 学习PMP,你最看重培训机构哪些点?
  17. linux-python升级到最新版本
  18. Android aab文件签名过程
  19. 日本科学家的AI读心术,解码脑电波,还原人眼所见
  20. STM32CubeMX | 33-使用GPIO读取温度传感器数据(DS18B20)

热门文章

  1. 机器学习推荐算法之关联规则(Apriori)——支持度;置信度;提升度
  2. JNCIS-FWV Study Guide v1.3
  3. 重磅!厦门大学信息学院11篇论文入选AI顶会AAAI 2021
  4. 【vue-router源码】四、createRouter源码解析
  5. openstack虚拟机配置vip
  6. Java就业知识点大全
  7. 福州大学计算机学院奖学金,福州大学奖学金管理规定
  8. 计算机前端开发论文参考文献,web前端论文参考文献.doc
  9. 北理校园网省流攻略之下载篇
  10. 二级下拉菜单布局(纵向、横向)