当前位置:   article > 正文

python创建服从正态分布的频次直方图和KDE图_sns.kdeplot 99%

sns.kdeplot 99%

画频次直方图需要先用numpy生成服从正态分布的数据,然后用matplotlib画图。其中seaborn也是python的一个数据可视化的库。用seaborn画图比matplotlib更方便和好看点,其底层也是matplotlib.

  1. import numpy as np
  2. from numpy.linalg import cholesky
  3. import matplotlib.pyplot as plt
  4. import seaborn as sns
  5. sns.set()

1.绘制一维正态分布直方图

  1. data=np.random.normal(0,1,1000)#生成一组期望值=0,标准差=1的标准正太分布数组,数组中有1000个元素
  2. plt.hist(data,bins=10,alpha=0.5)
  3. data2=np.random.normal(0,1,1000)#生成第二组数据
  4. plt.hist(data2,bins=10,alpha=0.5)

 

还可以用np.random.randn生成正态分布数据,sigma是标准差,mu是期望值

data= sigma* np.random.randn(1000) + mu

 2.用KDE获取变量分布的平滑估计。

  1. sns.kdeplot(data,shade=True)
  2. sns.kdeplot(data2,shade=True)

 

 3.频次直方图和KDE的结合

  1. sns.distplot(data)
  2. sns.distplot(data2)

4.绘制二维KDE图

当输入的数据是二维时,sns.kdeplot就可绘制一个二维的数据可视化图。

  1. data0=pd.DataFrame(np.array([data,data2]).T,columns=['x','y'])#将data,data2封装成DataFrame的x,y列,方便后面进行联合分布。
  2. sns.kdeplot(data0)

 

绘制两个变量的联合分布与单变量的独立分布。

  1. with sns.axes_style('white'):#使用白色背景
  2. sns.jointplot('x','y',data0,kind='kde')

修改jointplot的参数,用六边形块代替频次直方图

同时绘制了相对应的散点图

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号