Python 第三方模块 绘图 Seaborn模块1

中文文档:https://seaborn.apachecn.org/#/ \qquad 英文文档:http://seaborn.pydata.org/

一.介绍
1.功能:

Seaborn是基于Matplotlib且数据结构与Pandas相统一的统计图绘制库,其在Matplotlib的基础上进行了更高级的API封装,使作图更简
单.多数情况下使用Seaborn能作出更有吸引力的图,而使用Matplotlib能作出更复杂的图.同时Seaborn能高度兼容NumPy/Pandas的数据
结构及SciPy/Statsmodels的统计方法.Seaborn是针对统计绘图的.一般来说,Seaborn能满足数据分析90%的绘图需求,但如果要绘制复
杂的自定义图形,还是需要Matplotlib

2.安装:

pip install seaborn

3.导入:

#通常导入为sns:
import seaborn as sns

二.准备工作
1.设置:

设置绘图样式:sns.set(context="notebook",style="darkgrid",palette="deep",font="sans-serif",font_scale=1,color_codes=True,rc=None)
  #注意:该函数修改了Matplotlib rcParam系统,所以会影响所有Matplotlib图像的显示
  #参数说明:
    context:指定文字/线条风格;str/dict/None
      #str可为"paper"/"notebook"(默认)/"talk"/"poster";dict参见Matplotlib的各属性
    style:指定整体风格(见下图);str/dict/None
      #str可为"darkgrid"(默认)/"whitegrid"/"dark"/"white"/"ticks";dict参见Matplotlib的各属性
    palette:指定图像的颜色;str/sequence/None
    font:指定字体;str
    font_scale:指定文字大小;float
    coolor_codes:是否将快捷颜色码("b"/"g"/"r")重新映射到palette中的颜色上;bool
      #即是否重新定义快捷颜色码的含义
      #为True且palette为seaborn palette时才有效
    rc:指定rc参数以覆盖以上参数;dict/None

Python 第三方模块 绘图 Seaborn模块1_第1张图片
2.装载数据集:

加载数据集样例:sns.load_dataset(<name>,cache=True,data_home=None,**kwargs)
  #这些数据集样例是Seaborn内置的,每个都有自己的名字;返回pandas.core.frame.DataFrame对象
  #参数说明:
    name:指定数据集;str
      #在线数据集文件参见:https://github.com/mwaskom/seaborn-data
      #即数据集文件的文件主名,不包括扩展名.csv
    cache:True,从在线数据库加载;False,从本地加载
    data_home:指定读取数据的路径;str/None
      #可为在线文件,也可为本地文件,默认为:https://github.com/mwaskom/seaborn-data

#实例:
>>> tips= sns.load_dataset("tips")
>>> type(tips)
<class 'pandas.core.frame.DataFrame'>
>>> tips
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2

[244 rows x 7 columns]

二.可视化统计关系

即展示2个变量如何相互关联以及这些关系如何依赖于其他变量

1.统一的接口:

参见:https://blog.csdn.net/u013317445/article/details/88175366

