Last updated: September 201609 -October 2008. Kajiyama             [ 目次に戻る ]

barplot()関数を使った棒グラフによるデータの視覚化


  1. データ作成の練習

    問題型と解答内容 %
    
    問題型  正解  誤答S     誤答P
    ○AA    97.9   1.1       1.0
    ○AB    93.2   2.3       4.5
    ○AC    85.7   4.9       9.4
    ○BA    79.8  16.8       3.4
    ○BB    84.0  13.1       2.9
    ○BC    82.9   9.4       7.7
    ×AA    78.8  21.2       0.0
    ×AB    65.2  21.7      13.1
    ×AC    72.2   8.3      19.5
    ×BA    39.1  34.8      26.1
    ×BB    55.0  32.5      12.5
    ×BC    62.1  20.7      17.2
    
     rm(list=ls(all=TRUE)) 
     #解答内容
     cname <- c("正解","誤答S","誤答P")
     # 問題型
     rname <- c("oAA","oAB","oAC","oBA","oBB","oBC","xAA","xAB","xAC","xBA","xBB","xBC")
     yd <- matrix(c(97.9, 93.2, 85.7, 79.8, 84.0, 82.9, 78.8, 65.2, 72.2, 39.1, 55.0, 62.1,
    		1.1, 2.3, 4.9, 16.8, 13.1, 9.4, 21.2, 21.7, 8.3, 34.8, 32.5, 20.7,
    		1.0, 4.5, 9.4, 3.4, 2.9, 7.7, 0.0, 13.1, 19.5, 26.1, 12.5, 17.2), 
    		byrow=FALSE,12,3 ); yd 
     dimnames(yd ) <- list(問題型=rname, 解答内容=cname); yd 
          解答内容
    問題型 正解 誤答S 誤答P
       oAA 97.9   1.1   1.0
       oAB 93.2   2.3   4.5
       oAC 85.7   4.9   9.4
       oBA 79.8  16.8   3.4
       oBB 84.0  13.1   2.9
       oBC 82.9   9.4   7.7
       xAA 78.8  21.2   0.0
       xAB 65.2  21.7  13.1
       xAC 72.2   8.3  19.5
       xBA 39.1  34.8  26.1
       xBB 55.0  32.5  12.5
       xBC 62.1  20.7  17.2
    
     xd <- t ( yd );xd # 転置行列を作る
            問題型
    解答内容  oAA  oAB  oAC  oBA  oBB  oBC  xAA  xAB  xAC  xBA  xBB  xBC
       正解  97.9 93.2 85.7 79.8 84.0 82.9 78.8 65.2 72.2 39.1 55.0 62.1
       誤答S  1.1  2.3  4.9 16.8 13.1  9.4 21.2 21.7  8.3 34.8 32.5 20.7
       誤答P  1.0  4.5  9.4  3.4  2.9  7.7  0.0 13.1 19.5 26.1 12.5 17.2
    


  2. 簡単 barplotの描画

    1. 簡単 barplotの垂直配置で描画

      barplot (xd [ 1,], las = 3, ylim = c(0,100), main = "問題の正解率") # 特定行(正解率)のxd [ 1,]データのみ表示とy軸の表示範囲指定

      barplot (xd, las = 3, legend = rownames(xd), main = "問題の解答内容%") # xd データの積み重ね表示+凡例

      barplot (xd, las = 3, beside = TRUE, legend = rownames(xd), main = "問題の解答内容%") # xd データの横並べ表示+凡例

      
       # 特定行の正解率のみ表示
      
      
       # 積み重ね表示+凡例
      
      
       # 横並べ表示+凡例
      

    2. 簡単 barplotの水平配置 horiz = T で描画

      barplot (xd[1,], las = 2, xlim = c(0,100), horiz = T, main = "問題の正解率") # 特定の列(正解率)のみ表示とx軸の表示範囲指定

      barplot (xd, las = 2, horiz = T, legend = rownames(xd), main = "問題の解答内容%") # 積み重ね表示+凡例

      barplot (xd, las = 2, horiz = T, beside = TRUE, legend = rownames(xd), main = "問題の解答内容%") # 横並べ表示+凡例

      
       # 特定行の正解率のみ表示
      
      
       # 積み重ね表示+凡例
      
      
       # 横並べ表示+凡例
      


  3. barplot作図のこまかい設定 細かく設定をしなくてもデータ名さえ指定すれば描いてくれる.

     # 作図領域をテキスト行数単位で設定
     # par (oma = c (1, 1, 1, 1 )) #outer margin (下,左,上,右)
     # par (fig = c (1, 1, 1, 1 )) #figur margin (下,左,上,右)
    
     barplot (xd,         # データ名xd
    
     col=grey.colors( nrow( xd)), # 棒の色を指定
     width = c ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),  # 棒の幅を指定
     space = c( 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.4,0.1, 0.1,0.3,0.1, 0.1 ), 
     # 棒と棒の間隔を指定
    
     cex.names= 1,    # x軸のラベルの文字サイズ
     cex.axis=  1,    # y軸のラベルの文字サイズ
     las = 2,         # x軸・y軸のラベルの文字の向きを変更(4パターンの組み合わせ)
     # las = 0  las = 1  las = 2  las = 3 
    
     # xlim=c(0,100),       # x軸の目盛の表示範囲を指定する
     # ylim=c(0,100),       # y軸の目盛の表示範囲を指定する
    
     # 凡例
     legend = rownames(xd),   # 凡例をデータ行の項目名で指定
     args.legend = list(x = ncol(xd) + 6.5, y = 100), # 凡例の左上の位置を指定
     xlim = c(0, ncol(xd)+5),                         # 凡例を描くx軸方向の範囲を指定
    
     # 表題欄
     main = "(1) 問題の解答内容%" )    # 表題を描く
    
     # 作成したグラフに軸のラベルの追加コメントを入れる
     mtext("(2) 構成比率 %", side=2, line=2.5 )  # y軸右側(side=2)の項目
     mtext("(3) 問題の型", side=1, line=3 )      # x軸下側(side=1)の項目
     mtext("(4) 何かあります", side=4, line=-1 ) # y軸左側(side=4)の項目
    
    
    
    

  4. データの列項目を指定(選択)して棒グラフを作成

    # 〇のついた問題 xd [,1:6]を描く
    barplot (xd [,1:6], col=topo.colors( nrow( xd)), # 棒の色を指定
    cex.axis= 1, cex.names= 1, las = 3, legend=rownames(xd),
    args.legend =list(x = ncol(xd)-3, y= 100), xlim=c(0,ncol(xd)-3), main="問題の解答内容 % [〇]")


    # A系列の問題 xd [,1:3]xd [,7:9]を描く
    a <- xd[ ,1:3]; a
    b <- xd[ ,7:9]; b
    c <- cbind(a,b); c

    barplot ( c, cex.axis= 1, cex.names= 1, las = 3, legend = rownames(c),
    args.legend = list(x = ncol(c)+3, y = 100), xlim = c(0, ncol(c)+3), main ="問題の解答内容 % [A系列]")


    
    
    
    


  5. グラフの保存.   グラフの保存は 「ファイル」−>「別名で保存」−>「Png/Jpeg」−>ファイル名を付けて保存する.



  6. ここまで練習が進んだらhelpを利用する.? barplot #   と記述するとbarplotのヘルプが参照できる.

    あなたは,関数の使用方法を,ここから学ぶことができるはず.

[ 目次に戻る ]