![](/img/trans.png)
[英]How to plot the graph in python like varImpPlot() method plots in R ,for plotting the important variables in Random forest?
[英]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.