[<g>=]sns.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="auto",kind="scatter",height=5,aspect=1,facet_kws=None,units=None,**kwargs])
  #该函数是1个figure-level function,将FacetGrid与2个axes-level function组合在一起
  #参数说明:
    x,y:分别指定数据点的x/y坐标;为vector/key in data
      #其中的元素通常均为num;如果其中的元素需要有str/bytes,则所有元素均必须为str/bytes
    hue:指定数据点的颜色;为vector/key in data/num
      #这在Seaborn中称为"色调语义"
      #为key时,该key处值不同的数据点的颜色不同,该key处值相同的数据点的颜色相同(style等类似)
    size:指定按什么变量区分线条粗细/数据点大小;为key in data/num
      #当线条波动极其剧烈时,破折号很难被察觉,这时使用不同的线宽可能更有效
    style:指定数据点的样式(形状);为vector/key in data
      #这在Seaborn中称为"样式语义"
    data:指定数据集;为pandas DataFrame/array/array list
      #所有数据点都来自该数据集,但自身不直接指定数据点
      #可以使用内置的数据集,也可以自己创建
      #注意:If 'x' and 'y' are specified as names, this should be a "long-form" DataFrame containing those columns. 
           #Otherwise it is treated as "wide-form" data and grouping variables are ignored
    col,row:分别指定按什么变量绘制不同列/行中的子图;为key in data
      #通过col区别的子图在1行上,通过row区别的子图在1列上
    col_wrap:指定每行中子图的最大个数;int
      #即把所有子图分成不同的行,每行最多有col_wrap个子图,故不能与row同时指定
    row_order,col_order:分别指定列/行中子图的排列顺序;list
    palette:指定如何对数据点着色;str/str list/dict/matplotlib colormap
      #hue指定的是可以使用的颜色或区分颜色的依据(size/style类似),palette(markers/dashes类似)指定的是数据点类型与颜色间的映射
      #str是根据cubehelix_palette()的字符串接口自定义的调色板,如"ch:r=-.5,l=.75"(色调语义为num时)
    hue_order:指定图例中hue的顺序;list
      #当hue为num时无效
    hue_norm:tuple/matplotlib.colors.Normalize
            #Normalization in data units for colormap applied to the 'hue' variable when it is numeric. Not relevant 
            #if it is categorical
    sizes:指定size的范围;list/dict
      #size为num时还可以为(,),/均为num,分别指定线宽的最小/大值
    size_order:指定图例中size的顺序;list
      #当size为num时无效
    size_norm:tuple/Normalize object
             #Normalization in data units for scaling plot objects when the 'size' variable is numeric
    markers:指定如何确定数据点的标记样式;bool/dict/list
      #为True时自动确定,为False时全部无标记
    dashes:指定如何确定通过数据点的线条样式;bool/dict/list
      #为True时自动确定,为False时全部为实线
    style_order:图例中style的顺序;list
    legend:指定如何绘制图例;可为"auto"/"brief"/"full"/False
          #If "brief", numeric 'hue' and 'size' variables will be represented with a sample of evenly spaced values. 
          #If "full", every group will get an entry in the legend. If "auto", choose between brief or fullrepresent-
          #ation based on number of levels. If 'False', no legend data is added and no legend is drawn
    kind:"scatter"(默认值)表示调用sns.scatterplot(),用于绘制散点图
         为"line"表示调用lineplot(),用于绘制折线图
           #此时可以通过ci控制阴影,通过estimator控制聚合
    height,aspect:分别指定图的高度/宽度;为num
    facet_kws:指定其他要传递给FacetGrid对象的参数;dict
    units:为vector/key in data
         #Grouping variable identifying sampling units. When used, a separate line will be drawn for each unit with 
         #appropriate semantics, but no legend entry will be added. Useful for showing distribution of experimental 
         #replicates when exact identities are not needed
    g:返回FacetGrid对象

#散点图实例:接上
>>> sns.relplot(x='total_bill',y='tip',data=tips,hue='day',size='size')
<seaborn.axisgrid.FacetGrid object at 0x0000022BE79A21F0>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第2张图片

#线图实例:
>>> fmri=sns.load_dataset("fmri")
>>> sns.relplot(x="timepoint",y="signal",data=fmri)
>>> plt.show()#结果见下图1
>>> sns.relplot(x="timepoint",y="signal",data=fmri,kind="line")
>>> plt.show()#结果见下图2
sns.relplot(x="timepoint",y="signal",data=fmri,kind="line",ci=None)
>>> plt.show()#结果见下图3

Python 第三方模块 绘图 Seaborn模块1_第3张图片
Python 第三方模块 绘图 Seaborn模块1_第4张图片
Python 第三方模块 绘图 Seaborn模块1_第5张图片

#col实例:
>>> tips=sns.load_dataset("tips")
>>> sns.relplot(x="total_bill",y="tip",hue="smoker",col="time",data=tips)
<seaborn.axisgrid.FacetGrid object at 0x00000234041B7DC0>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第6张图片
2.散点图:

