好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

数据科学篇| Seaborn库的使用(四)

Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

安装 Seaborn

要安装最新版本的seaborn,您可以使用pip:

pip install seaborn 也可以使用conda以下方法安装发布的版本:

conda install seaborn

用法

sns.图名(x='X轴 列名', y='Y轴 列名', data=原始数据df对象)

sns.图名(x='X轴 列名', y='Y轴 列名', hue='分组绘图参数', data=原始数据df对象)

sns.图名(x=np.array, y=np.array[, …])

绘制散点图

最常用的是relplot()。这是一个图形级函数,用于使用两种常见方法可视化统计关系:散点图和线图。

  1import numpy as np  2import pandas as pd  3import matplotlib.pyplot as plt  4import seaborn as sns  5# 加载样式  6sns.set(style="darkgrid")  7# 加载数据集tips  8tips = sns.load_dataset("tips")  9# x,y标轴 10sns.relplot(x="total_bill", y="tip", data=tips) 

 1# 根据数据集的其他列来划分数据并对应的样式 2sns.relplot(x="total_bill", y="tip", hue="smoker", style="smoker",data=tips)  

绘制线图

lineplot()  直接或relplot()通过设置来完成kind="line"

 1df = pd.DataFrame(dict(time=np.arange(500), 2                       value=np.random.randn(500).cumsum())) 3sns.relplot(x="time", y="value", kind="line", data=df) 

注意:

对于日期需要添加 g.fig.autofmt_xdate() 来解决x坐标的乱码问题

 1df = pd.DataFrame(dict(time=pd.date_range("2017-1-1", periods=500), 2                       value=np.random.randn(500).cumsum())) 3g = sns.relplot(x="time", y="value", kind="line", data=df) 4g.fig.autofmt_xdate()  

显现多图

对于数据集直接加上col参数

 1sns.relplot(x="total_bill", y="tip", hue="smoker", 2            col="time", data=tips)  

分类数据绘图

catplot将x的数据分类出来

 1import seaborn as sns 2import matplotlib.pyplot as plt 3sns.set(style="ticks", color_codes=True) 4tips = sns.load_dataset("tips") 5sns.catplot(x="day", y="total_bill", data=tips)  

绘制箱线图(只要加上kind="box"的参数就可以了)

 1sns.catplot(x="day", y="total_bill", kind="box", data=tips)  

  

绘制小提琴图(kind="violin")

 1sns.catplot(x="day", y="total_bill", kind="violin", data=tips)  

在这里插入图片描述

条形图

 1sns.catplot(x="day", y="total_bill",hue="size", kind="bar", data=tips)  

重点:可视化数据集的分布

对于上面的画图知识点太过单调唯一

绘制单变量分布

单变量分布的最方便的方法是distplot()功能。默认情况下,这将绘制直方图并拟合核密度估计(KDE)

 1x = np.random.normal(size=100) 2sns.distplot(x)  

拟合参数分布

使用的是stats来拟合数据,distplot 本来就有拟合参数,绘制KDE图的功能

 1from scipy import stats 2x = np.random.gamma(6, size=200) 3sns.distplot(x, kde=False, fit=stats.gamma)  

重点:绘制双变量分布

在seaborn中执行此操作的最简单方法是使用该jointplot()函数,该函数创建一个多面板图形,显示两个变量之间的双变量(或联合)关系以及每个变量在单独轴上的单变量(或边际)分布。

对于机器学习是常用的工具

 1mean, cov = [0, 1], [(1, .5), (.5, 1)] 2# 多元高斯分布 3data = np.random.multivariate_normal(mean, cov, 200) 4df = pd.DataFrame(data, columns=["x", "y"])  

 1# 散点分布 2sns.jointplot(x="x", y="y", data=df)  

 1# 核密度分布 2sns.jointplot(x="x", y="y", data=df, kind="kde")   

可视化数据集中的成对关系

使用该pairplot()函数。这将创建一个轴矩阵,并显示DataFrame中每对列的关系

 1iris = sns.load_dataset("iris") 2sns.pairplot(iris)  

对于seaborn个人绝对还有一个必须要写的东西就是回归

seaborn无需调用sklearn来处理回归问题

regplot()显示通过回归确定的线性关系

 1# 还是tips数据集 2sns.regplot(x="total_bill", y="tip", data=tips)  

在这里插入图片描述

lmplot()比regplot()拟合更好,还能适应多项式回归模型

 1sns.lmplot(x="total_bill", y="tip", data=tips)  

参考:

http://seaborn.pydata.org/

文章首发于:

https://blog.csdn.net/weixin_44510615/article/details/89528624

▼往期精彩回顾▼

数据科学篇| Numpy 库的使用(一)

数据科学篇| Pandas库的使用(二)

数据科学篇| Matplotlib和数据可视化(三)

如果学习遇到问题 , 加毛利微信: maori01 (备注:学习交流)

最后,祝有所学习,有所成长

转发,好看支持一下,感谢

查看更多关于数据科学篇| Seaborn库的使用(四)的详细内容...

  阅读:35次