微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Weibull 非超标图轴“x”

如何解决Weibull 非超标图轴“x”

我正在研究 Weibull 分布。我已经估计了我的数据的参数,并得到了概率图。如下面的代码所示,在概率图上我“粘贴”了我获得的参数值。

但是,还有其他方法可以将它们附加到情节中吗?

一个问题是:我怎样才能得到一个在轴'x'上的不超过概率和在轴'y'上的变量的图,反过来,我包括三个参数的 weibull 调整。我要找的情节是这样的(或类似的)。

Weibull Non-exceedance curve

我写的python代码如下:

from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
plt.style.use('classic')
%matplotlib inline
import seaborn as sns
from scipy.stats import exponweib,probplot as pp,weibull_min
import probscale
from probscale.viz import probplot as pp_scale,plot_pos
import statsmodels.distributions
from scipy.optimize import fmin
import statsmodels.api as sm

datos = pd.read_csv('01_ATN_ACCE_his_1985_2005.csv')
Hs = datos['Hs']
plt.hist(Hs,density = True,alpha = 0.5,bins=45)
shape,loc,scale = weibull_min.fit(Hs)
x = np.linspace(Hs.min(),Hs.max(),500)
plt.plot(x,weibull_min(shape,scale).pdf(x))
plt.xlabel("Hs (m)")
plt.ylabel("%")
plt.title("Ajuste Weibull sobre Hs")
fig,ax= plt.subplots(figsize=(12,6))
pp(Hs,dist = weibull_min(shape,scale),fit=True,plot=ax,rvalue=True)
plt.text(0.5,7,'A=',fontsize=14)
plt.text(0.7,'{0:.2f}'.format(scale),fontsize=14)
plt.text(0.5,6.5,'B=','{0:.2f}'.format(loc),6,'C=','{0:.2f}'.format(shape),fontsize=14)
ax.get_children()[2].set_fontsize(14) 
ax.get_children()[2].set_position((0.5,5.5))

解决方法

如果无法访问您的数据集,就无法复制您的脚本。

您附加的图像在 x 轴上具有概率,在 y 轴上具有速度。这几乎看起来像是 x 轴和 y 轴交换的 probability plot

我建议您绘制概率图格式(y 轴上的概率),因为这在多个软件应用程序中更为常见且可用。

在 Python 中,您可能会考虑使用 reliability 来拟合概率分布并生成概率图。虽然可靠性是为可靠性工程设计的,但“失败”实际上可以是任何东西,因此您的速度数据会很好(前提是拟合威布尔分布时它是非负的)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。