python中利用seaborn绘制概率分布直方图以及密度图

本文介绍了如何使用Python的seaborn库绘制概率分布直方图和核密度图,以分析数据的统计特性。通过导入seaborn、matplotlib等相关库,利用distplot函数绘制直方图,并可以选择性地显示核密度曲线和拟合分布。代码示例中展示了绘制直方图的过程,包括设置风格、颜色和拟合分布等参数,帮助理解数据可能的分布形式。

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

当我们想要弄清楚变量的统计特性时,往往想知道它是服从什么分布的,这时候就需要绘制概率分布直方图

在python中我们可以使用seaborn库来进行绘制:

Seaborn是一个基于matplotlib的Python数据可视化库。它为绘制有吸引力和信息丰富的统计图形提供了高级界面。

首先需要导入seaborn库:

import seaborn as sns

在seaborn中的distplot函数可以完成概率分布直方图和密度图的绘制

seaborn.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)

下面直接给出我绘制时用到的代码:

import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
from scipy.stats import norm
from scipy.stats import laplace

txt=[]
data=[]
path = r"E:\rtklib\rtklib-test1\stav.txt"

#mpl.rc("figure", figsize=(9, 5))
with open(path, "r") as f:
    txt.append(f.readlines())

for i in range(len(txt[0])):
    data.append(float(txt[0][i].strip().split(',')[1]))

sns.set_palette("hls")
#sns.set_style("whitegrid")
plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
g = sns.distplot(data,
                 hist=True,
                 kde=True,  # 开启核密度曲线kernel density estimate (KDE)
                 kde_kws={'linestyle': '--', 'linewidth': '1', 'color': '#c72e29',
                          # 设置外框线属性
                          },
                 fit=norm,
                 color='#098154',
                 axlabel='Standardized Residual',  # 设置x轴标题

                 )

plt.show()

其中,distplot的参数中,kde表示是否绘制核密度曲线;fit是选择拟合的分布,来分析数据究竟是符合什么分布,seaborn中提供了很多分布,可以在这里找到,使用时如上我的代码中导入的那样就可以:连续分布类型
最后的效果图如下:
在这里插入图片描述
绘制过程中没有加入太多修饰,如果想要好看一点,可以修改一些参数:
其中一个有设置背景 的风格,主要有以下几种:

sns.set_style("whitegrid")
sns.set_style("dark")
sns.set_style("darkgrid")
sns.set_style("white")
sns.set_style("ticks")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十八与她

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值