[<g>=]sns.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=None,x_jitter=None,y_jitter=None,legend="auto",ax=None,**kwargs])
  #参数说明:其他同sns.relplot(),estimator/ci参见sns.lineplot()
    x_bins,y_bins:list/array/function
    n_boot:指定用于计算置信区间的bootstraps的数量;int
    alpha:指定数据点的透明度;为属于[0,1]float
      #0为完全透明,1为完全不透明
    x_jitter,y_jitter:bool/float
    ax:指定用于绘图的Axes对象;为matplotlib Axes

3.线图:

[<g>=]sns.lineplot([x=None,y=None,hue=None,size=None,style=None,data=None,palette=None,hue_order=None,hue_norm=None,sizes=None,size_order=None,size_norm=None,dashes=True,markers=None,style_order=None,units==None,estimator="mean",ci=95,n_boot=1000,seed=None,sort=True,err_style="band",err_kws=None,legend="auto",ax=None,**kwargs])
  #参数说明:其他同sns.relplot()和sns.scatterplot()
    estimator:指定如何对数据进行聚合;str/None
      #复杂的数据集中1个x值可能有多个y值,这时可以启用聚合;绘制散点图时也可指定该参数,但无效
      #如"mean"表示平均值,None表示关闭聚合
      #另外,hue/style/size也会影响聚合方式
    ci:控制阴影;为num/None/"sd"
      #绘制散点图时也可指定该参数,但无效
      #为num时阴影表示置信区间,如95表示95%的置信区间;为None时表示关闭阴影;为"sd"时阴影表示标准差
    seed:int/numpy.random.Generator/numpy.random.RandomState
        #Seed or random number generator for reproducible bootstrapping
    sort:True,会在绘制前按x对数据进行排序;False,直接使用data中给定的顺序
    err_style:指定如何绘制置信区间;可为"band"(使用translucent error bands)/"bars"(使用discrete error bar)
    err_kws:指定用于控制error bars的外观的其他参数;dict

#sort实例:
>>> df=pd.DataFrame(dict(time=np.arange(500),value=np.random.randn(500).cumsum()))
>>> g=sns.relplot(x="time",y="value",kind="line",data=df)
>>> g.fig.autofmt_xdate()
>>> plt.show()#结果见下图1
>>> df=pd.DataFrame(np.random.randn(500, 2).cumsum(axis=0),columns=["x","y"])
>>> sns.relplot(x="x",y="y",sort=False,kind="line",data=df)
<seaborn.axisgrid.FacetGrid object at 0x000002AB7156DEE0>
>>> plt.show()#结果见下图2

Python 第三方模块 绘图 Seaborn模块1_第7张图片
Python 第三方模块 绘图 Seaborn模块1_第8张图片

#ci与eatimator实例:
>>> fmri=sns.load_dataset("fmri")
>>> fmri
     subject  timepoint event    region    signal
0        s13         18  stim  parietal -0.017552
1         s5         14  stim  parietal -0.080883
2        s12         18  stim  parietal -0.081033
3        s11         18  stim  parietal -0.046134
4        s10         18  stim  parietal -0.037970
...      ...        ...   ...       ...       ...
1059      s0          8   cue   frontal  0.018165
1060     s13          7   cue   frontal -0.029130
1061     s12          7   cue   frontal -0.004939
1062     s11          7   cue   frontal -0.025367
1063      s0          0   cue  parietal -0.006899

