python创建服从正态分布的频次直方图和KDE图

本文介绍了使用Python进行数据可视化的方法,包括用numpy生成正态分布数据,用matplotlib和seaborn绘制一维正态分布直方图,用KDE获取变量分布的平滑估计,将频次直方图和KDE结合,以及绘制二维KDE图等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

import numpy as np
from numpy.linalg import cholesky
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

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

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

 

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

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

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

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

 

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

sns.distplot(data)
sns.distplot(data2)

4.绘制二维KDE图

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

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

 

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值