# 基本的なグラフの描き方
# R の特長は、グラフを描く機能が充実していることです。
# ここで説明するグラフは基本的なものであり、さらに高度なブラフを描くことのできる’lattice’, ‘ggplot2’ や ‘ggvis’もあることを紹介しておきます。
# まずは、グラフを描くために必要なデータセットcarsをロードします。
data(cars)
# carsはどんなデータセットか確認しましょう。
?cars
# cars のデータの最初の部分を表示し、内容を確認してください。
# 表示することができましたか。結果は次の通りです。
# speed dist
# 1 4 2
# 2 4 10
# 3 7 4
# 4 7 22
# 5 8 16
# 6 9 10
# まずは、speed(スピード)とdistance(距離)のデータセットcarsのデータを使ってグラフをプロットしてみます。
plot(cars)

# データセットcarsはspeedとdistanceの2つの値について調査しています。
# その2つの一方をx軸、他方をy軸にしてplot(cars)は描いています。
# x軸やy軸のラベルを指定していませんが、Rが自動的に表示したことにも注目してください。
# そのほか、点を表す印を自動的に表示したことにも注目してください。
# plotの説明をチェックしてみます。
?plot
# plot(cars)はx軸、y軸を明示的に示していませんが、次のコードは明示しています。
plot(x = cars$speed, y = cars$dist)

# 今度は、x軸の数値とy軸の表示を逆にしてみます。
plot(y = cars$speed, x = cars$dist)
plot(x = cars$dist, y = cars$speed)

# x=, y= と指定すれば、その順番は関係ありません。
# speedとdistanceのどちらをx軸、どちらをy軸にするかは、speedの値によりdistanceが決まるので、
# x軸をspeed、y軸をdistanceにします。ということで、先ほどの描画をもう一度表示します。
plot(x = cars$speed, y = cars$dist)

# ここで、x軸の表示だけを’Speed’にします。 x軸のラベルということで、xlab = “Speed”と指定します。
plot(x = cars$speed, y = cars$dist, xlab = "Speed")

# さらに、y軸のラベルを指定します。ylab = "Stopping Distance"
plot(x = cars$speed, y = cars$dist, xlab = "Speed", ylab = "Stopping Distance")

# さらに、このグラフの名前、サブタイトルを追加してみます。
# main = “My Plot”, sub = “data from cars”
plot(x = cars$speed, y = cars$dist, xlab = "Speed", ylab = "Stopping Distance", main = "My Plot", sub = "data from cars")

# 様々な指定が可能ですね。
## 日本語でも表示可能です。
## ただし、この日本語表示部分は、Rmdファイル化はうまくいかないので、RStudio上で実行してください。
## まず、仕様するフォントを指定します。この指定をしないと文字化けします。
#par(family = "HiraKaku")
## 先ほどのグラプのタイトルなどを日本語で表示します。
#plot(x = cars$speed, y = cars$dist, xlab = "速度(マイル)", ylab = "停止距離(フィート)", main = "車の速度と#停止距離の関係", sub = "データセットcarsからのデータ引用")
## マイルとフィートでは分かりにくいので、日本の単位であるkm/時間とmに変換します。
## 1マイル=1.6Km、1フィート=30cm なので
#plot(x = cars$speed*1.6, y = cars$dist*0.3, xlab = "速度(km/時間)", ylab = "停止距離(m)", main = "車の速度と停止距離の関係", sub = "データセットcarsからのデータ引用")
# 引数のさらなる追加は可能ですが、説明のために、簡単にcarsを指定することとします。
# 点の色を赤に指定します。色は colorなので、引数colを"red"とします。col = "red"
plot(cars, col = "red")

# col の色指定は、"blue", "yellow"の色を明示することのほか、1, 2など数字でも指定できます。
# いろいろ試してみてください。
# x軸の表示範囲を指定することもできます。xlim = c(10, 15)
plot(cars, xlim = c(10, 15))

# 点の形を指定することもできます。pch = 2
plot(cars, pch = 2)

# pchの値を変えて試してみてください。
# col = 2, pch = 2のような指定方法は分かりにくいですね。各々の2がなぜそう指定したのか直感的に分からないので。
# この点は、ggplot2 で解決されています。ggplot2 は改良版ということができます。
# 引き続き、Rの基本グラフィクス機能について説明します。
# そのために、mtcarsデータセットを読み込みます。
data(mtcars)
# 箱ヒゲ図を描いてみます。
# 引数として、formula = mpg ~ cyl と data = mtcars を与えます。
# mpgはmilage per gallon の略で、燃費を表し、cylはシリンダ数です。“~”はチルダと読み、両端の変数の関係を示します。
# data は対象とするデータセットを示し、この場合はmtcarsが対象とするデータセットになります。
boxplot(formula = mpg ~ cyl, data = mtcars)

# この場合も、先ほど説明したxlab, ylab, main などを指定することにより、より適切な表示を付けることができます。実際に、試してみてください。
# 最後に、ヒストグラムを描いてみます。
# mtcarsのmpgに適用します。
hist(mtcars$mpg)

# このレッスンでは 基本グラフィクスについて説明しましたが、さらに高度なグラフを描く、ggplot2についても確認してください。