[1064 rows x 5 columns]
>>> sns.relplot(x="timepoint",y="signal",kind="line",data=fmri);
<seaborn.axisgrid.FacetGrid object at 0x000002AB1A8AB250>
>>> plt.show()#结果见下图1
>>> sns.relplot(x="timepoint",y="signal",ci=None,kind="line",data=fmri);
<seaborn.axisgrid.FacetGrid object at 0x000002AB1A8D9C40>
>>> plt.show()#结果见下图2
>>> sns.relplot(x="timepoint",y="signal",kind="line",ci="sd",data=fmri);
<seaborn.axisgrid.FacetGrid object at 0x000002AB14860490>
>>> plt.show()#结果见下图3
>>> sns.relplot(x="timepoint",y="signal",estimator=None,kind="line",data=fmri)
<seaborn.axisgrid.FacetGrid object at 0x000002AB14B81070>
>>> plt.show()#结果见下图4
>>> sns.relplot(x="timepoint",y="signal",kind="line",data=fmri,size="region")
<seaborn.axisgrid.FacetGrid object at 0x000002AB14BFA9D0>
>>> plt.show()#结果见下图5
>>> sns.relplot(x="timepoint", y="signal", kind="line", ci="sd", data=fmri);
<seaborn.axisgrid.FacetGrid object at 0x000002AB14860490>
>>> plt.show()#结果见下图6

Python 第三方模块 绘图 Seaborn模块1_第9张图片
Python 第三方模块 绘图 Seaborn模块1_第10张图片
三.可视化分类数据

1个变量取不同的值时,1个变量的值分别如何分布,其中展示第1个变量的不同值的轴称为"分类轴"

要控制以下各函数绘制的图形的大小/形状,需要使用matplotlib命令:
>>> titanic=sns.load_dataset("titanic")
>>> f,ax=plt.subplots(figsize=(7,3))
>>> sns.countplot(y="deck",data=titanic,color="c")
<AxesSubplot:xlabel='count', ylabel='deck'>
>>> plt.show()#结果见下图1
>>> f,ax=plt.subplots(figsize=(14,3))
>>> sns.countplot(y="deck",data=titanic,color="c")
<AxesSubplot:xlabel='count', ylabel='deck'>
>>> plt.show()#结果见下图2

Python 第三方模块 绘图 Seaborn模块1_第11张图片
1.统一的接口:

[<g>=]sns.catplot([x=None,y=None,hue=None,data=None,row=None,col=None,col_wrap=None,estimator=np.mean,ci=95,n_boot=1000,units=None,seed=None,order=None,hue_order=None,row_order=None,col_order=None,kind="strip",height=5,aspect=1,orient=None,color=None,palette=None,legend=True,legend_out=True,sharex=True,sharey=True,margin_titles=False,facet_kws=None,**kwargs])
  #参数说明:其他参数同上;另外,分类图目前不支持size/style
    order:指定不同类别在分类轴上的排序;str list/None
    kind:"strip"(默认值)表示调用sns.stripplot(),用于绘制分类散点图
         为"swarm"表示调用sns.swarmplot(),用于绘制分类散点图
         为"box"表示调用sns.boxplot(),用于绘制分类分布图
         为"violin"表示调用sns.violinplot(),用于绘制分类分布图
         为"boxen"表示调用sns.boxenplot(),用于绘制分类分布图
         为"point"表示调用sns.pointplot(),用于绘制分类估计图
         为"bar"表示调用sns.barplot(),用于绘制分类估计图
         为"count"表示调用sns.countplot(),用于绘制分类估计图
    orient:指定图像的方向;"v"(垂直)/"h"(水平)/None(从数据中推断)
    legend_out:
    sharex,sharey:
    margin_titles

#实例:
>>> tips= sns.load_dataset("tips")
>>> sns.catplot(x="sex",y="tip",data=tips,orient="v")
<seaborn.axisgrid.FacetGrid object at 0x0000023C6F4AFCA0>
>>> plt.show()#结果见下图1
>>> sns.catplot(x="sex",y="tip",data=tips,orient="h")
<seaborn.axisgrid.FacetGrid object at 0x0000023C6F4BDA00>
>>> plt.show()#结果见下图2

Python 第三方模块 绘图 Seaborn模块1_第12张图片
2.分类散点图
(1)普通的分类散点图:

