簡體   English   中英

在 R 中繪制圓形隨機變量的 PDF(極坐標圖)

[英]Plotting PDFs of circular random variables in R (polar plots)

我試圖找到一種合理的方法來可視化 R 中圓形隨機變量的概率密度函數。最合適的方法是在極坐標圖上。 但是,我不確定如何在 R 中對此進行編碼。有人可以使用 包裝指數分布為例說明如何做到這一點嗎? 我真的很感激。

循環包似乎專注於 vonMises 分發。 您可以推出自己的包裹指數概率分布:

wrapped.exp <- function(theta, lambda){ 
                          lambda*exp(-lambda*theta)/(1-exp(-2*pi*lambda) )}

並使用 plotrix 包的radial.plot

theta <- seq(0, 2*pi, len=100)
rval <- wrapped.exp(theta, .2)
# radial.plot's default radial limits are just the range so not really good for distributions.
radial.plot(rval,theta, radial.lim=c(0, 0.4))

在此處輸入圖片說明

繪圖代碼:

> png()
> rval <- wrapped.exp(theta, .2)
> radial.plot(rval,theta, radial.lim=c(0, 0.4))
> dev.off()

我會注意到“包裹指數”公式實際上並不是閉區間[0, 2*pi]上的真正數學函數[0, 2*pi]因為該函數在 0 = 2 pi處有兩個值,因此它可能應該有代碼來制作任何theta + 或 > 2 pi 為 NA 或“mod 2 pi”。 進一步注意:該公式實際上只是 2 pi處的截斷指數 由於它是一個截斷的密度,它似乎不應該在 2*pi 處具有 0 值。 出現徑向圖使用徑向矢量的范圍,而不是從 0 到最大值。 似乎它應該默認為 c(0, range(lambda)[2])。 當我有時間時,我會更正這個答案。

pkg:pracma 中的ezpolar函數提供了比plotrix::radial.plot更典型的極坐標圖,但是它就像基本圖形函數curve ,因為它采用函數參數。

if(!require(pracma) ){ 
         install.packages("pracma", dependencies=TRUE); library(pracma) }
?ezpolar
wrapped.exp <- function(theta, lambda){ 
                      lambda*exp(-lambda*theta)/(1-exp(-2*pi*lambda) )}
theta <- seq(0, 2*pi, len=100)

# since it requires a functional argument with only one variable,
# I'm defining a separate helper function with predefined lambda

  png() ;  wrap.2 <- function(x) wrapped.exp(x,.2)
           ezpolar(wrap.2); dev.off()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM