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

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法