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ファイルからデータを読み込んでください。