我必须编写自己的函数来绘制二项式分布的密度函数,从而绘制 当 n = 20 且 p = 0.1,0.2,...,0.9 时的适当图表。我还需要对图表发表评论。
我试过了;
graph <- function(n,p){
x <- dbinom(0:n,size=n,prob=p)
return(barplot(x,names.arg=0:n))
}
graph(20,0.1)
graph(20,0.2)
graph(20,0.3)
graph(20,0.4)
graph(20,0.5)
graph(20,0.6)
graph(20,0.7)
graph(20,0.8)
graph(20,0.9)
#OR
graph(20,scan())
我的第一个问题:有什么方法可以让我不需要写下 graph(20,p)
行多次,除了使用 scan()
?
我的第二个问题:
我想在一台设备上查看图表或想点击ENTER
查看下图。我写的
par(mfcol=c(2,5))
graph(20,0.1)
graph(20,0.2)
graph(20,0.3)
graph(20,0.4)
graph(20,0.5)
graph(20,0.6)
graph(20,0.7)
graph(20,0.8)
graph(20,0.9)
但是图表太小了。如何通过给出标题线 n=20 和 p=我用来绘制图表的值来很好地呈现图表?[尽管可以通过编写 mtext()
来完成调用函数graph
后但这样做我必须写几次类似的行。所以我想这样做,包括在函数 graph
中。 ]
我的最后一个问题:
关于评论。从图中可以看出,随着成功概率p的增加,图形向右倾斜,即图形是右偏的。
有没有办法使用 program
对图表进行评论?
最佳答案
这里是 maply
的工作,因为您循环了 2 个变量。
graph <- function(n,p){
x <- dbinom(0:n,size=n,prob=p)
barplot(x,names.arg=0:n,
main=sprintf(paste('bin. dist. ',n,p,sep=':')))
}
par(mfcol=c(2,5))
mapply(graph,20,seq(0.1,1,0.1))
关于R,二项式分布图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17759540/