Rのggplot2パッケージを使って散布図を作成し、各データポイントがどのIDに対応するかを図の中に表示する方法を、初心者にも分かりやすく解説します。身長と体重の関係を例に、散布図の各点にIDラベルを付ける方法を学びましょう。
## はじめに:実際のデータ分析との違い
今回のコードでは、サンプルの利便性を重視してデータを直接コードに入力しています。しかし、実際のデータ分析では、Excelファイル(.xlsx)やCSVファイルを読み込んでデータを取得することが一般的です。まずは散布図の各点にIDを表示する基本的な方法を理解しましょう。
## ステップ1:必要なパッケージを読み込む
```r
library(ggplot2)
```
最初に、グラフ作成に必要なggplot2パッケージを読み込みます。ggplot2はRで最も人気のあるデータ可視化パッケージの一つです。
## ステップ2:データを準備する
```r
data <- data.frame(
ID = 1:20,
Height = c(160, 162, 165, 167, 170, 172, 175, 177, 180, 182,
164, 166, 168, 171, 173, 176, 178, 181, 183, 185),
Weight = c(55, 57, 59, 60, 63, 65, 68, 70, 72, 75,
56, 58, 61, 64, 66, 69, 71, 74, 76, 78)
)
```
このコードで20人分の身長と体重のサンプルデータを作成します。`data.frame()`関数を使って、3つの列(ID、身長、体重)を持つデータフレームを作成しています。IDは1から20までの連続番号、身長は160-185cm、体重は55-78kgの範囲でデータを設定しています。
## ステップ3:基本的な散布図を作成する
```r
ggplot(data, aes(x = Height, y = Weight)) +
geom_point(color = "blue", size = 3)
```
`ggplot()`関数でベースとなるグラフオブジェクトを作成し、`geom_point()`でデータポイント(点)を追加します。`aes()`内でx軸に身長、y軸に体重を指定しています。この段階では青い点だけの散布図が表示されます。
## ステップ4:各点にIDラベルを追加する(重要なポイント)
```r
ggplot(data, aes(x = Height, y = Weight)) +
geom_point(color = "blue", size = 3) +
geom_text(aes(label = ID), vjust = -1, size = 3.5)
```
ここが今回の最も重要なポイントです。`geom_text()`を追加することで、各データポイントの上にIDを表示します。これにより、散布図上の各点がどのIDに対応するかが一目で分かるようになります。`vjust = -1`により、ラベルが点の少し上に配置され、`size = 3.5`でラベルの文字サイズを調整しています。
## ステップ5:グラフのタイトルと軸ラベルを追加する
```r
ggplot(data, aes(x = Height, y = Weight)) +
geom_point(color = "blue", size = 3) +
geom_text(aes(label = ID), vjust = -1, size = 3.5) +
labs(title = "身長と体重の散布図",
x = "身長 (cm)",
y = "体重 (kg)")
```
`labs()`関数で、グラフのタイトルとx軸、y軸のラベルを設定します。これによりグラフがより分かりやすくなります。
## 完成したグラフ
以下のようなグラフが関係します。日本語が文字化けしていますが、ここではそのままにしてあります。
![[Pasted image 20250723045733.png|400]]
## 完全なコード
以下が完全なコードです。このコードをRStudioなどにコピー&ペーストして実行してみてください。
```r
# パッケージ読み込み
library(ggplot2)
# データを直接入力(IDは数字だけ)
data <- data.frame(
ID = 1:20,
Height = c(160, 162, 165, 167, 170, 172, 175, 177, 180, 182,
164, 166, 168, 171, 173, 176, 178, 181, 183, 185),
Weight = c(55, 57, 59, 60, 63, 65, 68, 70, 72, 75,
56, 58, 61, 64, 66, 69, 71, 74, 76, 78)
)
# 散布図を作成し、各点にID(数字)を表示
ggplot(data, aes(x = Height, y = Weight)) +
geom_point(color = "blue", size = 3) +
geom_text(aes(label = ID), vjust = -1, size = 3.5) +
labs(title = "身長と体重の散布図",
x = "身長 (cm)",
y = "体重 (kg)")
```
## 実際のデータ分析では
実際のデータ分析では、ExcelファイルやCSVファイルからデータを読み込んでください。