seaborn简介

戏子无情 提交于 2019-12-02 12:13:05

一、准备工作

1.1

import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import pandas as pd
import seaborn as sns

plt.rcParams['font.sans-serif']=['SimHei'] # 用来显示正常的中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
#sns.set_style=('darkgrid',{'font.sans-serif':['SimHei','Arial']})

import warnings #屏蔽部分警告信息
warnings.filterwarnings('ignore')

1.2导入内置数据集

seaborn.load_dataset(name,cache=True,data_home=None,**kws)

  • name 参数是数据集名字,https://github.com/mwaskom/seaborn-data 定义数据集名
  • cache 参数是否提供缓存
  • data_home 参数是指定缓存路径,默认当前用户home下的seaborn-data目录中
  • sns.get_dataset_names()获得数据集名字

1.3调色板

#自定义调色板
color = ['red','orange','yellow','green','pink','blue','black']
print(color)
sns.palplot(color)
#颜色渐变的调色板
sns.palplot(sns.color_palette("Reds_r",10))

二、分类图

2.1柱状图
seaborn.barplot(
x,y,hue:绘图中所使用的分类/连续变量/颜色分组变量名
data :数据框名称
order, hue_order : hue变量各类别取值的绘图顺序
orient :“v" |“h”, 条带绘制方向
saturation = 0.75 : float, 直条颜色的饱和度

x = ["金融","农业","制造业","新能源"]
y = [164,56,126,58]
sns.barplot(x,y,
           order = ["金融","制造业","新能源","农业"],
           orient = 'v',
            saturation = 0.25)

在这里插入图片描述

tips = sns.load_dataset("tips")#导入内置数据集tips
tips.head()
sns.barplot(x = 'day',y = 'tip',data = tips,hue = 'sex',palette = 'Blues')

在这里插入图片描述
黑色线是误差条,每一个柱最大值是一组数据的平均值

2.2条形图
交换x,y轴

sns.barplot(y = 'day',x = 'tip',data = tips,palette = "Purples")

在这里插入图片描述
2.3箱线图
seaborn.boxplot(
x,y, hue : names of variables in data or vector data, optional
data : DataFrame, array, or list of arrays,optional
orient :“v”| "h”, optional
color : matplotlib color, optional
palette : palette name, list, or dict, optional
saturation = 0.75 : float, 箱体颜色的饱和度
width = 0.8 : float, 箱体宽度所占比例
fliersize = 5 : float, 离群值散点大小.
linewidth = None : float, 框线宽度
whis = 1.5 : float,离群值确定标准,距离IQR 上下界的倍数)

tips = sns.load_dataset("tips")
sns.boxplot(x = "day",y = "tip",hue = "sex",data = tips)

在这里插入图片描述
2.4小提琴图

sns.violinplot(x = "day",y = "tip",hue = "sex",data = tips,split = True)

在这里插入图片描述
2.5散点图

2.51 strip带状散点图

sns.boxplot(x = 'day',y = 'tip',data = tips)
sns.stripplot(x = 'day',y = 'tip',data = tips,color = 'c')

在这里插入图片描述
5.25 swarm蜂群状散点图

sns.swarmplot(x = "day",y = "tip",data = tips,hue = 'sex')

在这里插入图片描述
2.6分面网格分类图
在分面网格中绘制分类图使用catplot函数,catplot 函数称为“图级函数”,而barplot、boxplot、
violinplot等函数是分面网格x和y轴上进行绘制,这些函数称为“轴级函数”。
catplot函数数除了具有“轴级函数”的参数外,还有如下主要参数:
row:在x轴上绘制的数据。
col:在y轴上绘制的数据。
col_wrap: 在x轴上绘制子图的最大个数。
kind:绘制子图类型,主要有"bar"、strip"、”swarm"、"violin”、“box"或"boxen”,其中"strip"是默认值。

sns.catplot(x = "day",y = "tip",data = tips,hue = "sex",col = "size",kind = "bar",col_wrap  = 3)#限制每行放三个图

在这里插入图片描述

三、关联图

3.1线图
主要参数和3.3散点图一样

data = {
    'apples':[3,2,0,1],
    'orange':[0,1,2,3],
    'bananas':[1,2,1,0]
}
df = pd.DataFrame(data,index = ['June','Robert','Lily','David'])
sns.lineplot(data =df)#一个列一条线

在这里插入图片描述
3.2分面网格关联图
在分面网格中绘制关联图使用relplot函数

mpg_df = sns.load_dataset("mpg")
mpg_df.head()
g = sns.relplot(x = "displacement", y = "mpg",col = "cylinders",row = "origin",data = mpg_df)

在这里插入图片描述
3.3散点图
Seaborn中关联散点图函数是seaborn.scatterplot,它的主要参数:
seaborn.scatterplot (x=None, y=None, hue=None, style=None,size=None,data=None )

  • x和y是有关联的两个变量数据集。
  • hue、size、style能够显示不同的数据集。
  • 如果data设定,则x、y、hue、size、style取值是data中列名。
plt.figure(dpi = 150)
sns.scatterplot(x= 'total_bill',y = "tip",hue = "sex",data = tips,style = 'time')

在这里插入图片描述

四、分布图

4.1单变量分布图
Seaborn中distplot函数可以绘制Dist图,事实上统计学并不存在Dist图,
Seaborn中Dist图是单变量的直方图和密度图结合体。
distplot函数的主要参数:
seaborn.distplot (a, bins = None, hist = True, kde = True)

  • a参数是单变量数据,他可以是Series、 一维数组或列表。
  • bins参数是直方图中柱体的个数。
  • hist参数是否绘制直方图。
  • kde 参数是否绘制密度图。
sns.distplot(tips["total_bill"],hist = True,kde = True)

在这里插入图片描述

4.2密度图
kdeplot函数的主要参数:
seaborn . kdeplot(data, data2=None,shade=False)

  • data参数是第1个变量数据,他可以是Series、 一维数组或列表。
  • data2参数是第2个变量数据,类型同data参数。
  • shade参数是否绘制阴影效果。
n = 1024
x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)
g = sns.kdeplot(x,y)