[<g>=]sns.stripplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,jitter=True,dodge=False,orient=None,color=None,palette=None,size=5,edgecolor="gray",linewidth=0,ax=None,**kwargs)
  #参数说明:其他参数同上
    jitter:指定数据点的偏移量;float/bool
      #通过数据点的随机偏移来防止值相同时数据点重合
      #为False表示关闭偏移,为True表示取默认值
    dodge:True,属于同一类别但hue不同的数据点会被分开显示
          为False,属于同一类别但hue不同的数据点会被放在一起显示
    edgecolor:指定数据点边线的颜色;str
      #为"gray"表示由palette决定;还支持16进制颜色码/颜色名/颜色缩写
      #由于linewidth
    linewidth:指定数据点边线的宽度;float

#实例:接上
>>> sns.catplot(x="day",y="total_bill",data=tips,edgecolor="b",linewidth=1)
<seaborn.axisgrid.FacetGrid object at 0x00000233DEC81730>
>>> plt.show()#结果见下图1
>>> sns.catplot(x="day",y="total_bill",data=tips,jitter=0.2,edgecolor="b",linewidth=1)
<seaborn.axisgrid.FacetGrid object at 0x00000233DF3FBCA0>
>>> plt.show()#结果见下图2
>>> sns.catplot(x="day",y="total_bill",data=tips,jitter=False,edgecolor="b",linewidth=1)
<seaborn.axisgrid.FacetGrid object at 0x00000233DF32EDC0>
>>> plt.show()#结果见下图3

Python 第三方模块 绘图 Seaborn模块1_第13张图片
Python 第三方模块 绘图 Seaborn模块1_第14张图片
Python 第三方模块 绘图 Seaborn模块1_第15张图片
(2)蜜蜂图(Bee Swarm Plot):

[<g>=]sns.swarmplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,dodge=False,orient=None,color=None,palette=None,size=5,edgecolor="gray",linewidth=0,ax=None,**kwargs)
  #通过算法计算得到数据点在值相同时的偏移量,该方法更利于对数据点分布的观察
  #参数说明:同上

#实例:接上
>>> sns.catplot(x="day",y="total_bill",data=tips,kind="swarm")
<seaborn.axisgrid.FacetGrid object at 0x000002339C87EFD0>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第16张图片

#dodge实例:接上
>>> sns.catplot(x="day",y="total_bill",hue="sex",data=tips,kind="swarm")
<seaborn.axisgrid.FacetGrid object at 0x00000233DF0150A0>
>>> plt.show()#结果见下图1
>>> sns.catplot(x="day",y="total_bill",hue="sex",data=tips,kind="swarm",dodge=True)
C:\Users\Euler\AppData\Local\Programs\Python\Python38\lib\site-packages\seaborn\categorical.py:1296: UserWarning: 6.8% of the points cannot be placed; you may want to decrease the size of the markers or use stripplot.
  warnings.warn(msg, UserWarning)
<seaborn.axisgrid.FacetGrid object at 0x00000233DED57EB0>
>>> plt.show()#结果见下图2

Python 第三方模块 绘图 Seaborn模块1_第17张图片
Python 第三方模块 绘图 Seaborn模块1_第18张图片
3.分类分布图
(1)箱线图:

[<g>=]sns.boxplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=.75,width=.8,dodge=True,fliersize=5,linewidth=None,whis=1.5,ax=None,**kwargs)
  #参数说明:其他参数同上
    saturation:指定色彩饱和度;float
    width:指定属于相同x/y值所有箱线图的总宽度;float
      #不指定hue时就是单个箱线图的宽度
    fliersize:指定用于用于异常值(离群值)的标记的大小;float
    whis:指定正常值的上界(UR)与下界(DR);float
      #IQR=Q3-Q1,UR=Q3+whis*IQR,DR=Q1-whis*IQR,超出该范围的值会被视为异常值
      #而max/min则是该范围内最大和最小的值

