当我们想要弄清楚变量的统计特性时,往往想知道它是服从什么分布的,这时候就需要绘制概率分布直方图
在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)
下面直接给出我绘制时用到的代码:文章来源:https://www.toymoban.com/news/detail-603406.html
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中提供了很多分布,可以在这里找到,使用时如上我的代码中导入的那样就可以:连续分布类型
最后的效果图如下:
绘制过程中没有加入太多修饰,如果想要好看一点,可以修改一些参数:
其中一个有设置背景 的风格,主要有以下几种:文章来源地址https://www.toymoban.com/news/detail-603406.html
sns.set_style("whitegrid")
sns.set_style("dark")
sns.set_style("darkgrid")
sns.set_style("white")
sns.set_style("ticks")
到了这里,关于python中利用seaborn绘制概率分布直方图以及密度图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!