我有一些极地[R,theta]
数据,我希望将其表示为pdf。
据我了解,我只是将数据标准化,因此其积分为1。
我使用 numpy.trapz()
方法,但我对语法有点不确定。
下面的代码显示了我的尝试,我希望输出在( 0, 1 >
范围内,但它们看起来有点高。
我是否正确使用.trapz()
方法?
.trapz()
是否适合循环数据?
theta = np.linspace( -np.pi, np.pi, 50 )
r = np.array([ 1.23445554e-02, 3.03557798e-02, 7.02699393e-02,
1.51352457e-01, 3.00238850e-01, 5.43818199e-01,
8.93133849e-01, 1.32293971e+00, 1.76077447e+00,
2.10102936e+00, 2.24555703e+00, 2.15016660e+00,
1.84666100e+00, 1.42543142e+00, 9.91689535e-01,
6.24126941e-01, 3.56994042e-01, 1.86663166e-01,
8.98562553e-02, 4.01629846e-02, 1.68354083e-02,
6.69424846e-03, 2.55748908e-03, 9.52021934e-04,
3.50547486e-04, 1.29726513e-04, 4.90546282e-05,
1.92776373e-05, 8.00850696e-06, 3.57673721e-06,
1.74551297e-06, 9.45084654e-07, 5.75501932e-07,
3.98658528e-07, 3.16843272e-07, 2.90421340e-07,
3.07486145e-07, 3.75264328e-07, 5.25073662e-07,
8.35385632e-07, 1.49531795e-06, 2.97409444e-06,
6.48232116e-06, 1.52539070e-05, 3.81503341e-05,
9.97843762e-05, 2.68504223e-04, 7.31213584e-04,
1.98302971e-03, 5.27234229e-03
]
)
r_pdf = r / np.trapz( r, x = theta )
print r_pdf.max()
fig = plt.figure()
ax = fig.add_subplot( 111, polar = True )
ax.plot( theta, r, lw = 3 )
ax.plot( theta, r_pdf, lw = 3 )