python 画频率分布直方图_[python常用图件绘制#03]Gamma分布拟合图

该博客介绍了如何使用Python的Scipy和Seaborn库进行Gamma分布拟合,并展示了如何绘制相关直方图和线性回归曲线。通过`Linearfitplot`类,用户可以自定义数据并获取拟合参数、R方值等信息。此外,还提供了修改Gamma分布参数的方法。
摘要由CSDN通过智能技术生成

〇、Gamma分布主要参数说明

对于一组连续的随机变量x来说,若它的概率密度分布函数f(x|α,β)符合下式时:

3bba39fc3ed31b8d287885ab46b3a85381e91953.png0-1

则将这个概率密度函数称为伽码(Г,Gamma)分布,记作 X ~Г(α,β),其中α称为形状参数,β称为尺度参数。通过绘图,可对比不同α,β取值下曲线的形态。

d4ee47ef70d96a3df86c35f70d0ec3aada4dbb99.png0-2

绘制此图的代码如下:

113c2c84e0c20140d90b9376c765b552e30d3fc7.png0-3

一、功能介绍

输入:某样本数据

样本分组数

输出:直方图(纵轴为频率)

Gamma分布拟合曲线

显示拟合参数及R方值

3047c687156b62ade293fd6d012959e8efa1ab0d.png1-1

b4b8c9bbc931d94ea3131efdd9266f481b0d7dec.png1-2

18e79a89ba2a9bd6531bcc6c425b8a618cb851e1.png1-3

二、代码

97d2e040389bac746affd37f84b6bd9f80e18a6f.png2-1

import random

from scipy import stats

import matplotlib.pyplot as plt

import seaborn as sns

import pandas as pd

import numpy as np

class Linearfitplot:

def __init__(self, x, y, legends=None, labels=None, fsize=(8, 8), show_info=1):

"""

:param x: 数据x列表

:param y: 数据y列表

:param legends: 图例名,默认为 "线性拟合结果", "实测值"

:param labels:坐标轴标题名,默认为 "数据x", "数据y"

:param show_info:是否显示拟合结果信息

"""

if legends is None:

legends = ["线性拟合结果", "实测值"]

if labels is None:

labels = ["数据x", "数据y"]

self.x = x

self.y = y

self.fsize = fsize

self.legends = legends

self.labels = labels

self.show_info = show_info

def change_legend(self, new_legends):

self.legends = new_legends

def change_label(self, new_labels):

self.labels = new_labels

def rsquared(self, show_info_or_not=0):

"""

:param show_info_or_not: 布尔类型,当其为真时显示信息

:param x:x数据序列

:param y:y数据序列

:return:

r: 相关系数

p:显著性

slope:曲线斜率

intercept:截距

"""

ws = 3  # 各参数保留的小数位数

check_p = "不显著"

slope, intercept, *useless = stats.linregress(self.x, self.y)

r, p = stats.pearsonr(self.x, self.y)

if p <= 0.01:

check_p = "非常显著**"

elif p <= 0.05:

check_p = "显著*"

slope, intercept, r, p = round(slope, ws), round(intercept, ws), round(r, ws), round(p, ws)

info = "y = {0}x + {1}\nr-square = {2}\np:{3};{4}".format(slope, intercept, round(r**2, ws), p, check_p)

if show_info_or_not:

return info

else:

return slope, intercept, r, p

def draw_plot(self, *args):

"""

绘制图像,包含散点图和拟合线

:param args:

:return:

"""

# 设置画布大小

plt.figure(figsize=self.fsize)

# 生成df

x_name, y_name = "x", "y"

dict_data = {"x": self.x,

"y": self.y

}

df = pd.DataFrame(dict_data)

# 计算并绘制拟合曲线

z1 = np.polyfit(x_data, y_data, 1)

p1 = np.poly1d(z1)  # 将系数代入方程,得到函式p1

yvals_data = p1(df[x_name])

# 绘制曲线

sns.set_style("darkgrid")

plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文

sns.set_context("talk", font_scale=1)

sns.lineplot(x_data, yvals_data, color="r", lw=1, label=self.legends[0])

sns.scatterplot(x=x_name, y=y_name, data=df, *args, label=self.legends[1])

plt.xlabel(self.labels[0])

plt.ylabel(self.labels[1])

info_show = self.rsquared(self.show_info)

plt.text(self.fsize[0] * 0.6, self.fsize[0] * 0.1, info_show, size=self.fsize[0] * 1.8)

plt.tight_layout()

if __name__ == "__main__":

len_data = 10  # 测试数据序列的长度

x_data = list(range(len_data))  # x轴数据序列

y_data = [i*2+1+random.uniform(0, 1) for i in x_data]

plot1 = Linearfitplot(x_data, y_data, fsize=(10, 6.18))

plot1.draw_plot()

plt.show()

本例中α、β参数的值默认根据经验公式(不具有有普适性)确定,可用下文代码中的Gammafitplot类的change_para()方法进行修改,如下:5c774b34115f78b5d16e053f38a82bcd407e6e52.png2-2

weixin_39709367
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
像增强】使用 Albumentations Python 库(01)
gongdiwudu的专栏
08-24 1209
像增广是通过对可用像进行微小更改来创建新训练像的过程。这包括更改像的亮度或对比度、裁剪像的一部分、翻转或旋转原始像等更改。使用对原始标记像的这些转换,可以增加像数量。Albumentations 有效地实现了丰富的 Image Transform 操作,并执行 同时提供简洁而强大的像增广界面 不同的计算机视觉任务,包括对象分类、分割、 和检测。
Python实现连续分布解析
Mr数据杨
09-25 697
本文展示了正态分布、均匀分布、指数分布伽马分布、贝塔分布等常见的连续概率分布,并结合实际场景给出了详细的应用示例及Python代码。这些代码示例不仅展示了如何生成随机样本,还通过概率密度函数的可视化帮助我们理解分布的特性与应用场景。从自然现象的数据分析,到产品寿命的预测,连续分布为我们提供了强大的建模工具。在科学研究和工程应用中,合理选择并使用这些分布可以为复杂问题提供有效的解决方案。通过本文的示例和应用,读者可以更好地掌握不同连续概率分布的使用方法,并运用到实际数据分析和建模工作中去。
Python拟合gamma分布
最新发布
corn1949的博客
02-24 773
Python拟合gamma分布
pythongamma 分布_用(python)Scipy拟合gamma分布
weixin_39585886的博客
12-05 2419
我对ss.gamma.rvs函数不满意,因为它可以生成负数,这是gamma分布不应该有的。所以我通过期望值=平均值(data)和方差=var(data)对样本进行了拟合(详见维基百科),并编写了一个函数,该函数可以在不使用scipy的情况下生成伽马分布的随机样本(我发现很难正确安装,附注):import randomimport numpydata = [6176, 11046, 670, 614...
[python常用图件绘制#03]Gamma分布拟合
Salierib的博客
01-29 1万+
〇、Gamma分布主要参数说明 对于一组连续的随机变量x来说,若它的概率密度分布函数f(x|α,β)符合下式时: 则将这个概率密度函数称为伽码(Г,Gamma分布,记作 X ~Г(α,β),其中α称为形状参数,β称为尺度参数。通过绘,可对比不同α,β取值下曲线的形态。 绘制的代码如下: import numpy as np import matplotlib.pyplot as plt...
Python实现一个拟合伽马分布的函数,函数定义为Gamma(list_x,list_y),其中list_x为横坐标列表,list_y为纵坐标列表,返回值为伽马分布的参数。...
weixin_35749440的博客
02-17 998
可以使用scipy库中的scipy.stats.gamma.fit函数来实现,该函数接受一个参数,即list_y,如下所示:params = scipy.stats.gamma.fit(list_y)。此外,还可以使用numpy库中的numpy.polyfit函数来实现,该函数接受两个参数,即list_x和list_y,如下所示:params = numpy.polyfit(list_x, lis...
Python统计之Gamma分布
微小冷的学习笔记
12-14 4634
Poisson分布指的是,单个事件在某一刻发生的概率。Gamma分布更进一步,指的是某个事件在某个时刻发生第$n$次的概率。
pythongamma 分布,用(python)Scipy拟合伽玛分布
weixin_42659194的博客
01-28 1766
Can anyone help me out in fitting a gamma distribution in python? Well, I've got some data : X and Y coordinates, and I want to find the gamma parameters that fit this distribution... In the Scipy do...
python绘制直方图显示数字_Python表数据可视化Seaborn:1. 风格| 分布数据可视化-直方图| 密度| 散点...
weixin_39606244的博客
11-23 769
conda install seaborn 是安装到jupyter那个环境的1. 整体风格设置对表整体颜色、比例等进行风格设置,包括颜色色板等调用系统风格进行数据可视化set() / set_style() / axes_style() / despine() / set_context()import numpy as npimport pandas as pdimport matplot...
python基础笔记(四)_seaborn基础语法
FlizhN的博客
07-17 1307
表数据可视化:seaborn 整体风格设置 对表整体颜色、比例等进行风格设置,包括颜色色板等 sns.set();seaborn默认设置风格 sns.set_style();风格选择包括:"white", "dark", "whitegrid", "darkgrid", "ticks" sns.despine() 设置表坐标轴 top, right, left, bottom:布尔型,为True时不显示 默认只显示左边和下边坐标轴 sns.axes_style() 设置局部表风
Python 数据可视化详解
热门推荐
悦分享
10-18 2万+
数据可视化是一种将庞杂抽象的数据转化为直观易懂的形的数据呈现技术,它能帮助我们快速把握数据的分布和规律,更加轻松地理解和探索信息。在当今这个信息爆炸的时代,数据可视化越来越受重视。
matlab拟合gamma分布,使用matlab拟合Gamma分布
weixin_29617841的博客
03-17 7817
任务描述: 有一批数据,需要将其histogram拟合Gamma分布,histogram分20个bin,从0到100。结果如下所示:实现步骤:1. 装载数据进来,数据文件是data.for.hist.txt,文件结构是一列无header的数据,共43个数据。>> data=load(‘data.for.hist.txt’)data是43×1的矢量。2. 打开distribution...
如何将 Gamma 分布拟合到 R 中的数据集
Mrrunsen的博客
06-03 645
当您尝试在 R 中使用“ %>% ”函数而不首先加载dplyr包时,通常会发生此错误。要修复此错误,您只需先加载 dplyr 包:
python伽马分布和指数分布地概率密度曲线对照
m0_73624835的博客
07-21 618
分别出X=1/3,1,2地指数分布概率密度曲线。
python绘制Gamma 曲线
ArmyD的博客
06-07 1590
绘制Gamma变换的曲线
python怎么生成_python如何生成各种随机分布
weixin_39779004的博客
11-23 186
在学习生活中,我们经常性的发现有很多事物背后都有某种规律,而且,这种规律可能符合某种随机分布,比如:正态分布、对数正态分布、beta分布等等。所以,了解某种分布对一些事物有更加深入的理解并能清楚的阐释事物的规律性。现在,用python产生一组随机数据,来演示这些分布:import randomimport matplotlibimport matplotlib.pyplot as pltSAMPL...
python turtle代码示例-Python turtle.left方法代码示例
weixin_39673184的博客
11-11 2802
本文整理汇总了Python中turtle.left方法的典型用法代码示例。如果您正苦于以下问题:Python turtle.left方法的具体用法?Python turtle.left怎么用?Python turtle.left使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在模块turtle的用法示例。在下文中一共展示了turtle.left方法的...
gamma分布python代码_Python sympy.stats.NormalGamma()用法及代码示例
weixin_39838829的博客
12-17 746
借助于sympy.stats.NormalGamma()方法,我们可以创建具有多元正态伽马分布的双变量联合随机变量。用法: sympy.stats.NormalGamma(syms, mu, lamda, alpha, beta)参数:syms:the symbol, for identifying the random variablemu:a real number, the mean of ...
MATLAB加伽玛分布噪声像和MATLAB加伽玛分布噪声直方图
临风暖阳的博客
04-10 1080
clc,clear,close all warning off feature jit off im = imread(‘coloredChips.png’); Z1 = imnoise_gamma(size(im,1),size(im,2),1,0.1); Z1 = im2uint8(Z1); % 类型转换 figure(‘color’,[1,1,1]), im(:,:,1) = im(:,:,1) + Z1; % R im(:,:,2) = im(:,:,2) + Z1; % G im(:,:.
python非中心gamma分布
05-24
非中心gamma分布,你需要使用 Python 中的 SciPy 库来生成分布并使用 Matplotlib 库来绘制形。以下是一个基本的示例代码: ```python import scipy.stats as stats import matplotlib.pyplot as plt import numpy as np # 定义分布参数 shape = 2.5 # 形状 scale = 1.0 # 比例 nc = 2.0 # 非中心参数 # 生成分布数据 dist = stats.ncx2(shape, nc=nc, scale=scale) x = np.linspace(dist.ppf(0.01), dist.ppf(0.99), 100) # 绘制分布 fig, ax = plt.subplots() ax.plot(x, dist.pdf(x), 'r-', lw=5, alpha=0.6, label='noncentral gamma pdf') # 添加标签和标题 ax.set_xlabel('X') ax.set_ylabel('Probability density') ax.set_title('Noncentral Gamma Distribution') # 显示像 plt.show() ``` 在这个例子中,我们使用了 SciPy 库中的 `ncx2` 函数来创建非中心 gamma 分布对象。然后,我们使用 `linspace` 函数生成一组均匀分布的数据点,以便我们可以绘制 PDF。最后,我们使用 Matplotlib 库的 `plot` 函数来绘制 PDF,并使用 `set_xlabel`, `set_ylabel`, 和 `set_title` 函数添加标签和标题。调用 `show` 函数来显示像。
写文章

热门文章

  • 音箱一通电就嗡嗡响已修好_多媒体音箱常见故障和解决办法?学习下 36389
  • 信息熵的计算公式_什么是信息熵? 17865
  • 这个安装macos high sierra应用程序副本已损坏_macOS xx应用程序副本已损坏,不能安装macOS... 12477
  • r语言ggplot2 多线图绘制图例_R语言绘制箱线图示例 7860
  • 多项式拟合怎么确定次数_机器学习 | 多项式回归处理非线性问题 6622

最新文章

  • 9月17日服务器维护,2015年9月17日服务器维护公告
  • 微信代聊天服务器,如何在微信小程序里实现聊天室功能
  • 服务器系统208r2系统英文,英特尔® 服务器系统 R2208WT2YSR
2021年178篇
2020年198篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司网站建设推广公司网站优化兰州业网站优化排名海北企业网站优化网站自然优化哪家强坑梓专业外贸网站优化老网站怎么优化沙田网站关键词优化价格阳江餐饮网站seo优化网站关键字优化多久迪庆如何设计网站优化网站优化推广哪家靠谱整站网站优化代办铜陵网站优化怎么选德州自适应网站优化竹子系统做的网站可以优化么天津网站整站优化公司荥阳市网站优化费用高不高青岛企业网站建设优化服务长宁区公司官方网站优化哪家好seo网站优化有什么好处阳春网站基础优化深圳软件网站优化费用多少网站优化标签修改长春正规的网站优化息烽县网站优化罗湖百科网站优化的有效方式新都网站优化有什么用衡阳网站综合优化虹口区企业网站优化案例新泰网站优化推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化