広告 散布図

Rによる散布図の描き方(グループ分け)

2023年11月20日

散布図は、2つの変数の関係を可視化するためによく使用されるグラフです。
R言語では、ggplot2パッケージを用いて散布図を作成することができます。
今回はさまざまな条件で色分けした散布図に関して、例題を取り上げます。
例題では、コードと解説を交えて、具体的な手順を説明していきます。

例題

例題

自動車の燃費(MPG:マイル・パーガロン)と車重(Weight)の関係を示す散布図を作成し、
データポイントは自動車のシリンダー数(4, 6, 8)と駆動方式(前輪駆動、後輪駆動)によってグループ分けしなさい。

データの準備

まず、データフレームを作成します。データフレームには4つの列が含まれます:MPG(燃費)、Weight(車重)、Cylinders(シリンダー数)、Drive(駆動方式)。

# ggplot2 パッケージをロード
library(ggplot2)

# 乱数のシードを設定
set.seed(123)

# データフレームの作成
data <- data.frame(
MPG = rnorm(60, mean=30, sd=5),
Weight = rnorm(60, mean=3000, sd=500),
Cylinders = sample(c("4", "6", "8"), 60, replace=TRUE),
Drive = sample(c("FWD", "RWD"), 60, replace=TRUE)
)
  • set.seed(123):乱数生成のためのシード(開始点)を設定しています。シードを設定することで、乱数生成の結果が再現可能になります。123は任意の数値ですが、この値を変更すると生成される乱数も変わります。
  • data <- data.frame(...):データフレームを生成し、それを変数dataに割り当てています。データフレームは表形式のデータを保持するための構造で、列ごとに異なる種類のデータを格納できます。

  • MPG = rnorm(60, mean=30, sd=5)rnorm関数を用いて、平均が30、標準偏差が5の正規分布に従う60個の乱数を生成し、これをMPG(燃費)としています。

  • Weight = rnorm(60, mean=3000, sd=500):同様に、平均が3000、標準偏差が500の正規分布に従う60個の乱数を生成し、これをWeight(車重)としています。

  • Cylinders = sample(c("4", "6", "8"), 60, replace=TRUE)sample関数を用いて、要素が"4"、"6"、"8"のベクトルから60個の要素をランダムに選択し(置換ありで)、これをCylinders(シリンダー数)としています。

  • Drive = sample(c("FWD", "RWD"), 60, replace=TRUE):同じくsample関数を用いて、"FWD"(前輪駆動)と"RWD"(後輪駆動)からランダムに60個選択し、これをDrive(駆動方式)としています。

ここまでのスクリプトを実行すると次のようなdataフレームが出来上がります。その一部をお示しします。

散布図の作成

ggplot 関数を用いて散布図を作成します。色(color)はシリンダー数に、形(shape)は駆動方式に基づいてデータポイントを区別します。

# 散布図の作成

ggplot(data, aes(x=MPG,y=Weight, color=Cylinders, shape=Drive)) +
geom_point(size=4.0) + # sizeを4に設定
theme_minimal() +
labs(title="MPG vs Weight by Cylinders and Drive Type",
x="Miles Per Gallon (MPG)",
y="Weight (lbs)") +
theme(
axis.title.x = element_text(size=16), # X軸のラベルのフォントサイズを設定
axis.title.y = element_text(size=16), # Y軸のラベルのフォントサイズを設定
axis.text.x = element_text(size=12, family="Helvetica", face="bold"), # X軸の数値のフォント設定
axis.text.y = element_text(size=12, family="Helvetica", face="bold") # Y軸の数値のフォント設定
)
  • ggplot(data, aes(...))ggplot2を用いて基本的なグラフの枠組みを設定します。dataは使用するデータフレームを指定し、aesはエステティック(視覚的属性)を設定する関数です。ここではx=MPGy=Weightで、それぞれの軸に表示するデータを指定しています。また、color=Cylindersshape=Driveにより、点の色をシリンダー数で、点の形を駆動方式で区別するように設定しています。
  • geom_point(size=4.0):点をプロットする関数です。size=4.0は点の大きさを設定しており、デフォルトよりも大きな点を描画します。
  • theme_minimal():グラフの見た目をシンプルにするためのテーマを適用します。余計な要素を取り除き、データの視覚化に集中できるデザインにします。
  • labs(...):グラフのタイトルと軸ラベルを設定します。titleでグラフのタイトル、xyでそれぞれX軸とY軸のラベルを指定しています。
  • theme(...):グラフの細かいスタイル設定を行います。axis.title.xaxis.title.yでそれぞれX軸とY軸のラベルのフォントサイズを16に設定します。axis.text.xaxis.text.yでX軸とY軸の目盛りのラベルのフォントサイズ、フォントファミリー(Helvetica)、フォントスタイル(bold、太字)を設定します。

