データセットはいつものmtcars

#最も基本のhist関数
hist(mtcars$mpg)

#ビン(データの範囲を区切ったときの各区間をビンと呼ぶ)の数を指定する
#しかし、その数になるとは限らない(近い数でのビン数となる)
hist(mtcars$mpg, breaks=10)


#次にgglpt2パッケージとdplyrパッケージを使う
library(ggplot2)  #ggplot関数を使うためのlibrary関数によるggplot2パッケージのロード
## Warning: package 'ggplot2' was built under R version 3.3.2

library(dplyr)    #パイプ演算子 %>% 利用のため を使うためのlibrary関数によるdplyrパッケージのロード
## Warning: package 'dplyr' was built under R version 3.3.2
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#まずはqplot関数を使ってみる。 #区間の幅はbinwidth引数(ビンの数ではなくビンの幅)で指定する。colour引数でビンの周囲に指定した色を付けることができる
#colour引数を指定しない場合も描画してみると良い
mtcars$mpg %>% qplot(binwidth=5, colour="red")

#ggplot関数では次の通り
ggplot(mtcars, aes(x=mpg)) + geom_histogram(binwidth=5, colour="white") 

#ビンの周囲の色は白の方が落ちついた描画となる。
#前の図と同じ。しかし、パイプ演算子 %>% を使っている。コードにおいて何が違うが確認すること。
mtcars %>% ggplot(aes(x=mpg)) + geom_histogram(binwidth=5, colour="white") 

#このグラフにタイトルを付ける
mtcars %>% ggplot(aes(x=mpg)) + geom_histogram(binwidth=5, colour="white") + labs(title="mtcars$mpg")

#タイトルが左寄りになっているので、これを中央に置く
mtcars %>% ggplot(aes(x=mpg)) + geom_histogram(binwidth=5, colour="white") + labs(title="mtcars$mpg") + theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 20))

#さらにタイトル、x軸、y軸表示を日本語表示にする
p <- mtcars %>% ggplot(aes(x=mpg)) + geom_histogram(binwidth=5, colour="white") + labs(title="車のマイレージ", x="マイレージ", y="度数")
p # pだけを実行することにより、その内容を描画する

#前の方法では日本語がトーフになってしまった
#次の方法だとうまくいく
#p への足し算として theme_bw(base_family="HiraKakuProN-W3")  と theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 20)) を追加している(つまり2つの条件を追加したことになる)
p + theme_bw(base_family="HiraKakuProN-W3") + theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 20))

#しかし次の通り、順番を変えるとうまく行かない。
#  theme_bw(base_family="HiraKakuProN-W3")は効いている、しかし
#  theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 20))の位置指定が効いていない
#  順番にも意味がある、ということになる。
p  + theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 20)) + theme_bw(base_family="HiraKakuProN-W3")

#ビンの色を黒からライトブルーに変更する
#geom_histogram関数のfill引数に色を指定することにより可能
p <- mtcars %>% ggplot(aes(x=mpg)) + geom_histogram(binwidth=5, fill="lightblue", colour="white") + labs(title="車のマイレージ", x="マイレージ", y="度数") + theme_bw(base_family="HiraKakuProN-W3") + theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 20))
p  # pだけを実行することにより、その内容を描画する

参考URL

Macにおけるplot、ggplotでの日本語描画の方法 https://www.karada-good.net/analyticsr/r-58

タイトル、x軸、y軸などのラベル http://motw.mods.jp/R/ggplot_labs.html

これも参考になる https://notchained.hatenablog.com/entry/2016/10/15/134938

次に、データセットirisを使った描画

library(gridExtra) #grid.arrage関数実行に必要なパッケージのロード
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
#まずirisデータセットの内容を確認する
head(iris, 10)  #Petal.Lengthは花びらの長さ、Sepal.Lengthは萼(がく)の長さ、各々 xxxxx.widthは幅
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  setosa
## 2           4.9         3.0          1.4         0.2  setosa
## 3           4.7         3.2          1.3         0.2  setosa
## 4           4.6         3.1          1.5         0.2  setosa
## 5           5.0         3.6          1.4         0.2  setosa
## 6           5.4         3.9          1.7         0.4  setosa
## 7           4.6         3.4          1.4         0.3  setosa
## 8           5.0         3.4          1.5         0.2  setosa
## 9           4.4         2.9          1.4         0.2  setosa
## 10          4.9         3.1          1.5         0.1  setosa
#mtcarsの描画で使ったコードを参考にして、花びらの長さと萼の長さの度数を棒グラフで描く

a <- iris %>% ggplot(aes(x=Petal.Length)) + geom_histogram(binwidth= 0.5, colour="white") + labs(title="あやめの花びら", x="花びらの長さ", y="度数")+ theme_bw(base_family="HiraKakuProN-W3") + theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 15)) 

b <- iris %>% ggplot(aes(x=Sepal.Length)) + geom_histogram(binwidth= 0.5, colour="white") + labs(title="あやめの萼", x="萼の長さ", y="度数")+ theme_bw(base_family="HiraKakuProN-W3") + theme(plot.title = element_text(hjust = 0.5), text = element_text(size = 15)) 

#library(gridExtra)実行により、grid.arrange関数が利用可能
#grid.arrange関数は1つの描画において複数の図を描画する関数
#「散布図の書き方」で使った関数なので、その説明も参考にするとよい
grid.arrange(a, b, ncol=2)  

本日の課題(2)

上に描画した画像はy軸の数値が揃っていないので、単純に比較出来ない。

そこでy軸の数値を揃えた図に修正したものを、いつものようにrmdによるhtmlファイルを作成し、moodleにアップしてください。

修正方法は、aとbへの代入式へ、y軸のスケールを揃えるレイヤ指定を1つだけ増やすこと。

次のURLにその方法を記述しているので、参考にしてください。

http://rpubs.com/Indipapa/rolls_of_dice

また、rmdファイルのチャンク内では、利用する関数などの実行に必要な全てのパッケージを予めlibrary関数で指定しておくことを忘れずに。