zoukankan      html  css  js  c++  java
  • sns.distplot()用法

    sns.distplot()集合了matplotlib的hist()于sns.kdeplot()功能,增了rugplot分布观测显示与理由scipy库fit拟合参数分布的新颖用途

    #参数如下
    sns.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)

    直方图:先分箱,然后计算每个分箱频数的数据分布,

    和条形图的区别,条形图有空隙,直方图没有,条形图一般用于类别特征,直方图一般用于数字特征(连续型)
    多用于y值和数字(连续型)特征的分布画图

    import matplotlib.pyplot as plt 
    import numpy as np
    import pandas as pd 
    import seaborn as sns 
    sns.set()  #切换到sns的默认运行配置
    
    x=np.random.randn(100)
    sns.distplot(x)

    通过hist和kde参数调节是否显示直方图及核密度估计(默认hist,kde均为True)

    fig,axes=plt.subplots(1,3)  #创建一个1行三列的图片
    sns.distplot(x,ax=axes[0])
    sns.distplot(x,hist=False,ax=axes[1])  #不显示直方图
    sns.distplot(x,kde=False,ax=axes[2])  #不显示核密度

     bins:int或list,控制直方图的划分

    #bins
    fig,axes=plt.subplots(1,2) 
    sns.distplot(x,kde=False,bins=20,ax=axes[0]) #分成20个区间
    sns.distplot(x,kde=False,bins=[x for x in range(4)],ax=axes[1]) #以0,1,2,3为分割点,形成区间[0,1],[1,2],[2,3],区间外的值不计入。

    rag:控制是否生成观测数值的小细条

    #rag
    fig,axes=plt.subplots(1,2)
    sns.distplot(x,rug=True,ax=axes[0]) #左图
    sns.distplot(x,ax=axes[1]) #右图

     fit:控制拟合的参数分布图形,能够直观地评估它与观察数据的对应关系(黑色线条为确定的分布)

    #fit
    from scipy.stats import *
    sns.distplot(x,hist=False,fit=norm) #拟合标准正态分布

     hist_kws, kde_kws, rug_kws, fit_kws参数接收字典类型,可以自行定义更多高级的样式

    #
    sns.distplot(x,kde_kws={"label":"KDE"},vertical=True,color="y")

     norm_hist:若为True, 则直方图高度显示密度而非计数(含有kde图像中默认为True)

    #norm_hist
    fig,axes=plt.subplots(1,2)
    sns.distplot(x,norm_hist=True,kde=False,ax=axes[0]) #左图
    sns.distplot(x,kde=False,ax=axes[1]) #右图

     全部代码

     1 import matplotlib.pyplot as plt 
     2 import numpy as np
     3 import pandas as pd 
     4 import seaborn as sns 
     5 sns.set()  #切换到sns的默认运行配置
     6 
     7 x=np.random.randn(100)
     8 sns.distplot(x)
     9 
    10 
    11 fig,axes=plt.subplots(1,3)  #创建一个1行三列的图片
    12 sns.distplot(x,ax=axes[0])
    13 sns.distplot(x,hist=False,ax=axes[1])  #不显示直方图
    14 sns.distplot(x,kde=False,ax=axes[2])  #不显示核密度
    15 
    16 
    17 #bins
    18 fig,axes=plt.subplots(1,2) 
    19 sns.distplot(x,kde=False,bins=20,ax=axes[0]) #分成20个区间
    20 sns.distplot(x,kde=False,bins=[x for x in range(4)],ax=axes[1]) #以0,1,2,3为分割点,形成区间[0,1],[1,2],[2,3],区间外的值不计入。
    21 
    22 
    23 #rag
    24 fig,axes=plt.subplots(1,2)
    25 sns.distplot(x,rug=True,ax=axes[0]) #左图
    26 sns.distplot(x,ax=axes[1]) #右图
    27 
    28 
    29 #fit
    30 from scipy.stats import *
    31 sns.distplot(x,hist=False,fit=norm) #拟合标准正态分布
    32 
    33 
    34 #
    35 sns.distplot(x,kde_kws={"label":"KDE"},vertical=True,color="y")
    36 
    37 #norm_hist
    38 fig,axes=plt.subplots(1,2)
    39 sns.distplot(x,norm_hist=True,kde=False,ax=axes[0]) #左图
    40 sns.distplot(x,kde=False,ax=axes[1]) #右图
  • 相关阅读:
    Java技术体系
    博客开篇
    在Web api2 中传递复杂参数的一点心得
    java内存区域
    nginx负载均衡配置
    nginx反向代理配置
    nginx部署静态网站
    nginx在Centos7.5下源码安装和配置
    Java中的类 serialVersionUID 在序列化的时候有什么用?
    linux开放防火墙端口
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13384535.html
Copyright © 2011-2022 走看看