R、 二项分布图

R、 二项分布图,r,graph,R,Graph,我必须写自己的函数来画二项分布的密度函数,然后画 当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)

我必须写自己的函数来画二项分布的密度函数,然后画 当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())
但是这个图表太小了。我如何通过给出头线n=20和p=我用来绘制图形的值来很好地呈现图形?[虽然可以通过调用函数
graph
后编写
mtext()
来完成,但这样做我必须编写类似的行几次。因此我想在函数
graph
中这样做]

最后一个问题:

关于评论。这些图显示,随着成功概率的增加,p逐渐增大,图趋于右,也就是说,图是右偏的


有没有办法用
program
对图形进行注释?

这里有一个
mapply
作业,因为您循环了两个变量

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))

graph绘制基本图形是您经常希望使用
for
循环的一种情况。原因是大多数绘图函数都以不可见的方式返回对象,但您对这些函数不感兴趣;你想要的只是绘图的副作用。循环忽略返回的对象,而
*apply
族将浪费精力收集和返回它们

par(mfrow=c(2, 5))
for(p in seq(0.1, 1, len=10))
{
    x <- dbinom(0:20, size=20, p=p)
    barplot(x, names.arg=0:20, space=0)
}
par(mfrow=c(2,5))
对于(序列中的p(0.1,1,len=10))
{

X考虑一个循环或<代码> LePix<代码>,通过几个值。对不起,我担心这是模棱两可的……“大多数[基本绘图函数]不可见地返回一个对象”?我认为这是非常误导性的,通常是不正确的。当提到基本绘图函数时,上下文是基本图形的使用,所以我认为OP在指定窄边距方面需要帮助。
par(mfrow=c(2, 5))
for(p in seq(0.1, 1, len=10))
{
    x <- dbinom(0:20, size=20, p=p)
    barplot(x, names.arg=0:20, space=0)
}