1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

R言語Advent Calendar 2023

Day 15

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

Posted at

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)

Rplot.png

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

密度曲線

シリンダーの数ごとに密度曲線を作成します。

ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)

Rplot.png

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

箱ひげ図

シリンダーの数ごとに箱ひげ図を作成します。

ggplot(data, aes(x = mpg, fill = factor(cyl))) + geom_histogram(position = "identity", alpha = 0.5, bins = 10)

Rplot01.png

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

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)

mtcars.png

ラベルが見づらいため、ラベルを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)

mtcars.png

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)

mtcars.png

ラベルが見づらいため、ラベルを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)

mtcars.png

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)

mtcars.png

ラベルが見づらいため、ラベルを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)

mtcars.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

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?