棒グラフの作り方

本稿では,Rでの棒グラフの作成方法を紹介する

Excelで棒グラフを作成する場合には,データが入力された範囲を指定してグラフの種類を選択することで棒グラフを作成した.Rの棒グラフは,度数分布表を作成した後に,関数barplot()を利用する.

度数分布表の作り方

サンプルを例に説明する.サンプルデータ DL2_2019_09_0_sample.csv は,学生20名の所属学科(環境,健福,情報)に関するデータである.

オブジェクト名を data_gakka とする. 本説明では data_gakka と指定しているが,指定されていない場合は任意である.

最初に オブジェクト data_gakka に csvファイルの値を代入する.教員によっては,入れる,格納,入力,定義するなど,異なる言葉を用いる場合があるので慣れること.

以下のコードの意味がよく分からない場合,DL2の第1回を復習する.

#data_gakka にデータを入力する
data_gakka <- read.csv("DL2_2019_09_0_sample.csv",row.names=1)

入力データを確認する.

print(data_gakka) 

正しく操作ができていれば,以下のように表示される.

1  環境
2  健福
3  情報
4  情報
5  健福
6  環境
7  環境
8  情報
9  環境
10 健福
11 情報
12 情報
13 環境
14 環境
15 環境
16 環境
17 健福
18 環境
19 情報
20 情報

度数分布表の作成には,table 関数を用いる.度数分布表は,オブジェクト「学科度数分布」に代入することにする.

学科度数分布 <- table(data_gakka)
print(学科度数分布)

正しく操作ができていれば,以下のように表示されるはずである.

data_gakka
環境 健福 情報 
   9    4    7 

次に,barplot()関数を使って度数分布表から棒グラフを作成する.barplot()の引数には度数分布表を入力したオブジェクトの名前を指定する.上記の場合は、「学科度数分布」になる.barplot()の実行結果はPlotsエリアに表示される.

barplot(学科度数分布)

グラフを作成した際に,日本語表示が上手くいかない場合がある.ラベル名が表示されない場合や文字化けした場合は,par(family=”Osaka”)でフォントの設定を行うことで解決できる.

par(family="Osaka") #Osakaフォントを使用

色やラベルの変更

barplotは 引数で様々な設定を行うことができる.

col : バーの色の指定
xlab: x軸のラベル名
ylab: y軸のラベル名

例えば,以下のように設定するとグラフの色,ラベルが変更される.

col : バーの色の指定 = blue
xlab: x軸のラベル名 = x軸の説明
ylab: y軸のラベル名 = y軸の説明

barplot(学科度数分布, col="blue", xlab="X軸の説明", ylab="Y軸の説明")

色はRGBを用いて指定することもできる.

barplot(学科度数分布, col="#ff8000", xlab="X軸の説明", ylab="Y軸の説明")

その他の色の使い方については,自分で調べること(ヒストグラムの際にも扱う).なお、本ページを作成する際は,以下を参考にした.

統計グラフの色
https://oku.edu.mie-u.ac.jp/~okumura/stat/colors.html

相対度数でのグラフの作成

ここまで度数分布表から棒グラフを作成する方法について説明してきた.以下では,相対度数で棒グラフを作成する方法に関して説明する.基本的な手順は度数分布表から棒グラフを作成する手順と同じである.

最初に相対度数分布表を作成する.相対度数分布表の作成には prop.table 関数を用いる.引数に相対度数分布表を作成したいデータが格納されているオブジェクト名を代入する.

学科相対度数 <- prop.table(学科度数分布)
print(学科相対度数)

正しく操作ができていれば,以下のように表示されるはずである.

data_gakka
環境 健福 情報 
0.45 0.20 0.35 

次に作成した相対度数分布表を棒グラフにして表示する.棒グラフの作成は,先ほど度数分布表で行った手順と同じである.またラベル名やバーの色を指定する方法も先ほどと同様である.y軸が相対度数になっていることを確認する.

barplot(学科相対度数,col="orange",xlab="X軸(学科名)",ylab="Y軸(相対度数)")