Python 第三方模块 绘图 Seaborn模块1_14.0% of the points cannot be placed; you may want-程序员宅基地

技术标签: python  数据分析  seaborn  数据可视化  

中文文档: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

在这里插入图片描述
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时还可以为(<min>,<max>),<min>/<max>均为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()

在这里插入图片描述

#线图实例:
>>> 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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#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()

在这里插入图片描述
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

在这里插入图片描述
在这里插入图片描述

#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

在这里插入图片描述
在这里插入图片描述
三.可视化分类数据

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

在这里插入图片描述
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

在这里插入图片描述
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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(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()

在这里插入图片描述

#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

在这里插入图片描述
在这里插入图片描述
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

在这里插入图片描述
在这里插入图片描述

[<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()

在这里插入图片描述
(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()

在这里插入图片描述

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

在这里插入图片描述

#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

在这里插入图片描述
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()

在这里插入图片描述
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()

在这里插入图片描述

[<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

在这里插入图片描述
(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

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46131409/article/details/109908509

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签