ggplot2で自動車（ホンダのシビックやトヨタのカローラなど）のデータを分析する

[ggplot2](https://ggplot2.tidyverse.org)はRのデータ可視化パッケージです。
ggplot2を用いて、[mtcars](https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/mtcars.html)（Honda CivicやToyota Corollaなど）のデータを分析します。
実行環境：MacBook Air M1, 2020

# RとRStudioのインストール
以下のURLから、RとRStudioをインストールします。
https://posit.co/download/rstudio-desktop/
インストール方法は以下のURLの記事にわかりやすく書かれています。
https://qiita.com/azzeten/items/1031c788ed093d3b3946

# ggplot2のインストールと読み込み
ggplot2のインストールと読み込みを行います。

https://ggplot2.tidyverse.org

RStudioを起動し、以下のコードを実行します。
```R
install.packages("tidyverse")
library(ggplot2)
```
次回からは、以下のコードのみを実行します。
```R
library(ggplot2)
```
これにより、ggplot2を読み込むことができます。

# データの読み込み
Rのデータセットから[mtcars](https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/mtcars.html)を読み込みます。
```R
# データの読み込み
data = mtcars
head(data)
```
```
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
```

# データ可視化
## mpg（燃費）とcyl（シリンダーの数）
### ヒストグラム
シリンダーの数ごとにヒストグラムを作成します。
```R
ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)
```
![Rplot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/f1afeba4-d1ad-0e71-9e41-3c0bf0be89f8.png)

シリンダーの数が小さいほど、燃費が良いことがわかります。

### 密度曲線
シリンダーの数ごとに密度曲線を作成します。
```R
ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)
```
![Rplot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/dd19fb72-e7c0-0876-6e17-e70e5d974af8.png)

ヒストグラムと同様に、シリンダーの数が小さいほど、燃費が良いことがわかります。

### 箱ひげ図
シリンダーの数ごとに箱ひげ図を作成します。
```R
ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)
```
![Rplot01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/bd6c7c4b-706c-1e54-f79a-8e1637142bb3.png)

シリンダーの数ごとに、燃費が異なることがわかります。

## mpg（燃費）とdisp（排気量）
### 散布図
燃費と排気量の散布図を作成します。
```R
ggplot(data, aes(x = mpg, y = disp, label = rownames(data))) + geom_point() + geom_label() + scale_x_continuous(limits = c(10, 35))
ggsave("mtcars.png", width = 900, height = 600, units = "px", dpi = 100)
```
![mtcars.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/7dd569d5-6e4c-4a0d-a552-b2fc61a0617b.png)

ラベルが見づらいため、ラベルをMazda RX4、Mazda RX4 Wag、Honda Civic、Toyota Corolla、Toyota Coronaのみにします。
```R
data$name <- rownames(data)
x <- data$name %in% c("Mazda RX4","Mazda RX4 Wag" , "Honda Civic", "Toyota Corolla", "Toyota Corona")
data$name[!x] <- NA

ggplot(data, aes(x = mpg, y = disp, label = name)) + geom_point() + geom_label() + scale_x_continuous(limits = c(10, 35))
ggsave("mtcars.png", width = 900, height = 600, units = "px", dpi = 100)
```
![mtcars.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/a72ef5c3-aab7-788c-0431-a76c5850d1df.png)

Toyota CorollaとHonda Civicは、燃費が良く排気量が少ないことがわかります。

## mpg（燃費）とhp（馬力）
### 散布図
燃費と馬力の散布図を作成します。
```R
ggplot(data, aes(x = mpg, y = hp, label = rownames(data))) + geom_point() + geom_label() + scale_x_continuous(limits = c(10, 35))
ggsave("mtcars.png", width = 900, height = 600, units = "px", dpi = 100)
```
![mtcars.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/b53f8cf0-1b6a-f29a-860b-808c70475ddb.png)

ラベルが見づらいため、ラベルをMazda RX4、Mazda RX4 Wag、Honda Civic、Toyota Corolla、Toyota Coronaのみにします。
```R
data$name <- rownames(data)
x <- data$name %in% c("Mazda RX4","Mazda RX4 Wag" , "Honda Civic", "Toyota Corolla", "Toyota Corona")
data$name[!x] <- NA

ggplot(data, aes(x = mpg, y = hp, label = name)) + geom_point() + geom_label() + scale_x_continuous(limits = c(10, 35))
ggsave("mtcars.png", width = 900, height = 600, units = "px", dpi = 100)
```
![mtcars.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/e827a52e-84ff-1fae-bba1-af45043df9cc.png)

Toyota CorollaとHonda Civicは、燃費が良く馬力が小さいことがわかります。

## mpg（燃費）とqsec（発進加速性能のなかで、4分の1マイルに到達する時間）
### 散布図
燃費とqsecの散布図を作成します。
```R
ggplot(data, aes(x = mpg, y = qsec, label = rownames(data))) + geom_point() + geom_label() + scale_x_continuous(limits = c(10, 35))
ggsave("mtcars.png", width = 900, height = 600, units = "px", dpi = 100)
```
![mtcars.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/136d57fc-e5ad-35b5-270d-7718fe9769e6.png)

ラベルが見づらいため、ラベルをMazda RX4、Mazda RX4 Wag、Honda Civic、Toyota Corolla、Toyota Coronaのみにします。
```R
data$name <- rownames(data)
x <- data$name %in% c("Mazda RX4","Mazda RX4 Wag" , "Honda Civic", "Toyota Corolla", "Toyota Corona")
data$name[!x] <- NA

ggplot(data, aes(x = mpg, y = qsec, label = name)) + geom_point() + geom_label() + scale_x_continuous(limits = c(10, 35))
ggsave("mtcars.png", width = 900, height = 600, units = "px", dpi = 100)
```
![mtcars.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569835/803d302b-8337-64ea-7006-316c42666f0b.png)

Toyota CorollaとHonda Civicは、qsecが大きいことがわかります。

データ分析の結果、Toyota CorollaとHonda Civicは、他のモデルと比較して、性能が良いことがわかりました。
Rには面白いデータセットがあることもわかりました。
次は、他のデータセットを分析したいです。

# 参考文献
https://ggplot2.tidyverse.org/index.html
https://www.math.chuo-u.ac.jp/~sakaori/Rdata.html
https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/mtcars.html
http://data-science.tokyo/R-EDA1-J/R-EDA1-J1-02.html
https://mukkujohn.hatenablog.com/entry/2016/09/02/230037