#sns.distplot()用法 #sns.distplot()集合了matplotlib的hist()与sns.kdeplot()功能, # 增加了rugplot分布观测显示与理由,scipy库拟合参数分布的新颖用途 #参数如下 #sns.distplot(a,bins=None,hist=True,kde=True,rug=False,fit=None # hist_kws=None,kde_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) plt.show() #通过hist和kde参数调节是否显示直方图及核密度估计(默认hist,kde均为True) fig,axes=plt.subplots(1,3) #创建一个1行3列的图片 sns.distplot(x,ax=axes[0]) sns.distplot(x,hist=False,ax=axes[1]) #不显示直方图 sns.distplot(x,kde=False,ax=axes[2]) #不显示核密度 plt.show() #bin:int或list,控制直方图的划分 fig,axes=plt.subplots(1,2) sns.distplot(x,kde=False,bins=20,ax=axes[0])#分成20个区间 #以以0,1,2,3为分割点,形成区间[0,1],[1,2],[2,3],区间外的值不计入,要读取结束点4 #则需要加上,endpoint=True(该参数默认不写为false,即不显示) sns.distplot(x,kde=False,bins=[x for x in range(4)],ax=axes[1]) #rag:控制是否生成观测数值的小细条 fig,axes=plt.subplots(1,2) sns.distplot(x,rug=True,ax=axes[0]) #左图 sns.distplot(x,ax=axes[1]) #右图 plt.show() #fit:控制拟合的参数分布图形,能够直观的评估它与观察数据的对应关系(黑色线条为确定的分布) from scipy.stats import * sns.distplot(x,hist=False,fit=norm) #拟合标准正态分布 plt.show() #hist_kws,kde_kws,rug_kws,fit_kws参数接受字典类型,可以定义更多高级的样式 sns.distplot(x,kde_kws={"label":"KDE"},vertical=True,color="y") plt.show() #norm_hist:若为True,则直方图高度显示密度⚠️而非计数( # 含有kde图像中默认为True,即kde为True,则norm_hist则直接为True 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]) #右图 plt.show()
distplot——基于python语言可视化
最新推荐文章于 2024-05-20 20:26:39 发布