#实例:接上
>>> sns.catplot(x="day",y="total_bill",hue="smoker",kind="box",data=tips)
<seaborn.axisgrid.FacetGrid object at 0x00000233DECA3DF0>
>>> plt.show()#结果见下图1
>>> sns.catplot(x="day",y="total_bill",hue="smoker",kind="box",data=tips,dodge=False,saturation=0)
<seaborn.axisgrid.FacetGrid object at 0x0000023C6F122310>
>>> plt.show()#结果见下图2
>>> sns.catplot(x="day",y="total_bill",kind="box",data=tips,width=0.2)
<seaborn.axisgrid.FacetGrid object at 0x0000023C73A40790>
>>> plt.show()#结果见下图3
>>> sns.catplot(x="day",y="total_bill",hue="smoker",kind="box",data=tips,width=0.2)
<seaborn.axisgrid.FacetGrid object at 0x0000023C6F57DF40>
>>> plt.show()#结果见下图4

Python 第三方模块 绘图 Seaborn模块1_第19张图片
Python 第三方模块 绘图 Seaborn模块1_第20张图片

[<g>=]sns.boxenplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=.75,width=.8,dodge=True,k_depth='tukey',linewidth=None,scale='exponential',outlier_prop=0.007,trust_alpha=0.05,showfliers=True,ax=None,**kwargs)
  #和sns.boxplot()的区别在于,该函数为了显示更多信息而对分布的形状进行了优化,比sns.boxplot()更适于较大的数据集
  #参数说明:其他参数同上
    k_depth:
    scale:
    outlier_prop:
    trust_alpha:
    showfliers:

#实例:
>>> diamonds=sns.load_dataset("diamonds")
>>> sns.catplot(x="color",y="price",kind="boxen",data=diamonds.sort_values("color"))
<seaborn.axisgrid.FacetGrid object at 0x000002E7E909CEE0>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第21张图片
(2)小提琴图:

[<g>=]sns.violinplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,bw="scott",cut=2,scale="area",scale_hue=True,gridsize=100,width=.8,inner="box",split=False,dodge=True,orient=None,linewidth=None,color=None,palette=None,saturation=.75,ax=None,**kwargs)
  #小提琴图是箱线图与核密度图的结合,箱线图展示了分位数的位置,核密度图则展示了任意位置处的密度,根据小提琴图可知晓数据点聚集在哪些位置
  #参数说明:其他参数同上
    bw:指定核密度的带宽;"scott"/"silverman"/float
    cut:float
    scale:指定单个小提琴图的宽度;可为"area"/"count"/"width"
         #为"area"表示每个小提琴图都具有相同的面积
         #为"count"表示根据分箱中数据点的数量来确定小提琴图的宽度
         #为"width"表示每个小提琴图都具有相同的宽度
    scale_hue:指定;bool
    gridsize:int
    inner:指定小提琴图内部的修饰方法;可为"box"/"quartile"/"point"/"stick"/None
         #为"box"(默认值)表示绘制箱线图
         #为"quartile"表示绘制四分位数线
         #为"point"或"stick"表示显示具体数据点或数据线
         #为None表示不进行修饰
    split:是否拆分小提琴图;bool
      #只能在hue有且只有2个不同的值时使用

#实例:
>>> tips=sns.load_dataset("tips")
>>> sns.catplot(x="total_bill",y="day",hue="time",kind="violin",data=tips)
<seaborn.axisgrid.FacetGrid object at 0x000002E7EAA71C70>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第22张图片

#split实例:接上
>>> sns.catplot(x="day",y="total_bill",hue="sex",kind="violin",split=True,data=tips)
<seaborn.axisgrid.FacetGrid object at 0x000002CBD459CFD0>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第23张图片