在这里插入图片描述

五、矩阵图

5.1热力图
热力图(heatmap)是以矩阵形式表示数据的一种方式,数据值在图中表示为颜色。
Seaborn中绘制热力图函数是seaborn.heatmap,它的主要参数:
seaborn. heatmap(data, vmin=None, vmax=None, cmap=None, annot =None )

  • data参数,二维数据集。
  • vmin 和vmax参数,图例中最大值和最小值的显示值。
  • cmap参数,设置颜色面板。
  • annot参数,设置热力图注解,如果True则在单元格中显示数据值。
df = pd.DataFrame(np.random.rand(10,10),columns = list("abcdefghij"))
sns.heatmap(df,cmap = "Greens",vmin = 0,vmax = 0.5,annot = True)

在这里插入图片描述

六、回归图

6.1线性回归图
线性回归图通过大量数据找到模型拟合的线性回归线,使用Seaborn 的regplot函数。
回归图:线性回归图regplot和分面网格(FacetGrid)线性回归图lmplot。

df = sns.load_dataset("tips")
sns.regplot(x = 'total_bill',y = 'tip',data = df)

在这里插入图片描述

七、分面网格图

可以通过seaborn. FacetGrid 类绘图分面网格,然后再通过seaborn. FacetGrid. map方法将一个绘图函数作用于一一个网格,并绘制子图。
seaborn. FacetGrid构造函数:
seaborn. FacetGrid( data, row=None, col=None, hue=None, col_wrap=None )
FacetGrid.map方法:
FacetGrid. map(func,*args, **kwargs)

g  = sns.FacetGrid(mpg_df,col = "origin")
g.map(sns.distplot,"mpg")

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!