このスクリプトを実行すると、燃費(MPG)と車重(Weight)の関係を示す散布図が作成されます。グラフはシリンダー数によって色分けされ、駆動方式によって点の形が異なります。また、グラフのタイトル、軸ラベル、軸の数値のフォントがカスタマイズされています。

ここまでのスクリプトを実行すると、次のような散布図が出来上がります。

特殊なグラフ

2024/4/26

R言語でQQプロットを作成する方法

はじめに QQプロット(Quantile-Quantileプロット)は統計分析で非常に役立つツールです。これを使って、データセットが特定の理論分布に従っているかどうかを視覚的に評価することができます。R言語には、この種のプロットを簡単に作成できる強力なツールが用意されています。この記事では、R言語を使用してQQプロットを作成する基本的なステップを説明します。 必要なパッケージ QQプロットを描くためには、基本的にstatsパッケージが必要ですが、これはRの標準パッケージに含まれているため、特別なインストー ...

ReadMore

グラフのカスタマイズ

2024/4/17

Rでエラーバー付きのグラフを作成する方法

はじめに データの可視化において、エラーバーはデータの変動や不確実性を表現する重要な手段です。R言語を用いたグラフ作成においてエラーバーを追加する方法を学ぶことで、データの解釈をより深く行うことが可能になります。この記事では、基本的なエラーバーの追加方法から、カスタマイズする方法までを段階的に解説します。 エラーバーを含むグラフの重要性 エラーバーは、データ点のばらつきや測定の不確かさを表すのに役立ちます。科学研究や技術報告でよく見られるこの表現方法は、データの信頼性や有効性を視覚的に伝えるために不可欠で ...

ReadMore

グラフのカスタマイズ

2024/4/17

R言語でのグラフ作成:X軸とY軸のスケール比の設定方法

はじめに R言語はデータ分析と可視化に非常に強力なツールです。特にグラフ作成機能は多くのデータサイエンティストや研究者に利用されています。この記事では、R言語でグラフを作成する際にX軸とY軸のスケール比を設定する方法を詳しく解説します。スケール比を調整することで、データの比率や関係性をより正確に表現することが可能になります。 グラフの基本的な作成方法 まず、R言語で基本的なグラフを作成する方法から見ていきましょう。ここでは、plot() 関数を使用してシンプルな散布図を描きます。 # サンプルデータの生成 ...

ReadMore

数学

2025/2/27

偏微分とは?初心者向けにわかりやすく解説!計算方法や応用事例まで

数学や物理、経済学、機械学習の分野では、「偏微分」という概念が頻繁に登場します。 例えば、以下のような場面で偏微分が活用されます。 ✅ 物理学:物体の運動を記述する方程式(速度や加速度)を導く✅ 経済学:利潤最大化やコスト最小化の最適化問題を解く✅ 機械学習:ニューラルネットワークの学習アルゴリズム(勾配降下法)に利用 では、偏微分とは何なのか?どのように計算すればよいのか?本記事では、偏微分の基礎から応用までを詳しく解説 していきます! 1. 偏微分の基礎知識 ...

ReadMore

R言語

2025/2/26

ベルヌーイ分布とは?確率論の基本から具体例、Rでのシミュレーションまで解説!

確率論や統計学の基礎において、「ある事象が起こるか、起こらないか」を表現するのに便利な分布がベルヌーイ分布です。 例えば、 コインを投げたときに表(1)が出る確率 メールがスパム(1)かそうでない(0)か 機械が正常に作動するか(1)しないか(0) このように、結果が**「成功」または「失敗」の二択** となる確率モデルを扱う際にベルヌーイ分布が使われます。本記事では、以下のポイントを解説します。 ✅ ベルヌーイ分布の基本概念と性質✅ 実際のデータや応用例を用いた説明' ...

ReadMore

R言語

2025/2/27

ロバスト統計学とは?異常値に強い統計手法の基礎からRによる実装まで徹底解説!

統計分析を行う際、データの中に 外れ値(異常値) が含まれていることはよくあります。例えば、以下のようなケースが考えられます。 ✅ 売上データにおいて、一部の異常に高い値がある✅ 医療データで、極端に異常な検査結果が混ざっている✅ センサー測定値にノイズが含まれ、誤ったデータが発生している このような異常値の影響を受けると、平均値や標準偏差などの統計量が歪み、本来のデータの傾向を適切に反映できなくなる 可能性があります。 この問題を解決するのが、ロバスト統計学(R ...

ReadMore

-散布図
-

S