#inner实例:接上
>>> sns.catplot(x="total_bill",y="day",hue="time",kind="violin",data=tips,inner=None)
<seaborn.axisgrid.FacetGrid object at 0x000002CBDB3DE940>
>>> plt.show()#结果见下图1
>>> sns.catplot(x="total_bill",y="day",hue="time",kind="violin",data=tips,inner="quartile")
<seaborn.axisgrid.FacetGrid object at 0x000002CBD5E3FD00>
>>> plt.show()#结果见下图2
>>> sns.catplot(x="total_bill",y="day",hue="time",kind="violin",data=tips,inner="point")
<seaborn.axisgrid.FacetGrid object at 0x000002CBD5E56910>
>>> plt.show()#结果见下图3
>>> sns.catplot(x="total_bill",y="day",hue="time",kind="violin",data=tips,inner="stick")
<seaborn.axisgrid.FacetGrid object at 0x000002CBD5E5C3D0>
>>> plt.show()#结果见下图4

Python 第三方模块 绘图 Seaborn模块1_第24张图片
4.综合使用分类散点图与分类分布图:

#实例:
>>> tips=sns.load_dataset("tips")
>>> g=sns.catplot(x="day",y="total_bill",kind="violin",inner=None,data=tips)
>>> sns.swarmplot(x="day",y="total_bill",color="k",size=3,data=tips,ax=g.ax)
<AxesSubplot:xlabel='day', ylabel='total_bill'>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第25张图片
5.分类估计图
(1)条形图:

[<g>=]sns.barplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,estimator=np.mean,ci=95,n_boot=1000,units=None,seed=None,orient=None,color=None,palette=None,saturation=.75,errcolor=".26",errwidth=None,capsize=None,dodge=True,ax=None,**kwargs)
  #在完整数据集上运行并获取指定的统计数据(默认为平均值)
  #参数说明:其他参数同上
    errcolor:指定误差条的颜色;str(颜色名/颜色缩写/16进制颜色码)
    errwidth:指定误差条的宽度;float/str
    capsize:

#实例:
>>> titanic=sns.load_dataset("titanic")
>>> sns.catplot(x="sex",y="survived",hue="class",kind="bar",data=titanic)
<seaborn.axisgrid.FacetGrid object at 0x000002E66D889AF0>
>>> plt.show()

Python 第三方模块 绘图 Seaborn模块1_第26张图片

[<g>=]sns.countplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,orient=None,color=None,palette=None,saturation=.75,dodge=True,ax=None,**kwargs)
  #展示的是每个类别中数据点的数量而非统计数据
  #参数说明:其他同上
    x,y:功能同上,但在sns.countplot()中不能同时指定

#实例:接上
>>> sns.catplot(x="deck",kind="count",palette="ch:.25",data=titanic)
<seaborn.axisgrid.FacetGrid object at 0x000002E66A5EF520>
>>> plt.show()#结果见下图1
>>> sns.catplot(y="sex",kind="count",palette="ch:.25",data=titanic)
<seaborn.axisgrid.FacetGrid object at 0x000002E66B21B850>
>>> plt.show()#结果见下图2

Python 第三方模块 绘图 Seaborn模块1_第27张图片
(2)点图:

[<g>=]sns.pointplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,estimator=np.mean,ci=95,n_boot=1000,units=None,seed=None,markers="o",linestyles="-",dodge=False,join=True,scale=1,orient=None,color=None,palette=None,errwidth=None,capsize=None,ax=None,**kwargs)
  #参数说明:其他参数同上
    linestyles:指定连接数据点的线条的样式;str/str list
    join:是否连接属于相同hue值的数据点;bool

#实例:接上
>>> sns.catplot(x="sex",y="survived",hue="class",kind="point",data=titanic)
<seaborn.axisgrid.FacetGrid object at 0x0000023C6ED708B0>
>>> plt.show()#结果见下图1
>>> sns.catplot(x="sex",y="survived",hue="class",kind="point",data=titanic,join=False)
<seaborn.axisgrid.FacetGrid object at 0x0000023C7307B0D0>
>>> plt.show()#结果见下图2

Python 第三方模块 绘图 Seaborn模块1_第28张图片

你可能感兴趣的:(#,Python,#,数据分析,python,数据分析,seaborn,数据可视化)