一つずつグラフに描く

基本的には,\(n\)(x<-0:55の値)と\(p\)の値を変えて一つずつグラフを描けばよい.

p<-0.3
x<-0:5
prob<-dbinom(x, length(x)-1, p)
names(prob)<-x
barplot(prob,col="skyblue")

\(p\)を変えたグラフをまとめて描く

\(n = 5\)

pvec<-c(0.3,0.5,0.7)
x<-0:5
probs<-sapply(pvec, function(p) dbinom(x, length(x)-1, p))
colnames(probs)<-c("p=0.3","p=0.5","p=0.7")
rownames(probs)<-x
barplot(t(probs),beside=TRUE, legend = TRUE,
        col=c("blue", "red", "green"))

\(n = 10\)

pvec<-c(0.3,0.5,0.7)
x<-0:10
probs<-sapply(pvec, function(p) dbinom(x, length(x)-1, p))
colnames(probs)<-c("p=0.3","p=0.5","p=0.7")
rownames(probs)<-x
barplot(t(probs),beside=TRUE, legend = TRUE,
        col=c("blue", "red", "green"))

\(n = 20\)

pvec<-c(0.3,0.5,0.7)
x<-0:20
probs<-sapply(pvec, function(p) dbinom(x, length(x)-1, p))
colnames(probs)<-c("p=0.3","p=0.5","p=0.7")
rownames(probs)<-x
barplot(t(probs),beside=TRUE, legend = TRUE,
        col=c("blue", "red", "green"))

ggplotで書く.

library(tidyverse)
## -- Attaching packages --------------------------------------------------------- tidyverse 1.2.1 --
## √ ggplot2 3.2.0     √ purrr   0.3.2
## √ tibble  2.1.2     √ dplyr   0.8.1
## √ tidyr   0.8.3     √ stringr 1.4.0
## √ readr   1.3.1     √ forcats 0.4.0
## -- Conflicts ------------------------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
x <- 0:20
data_frame(
  x = x,
  p03 = dbinom(x, length(x) - 1, 0.3),
  p05 = dbinom(x, length(x) - 1, 0.5),
  p07 = dbinom(x, length(x) - 1, 0.7)
) %>% 
  gather(key = p, value = prob, p03, p05, p07) %>% 
  ggplot(.,aes(x=x,y=prob,fill=p)) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_x_continuous(breaks = x) +
  scale_fill_hue(name = "p",
                  labels = c(p03 = "0.3",
                             p05 = "0.5",
                             p07 = "0.7")) 
## Warning: `data_frame()` is deprecated, use `tibble()`.
## This warning is displayed once per session.