跟我一起学点数据分析 --第六天:数据可视化(seaborn部)

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第1张图片

文章目录

    • 前文回顾
    • 数据集
    • seaborn绘图入门
      • 直方图 与 密度图
      • 频数图
      • 条形图
      • 散点图
        • 为点设置形状和大小
      • 蜂巢图
      • 2D密度图
      • 箱线图
      • 条形图
      • 小提琴图
      • 成对关系
      • 多变量数据

前文回顾

跟我一起学点数据分析 --第五天:数据可视化(matplotlib部)


数据集

数据可视化部分能用到的数据集在上一篇都已经给啦。

什么x轴、y轴、标题,咱一律不整那些虚的啊,前一篇已经整够多了,复制粘贴的我都累。


seaborn绘图入门

这里先用tips.

直方图 与 密度图

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

tips = pd.read_csv('tips.csv')

ax = sns.displot(tips['total_bill'],kde = True)
# displot 函数默认会绘制直方图和密度图,如果不想看到密度图,把kde设为False,我这边默认是False

plt.show()

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第2张图片

如果只想看到密度图呢?

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第3张图片

本来想把上面的kde参数改成hist参数,但是说hist参数已经被弃用,就是这么无情,并不能在国内的网站上轻易找到答案,反正我烦了一页是没有,还是在国外的一本书上人家随口提了一句。
国内网站关于seaborn的资料太少了,英语咱又不好。。。还不会。。。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

tips = pd.read_csv('tips.csv')

ax = sns.kdeplot(tips['total_bill'])

plt.show()

频数图

上边第一张就差不多

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第4张图片

有区分度么?

ax = sns.distplot(tips['total_bill'],rug = True)

条形图

ax = sns.countplot('day',data = tips)

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第5张图片


接下来是双变量数据的世界


散点图

ax = sns.regplot(x = 'total_bill',y = 'tip',data = tips)

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第6张图片

同样的,如果你不想看回归线,那怎么办?把fit_reg设置为False

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第7张图片

来个更牛逼的,具体自己看:
跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第8张图片

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

tips = pd.read_csv('tips.csv')

ax = sns.jointplot(x = 'total_bill',y = 'tip',data = tips)
ax.set_axis_labels(xlabel='Total Bill',ylabel='Tip')
ax.fig.suptitle('Joint Plot',fontsize = 10,y = 1.03)

plt.show()

为点设置形状和大小

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

tips = pd.read_csv('tips.csv')


sns.regplot(x='total_bill', y='tip', data=tips,marker='o', color='red', scatter_kws={
     's':20})

plt.show()

更详尽的用法参考上一篇
跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第9张图片


蜂巢图

散点图适用于比较两个变量,但有时图中的点太多反而会失去意义。
哎,话也不多说,直接看吧:

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第10张图片

就改这么一行:hexbin = sns.jointplot(x = 'total_bill',y = 'tip',data = tips,kind = 'hex')

然后就OK啦


2D密度图

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

tips = pd.read_csv('tips.csv')

ax = sns.kdeplot(data = tips['total_bill'],data2 = tips['tip'],shade = True)

plt.show()

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第11张图片

ax = sns.jointplot(data = tips,x = 'total_bill',y = 'tip',kind = 'kde')

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第12张图片


箱线图

箱线图用来显示多种统计数据的信息,就是describe函数看到的那些·

ax = sns.boxplot(data = tips,y = 'total_bill',x = 'time')

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第13张图片


条形图

条形图我就不说了吧,barplot,自己用。


小提琴图

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第14张图片

我说它是箱线图和密度图的合体你信吗?

ax = sns.violinplot(data = tips,y = 'total_bill',x = 'time')

成对关系

当大部分数据都是阿拉伯数字的时候,可以使用pairplot 把所有的成对关系都描绘出来。
但是直接用的话,会有不少的冗余。

于是·我们采用PairGrid来手动指定图的上半部分和下半部分(一会儿可以去查一下这个函数)

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

tips = pd.read_csv('tips.csv')

pait_grid = sns.PairGrid(tips)

pait_grid = pait_grid.map_upper(sns.regplot)
pait_grid = pait_grid.map_lower(sns.kdeplot)
pait_grid = pait_grid.map_diag(sns.distplot,rug = True)	#这个true有什么用呢?只是频数而已


plt.show()

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第15张图片


多变量数据

如果数据量还不小,你想根据某个变量来进行一波分流操作,怎么操作呢?

比方说我现在要以性别来分流。

跟我一起学点数据分析 --第六天:数据可视化(seaborn部)_第16张图片

ax = sns.violinplot(data = tips,y = 'total_bill',x = 'time',hue='sex')

这篇就先到这里啦。

最近我发现啊,要验证一篇博客好不好,要看它的实战性能。

所以后面我还会回来的。

你可能感兴趣的:(数据分析师的修炼历程,数据可视化,大数据,seaborn,python)