Slidyでプレゼン練習(帯グラフのつくり方)

佐藤慧

2019年10月19日

今回の目的

データ

ucb<-data.frame(UCBAdmissions)
dim(ucb)
## [1] 24  4
summary(ucb)
##       Admit       Gender   Dept       Freq      
##  Admitted:12   Male  :12   A:4   Min.   :  8.0  
##  Rejected:12   Female:12   B:4   1st Qu.: 80.0  
##                            C:4   Median :170.0  
##                            D:4   Mean   :188.6  
##                            E:4   3rd Qu.:302.5  
##                            F:4   Max.   :512.0

観察は24, 変数は4.Freqは学生の数を表す.

今回調べること

前処理的段階

#入学者だけのサブセットを作る
ucb.students <- subset(ucb, 
                     subset = (ucb$Admit=="Admitted"), 
                     select = c("Gender", "Dept", "Freq")
                     )

#一番上にくるA学部で男性の方が多いので、
#男性がグラフで左側に来るようにジェンダーの順序を固定した変数に変換
ucb.students$Gender.b <- factor(ucb.students$Gender, 
                              levels = c("Female", "Male")
                              )

#学部の順序を固定した変数に変換
ucb.students$Dept.b <- factor(ucb.students$Dept, 
                            levels = c("F", "E", "D", "C", "B", "A")
                            )

{ggplot2}のコード

library(ggplot2)

p<-
  #データと描画空間の設定
  ggplot(ucb.students, 
         aes(
           x = Dept.b, 
           y = Freq, 
           fill = Gender.b
           )
         )+
  
  #種類を棒グラフに設定
  geom_bar(stat = "identity") +
  
  #テーマの設定、サイズを決める、日本語対応させる
  theme_classic(base_size = 10, 
                base_family = "HiraKakuProN-W3"
                )+ 
    
  #軸ラベルとタイトルをつける
  xlab("学部")+
  ylab("新入生数")+
  ggtitle("UCバークレーの学部別新入生数と男女比")+ 
    
  #色と凡例名、凡例順序の指定 #RColorBrewer::display.brewer.all()で確認できる
  scale_fill_brewer(palette = "Dark2",
                    name = NULL, 
                    breaks = c("Male", "Female"), 
                    labels = c("男性", "女性")
                    )+
    
  #ひっくり返して帯グラフに
  coord_flip()+
  
  #観察数のラベルつける
  geom_text(aes(label = Freq), 
            size = 4, 
            color = "white", 
            position=position_stack(vjust = 0.5)
            )

描画

print(p)

感想

参考サイト

おわり

ご清聴ありがとうございました.