[英]Plot PDF of Pareto distribution in Python
我有一個特定的帕累托分布。 例如,
Pareto(beta=0.00317985, alpha=0.147365, gamma=1.0283)
我從這個答案中獲得,現在我想 plot matplotlib 中的概率密度圖Function (PDF)。 所以我相信x軸都是正實數,y軸也是一樣的。
我究竟如何才能獲得相應的 PDF 信息和 plot 呢? 以編程方式獲得數學 PDF function 或坐標是此問題的要求。
更新:
drawPDF
方法返回一個圖形 object,其中包含 PDF 的坐標。 但是,我不知道如何以編程方式訪問這些坐標。 我當然不想將 object 轉換為字符串,也不想使用正則表達式來提取信息:
In [45]: pdfg = distribution.drawPDF()
In [46]: pdfg
Out[46]: class=Graph name=pdf as a function of X0 implementation=class=GraphImplementation name=pdf as a function of X0 title= xTitle=X0 yTitle=PDF axes=ON grid=ON legendposition=topright legendFontSize=1
drawables=[class=Drawable name=Unnamed implementation=class=Curve name=Unnamed derived from class=DrawableImplementation name=Unnamed legend=X0 PDF data=class=Sample name=Unnamed implementation=class=Sam
pleImplementation name=Unnamed size=129 dimension=2 data=[[-1610.7,0],[-1575.83,0],[-1540.96,0],[-1506.09,0],[-1471.22,0],[-1436.35,0],[-1401.48,0],[-1366.61,0],...,[-1331.7,6.95394e-06],[2852.57,6.85646e-06]] color
=red fillStyle=solid lineStyle=solid pointStyle=none lineWidth=2]
我假設您要執行不同的任務:
這些需求中的每一個都需要不同的腳本。 請讓我詳細說明它們。
我首先創建Pareto
分布:
import openturns as ot
import numpy as np
beta = 0.00317985
alpha = 0.147365
gamma = 1.0283
distribution = ot.Pareto(beta, alpha, gamma)
print("distribution", distribution)
對於 plot PDF,使用drawPDF()
方法。 這將創建一個ot.Graph
可以直接在 Jupyter Notebook 或 IPython 中查看。 我們可以使用View
強制創建 plot :
import openturns.viewer as otv
graph = distribution.drawPDF()
otv.View(graph)
這情節:
要在單個點計算 PDF,請使用computePDF(x)
,其中x
是ot.Point()
。 這也可以是 Python list
或tuple
或一維 numpy array
,因為轉換由 OpenTURNS 自動管理:
x = 500.0
y = distribution.computePDF(x)
print("y=", y)
前面的腳本打印:
y= 5.0659235352823877e-05
要計算一系列值的 PDF,我們可以使用computePDF(x)
,其中 x 是ot.Sample()
。 這也可以是 Python list
列表或 2D numpy array
,因為轉換由 OpenTURNS 自動管理。
x = ot.Sample([[v] for v in np.linspace(0.0, 1000.0)])
y = distribution.computePDF(x)
print("y=", y)
前面的腳本打印:
y=
0 : [ 0 ]
1 : [ 0.00210511 ]
[...]
49 : [ 2.28431e-05 ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.