R:如何使用rCharts绘制统计函数

时间:2015-01-05 11:26:17

标签: r plot rcharts

我想使用rCharts包绘制统计分布(如正态分布)。 我可以使用curve或ggplot2来绘制它。

曲线

curve(dnorm, xlim=c(-10,10))

enter image description here

GGPLOT2

ggplot(data.frame(x=c(-10,10)), aes(x)) + stat_function(fun=dnorm, args=list(0, 1))

enter image description here

我想使用rCharts绘制统计函数,但我不能。 我如何绘制它?

1 个答案:

答案 0 :(得分:3)

你无法用rChart明确地做到这一点,但是对于任何统计分布以及通常对于你想要的任何函数来说,它都很容易自己做。您可以使用d/r/p/q-distribution形式的每个统计分布使用完全相同的技术,例如?rnorm?rbinom等。但这甚至可以针对任何函数进行推广你要。我还包括一个泛型函数的例子。

使用dnormrnorm正常发布:

x <- rnorm(1000) #you need rnorm here to create 1000 standard normally distributed observations. 
y <- eval(dnorm(x)) #evaluate the function using dnorm now to get probabilities.
#the use of eval() will be clear in the next example. Here you can even omit it if it confuses you.
df <- data.frame(x,y) #make df

#plot
rPlot(y ~ x, data=df, type='line' )

enter image description here 同样,对于二项分布,您可以使用dbinomrbinom完全相同。对于任何其他发行版也是如此。

你也可以根据@ Gregor的注释而不是x = seq(-6, 6, length = 1000)函数使用类似rnorm的内容来创建自定义x变量,然后使用dnorm生成相应的概率。这种方式的优点是您可以直接设置x轴的限制。 e.g:

a <- seq(-6,6,length=1000) #use -10,10 to reproduce your example
b <- dnorm(a)
df <- data.frame(a,b)
rPlot(b~a,data=df,type='line')

enter image description here

作为如何绘制任何函数的演示和概括

我们以函数log(1+x)为例。在这里,您将看到绘制任何函数是多么容易:

x <- runif(1000,1,10) #1000 points are enough
y <- eval(log(1+x)) #easily evaluate the function for your x vector
#the previous was a very special case where you had 2 functions rnorm and dnorm
#instead of an x vector and an f(x) function like here
#this is very easy to generalize
df <- data.frame(x,y) #make df

#plot
rPlot(y ~ x, data=df, type='line' )

enter image description here

您可以以相同的方式使用您想要的任何功能!