ggplot2はRのデータ可視化パッケージです。
ggplot2を用いて、mtcars(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のインストールと読み込みを行います。
RStudioを起動し、以下のコードを実行します。
install.packages("tidyverse")
library(ggplot2)
次回からは、以下のコードのみを実行します。
library(ggplot2)
これにより、ggplot2を読み込むことができます。
データの読み込み
Rのデータセットからmtcarsを読み込みます。
# データの読み込み
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(シリンダーの数)
ヒストグラム
シリンダーの数ごとにヒストグラムを作成します。
ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)
シリンダーの数が小さいほど、燃費が良いことがわかります。
密度曲線
シリンダーの数ごとに密度曲線を作成します。
ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)
ヒストグラムと同様に、シリンダーの数が小さいほど、燃費が良いことがわかります。
箱ひげ図
シリンダーの数ごとに箱ひげ図を作成します。
ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)
シリンダーの数ごとに、燃費が異なることがわかります。
mpg(燃費)とdisp(排気量)
散布図
燃費と排気量の散布図を作成します。
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)
ラベルが見づらいため、ラベルをMazda RX4、Mazda RX4 Wag、Honda Civic、Toyota Corolla、Toyota Coronaのみにします。
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)
Toyota CorollaとHonda Civicは、燃費が良く排気量が少ないことがわかります。
mpg(燃費)とhp(馬力)
散布図
燃費と馬力の散布図を作成します。
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)
ラベルが見づらいため、ラベルをMazda RX4、Mazda RX4 Wag、Honda Civic、Toyota Corolla、Toyota Coronaのみにします。
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)
Toyota CorollaとHonda Civicは、燃費が良く馬力が小さいことがわかります。
mpg(燃費)とqsec(発進加速性能のなかで、4分の1マイルに到達する時間)
散布図
燃費とqsecの散布図を作成します。
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)
ラベルが見づらいため、ラベルをMazda RX4、Mazda RX4 Wag、Honda Civic、Toyota Corolla、Toyota Coronaのみにします。
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)
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