Excelで3次元散布図を作る方法|立体的にデータを分析しよう

Excel

「データをもっと立体的に分析したい」
「3つの変数の関係を一目で把握したい」
「売上・価格・需要の関係を同時に見たい」

そんなときに役立つのが3次元散布図です。複数の要素が複雑に関連するビジネスデータの分析では、2次元では見えない関係性が3次元で明らかになることがあります。

ところが、Excelの標準機能には直接3D散布図を作成するメニューがなく、困ってしまう人が多いです。「3Dグラフ」という名前はあるものの、実際には散布図とは異なる機能です。

この記事では、Excelで3次元散布図を作る方法と代替手段、さらに3Dでデータを可視化する際の注意点まで、初心者にもわかりやすく詳しく解説します。実際のビジネスシーンでの活用例も豊富に紹介します。

スポンサーリンク

そもそも3次元散布図とは?

基本的な概念

2次元散布図との違い

  • 2次元散布図:X軸とY軸の2軸でデータをプロット
  • 3次元散布図:X軸・Y軸・Z軸の3軸でデータを表現

通常の散布図は平面上にデータポイントを配置しますが、3次元散布図では立体空間内にデータポイントを配置します。これにより、3つの変数の関係性や傾向を一度に把握できます。

実際の活用例

ビジネスでの応用例

マーケティング分析

  • X軸:広告費
  • Y軸:売上
  • Z軸:顧客満足度

在庫管理

  • X軸:在庫数
  • Y軸:回転率
  • Z軸:利益率

不動産価格分析

  • X軸:立地スコア
  • Y軸:建物面積
  • Z軸:価格

具体的な発見例

例:アイスクリーム店の売上分析

気温(X軸)  湿度(Y軸)  売上(Z軸)
30度      60%      150万円
25度      80%      100万円
35度      40%      200万円

この分析から以下が判明:

  • 気温が高く、湿度が低いときに売上が最大
  • 湿度が高すぎると気温が高くても売上が伸びない
  • 最適な気象条件での営業戦略が立てられる

Excelで3次元散布図は作れるの?

Excelの限界

結論 Excelの標準機能には**真の3D散布図(XYZの3軸で点を自由に配置)**はありません。

Excelの「3Dグラフ」の実態

  • 3D棒グラフ:棒を立体的に表示するだけ
  • 3D折れ線グラフ:線を立体的に見せるだけ
  • 3D円グラフ:円を立体的に表示するだけ

これらは視覚的な効果は高いものの、データの分布を3次元空間で分析するものではありません。

Excelでできること・できないこと

できること

  • バブルチャート:3つの変数を表現可能
  • 色分け散布図:第3の変数を色で表現
  • サイズ分け散布図:第3の変数をサイズで表現
  • 複数の2D散布図:角度を変えて複数作成

できないこと

  • 真の3D空間プロット:X・Y・Z軸での立体配置
  • 回転・拡大縮小:3D空間での自由な視点変更
  • 立体的なデータ探索:3D空間内でのデータ操作

【代替方法1】バブルチャート(バブル散布図)を活用

バブルチャートの基本

バブルチャートとは

  • X軸:第1の変数
  • Y軸:第2の変数
  • バブルサイズ:第3の変数

これにより、3つの変数を同時に可視化できます。

実際の作成手順

データの準備

サンプルデータ

商品名価格(円)売上個数利益率(%)
商品A100015025
商品B150010030
商品C80020020
商品D20008035
商品E120012028

手順1:データ範囲の選択

  1. データ範囲を選択
    • 価格、売上個数、利益率の3列を選択
    • 見出し行も含めて選択
  2. データの並び順を確認
    • 1列目:X軸のデータ(価格)
    • 2列目:Y軸のデータ(売上個数)
    • 3列目:バブルサイズ(利益率)

手順2:バブルチャートの作成

  1. 「挿入」タブをクリック
  2. 「グラフ」グループの「散布図」をクリック
  3. 「バブル」を選択
  4. グラフが作成される

手順3:グラフの調整

軸の設定

  1. X軸を右クリック → 「軸の書式設定」
  2. 最小値・最大値を適切に設定
  3. Y軸も同様に設定

バブルサイズの調整

  1. バブルを右クリック → 「データ系列の書式設定」
  2. 「バブルのサイズを次の値に設定」で調整
  3. 適切なサイズ倍率を設定

色分けの追加

  1. 各バブルを個別に選択
  2. 「塗りつぶし」で色を設定
  3. 凡例を追加

高度なバブルチャート活用

条件付き書式との組み合わせ

利益率による色分け

# 利益率が30%以上:緑色
# 利益率が20-30%:黄色
# 利益率が20%未満:赤色

実装方法

  1. バブルを選択
  2. 「データ系列の書式設定」
  3. 「塗りつぶし」→「自動」
  4. 条件付き書式を適用

動的なバブルチャート

スライサーとの組み合わせ

  1. データをテーブル形式に変換
  2. 「挿入」→「スライサー」
  3. カテゴリ別フィルターを追加
  4. 動的な分析が可能

【代替方法2】色分け散布図で第3の変数を表現

色分け散布図の作成

基本的な手順

データの準備

A列:X軸データ
B列:Y軸データ
C列:カテゴリ(色分け基準)

作成手順

  1. 通常の散布図を作成
  2. データポイントを選択
  3. 「データ系列の書式設定」
  4. カテゴリ別に色を設定

自動色分けの設定

条件付き書式の活用

# C列の値によって自動色分け
=IF(C2>=30, "緑", IF(C2>=20, "黄", "赤"))

VBAでの自動化

Sub ColorScatterPlot()
    Dim chart As Chart
    Set chart = ActiveSheet.ChartObjects(1).Chart
    
    Dim series As Series
    Set series = chart.SeriesCollection(1)
    
    Dim i As Integer
    For i = 1 To series.Points.Count
        Dim value As Double
        value = Range("C" & (i + 1)).Value
        
        If value >= 30 Then
            series.Points(i).Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
        ElseIf value >= 20 Then
            series.Points(i).Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
        Else
            series.Points(i).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
        End If
    Next i
End Sub

複数の2D散布図による3D表現

異なる角度からの分析

XY平面

  • X軸:変数1
  • Y軸:変数2

XZ平面

  • X軸:変数1
  • Z軸:変数3

YZ平面

  • Y軸:変数2
  • Z軸:変数3

実装例

3つの散布図を並べて表示

# シート1:XY散布図
# シート2:XZ散布図
# シート3:YZ散布図

ダッシュボード形式での表示

  1. 3つの散布図を同一シートに配置
  2. 共通の色分けルールを適用
  3. スライサーで連動フィルター

【代替方法3】Excelアドインと外部ツールの活用

Excel VBAでのカスタム3D散布図

基本的なVBAコード

Sub Create3DScatterPlot()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    
    ' 3D散布図の擬似的な実装
    Dim i As Integer
    For i = 2 To 11 ' データ範囲
        Dim x As Double, y As Double, z As Double
        x = ws.Cells(i, 1).Value
        y = ws.Cells(i, 2).Value
        z = ws.Cells(i, 3).Value
        
        ' 3D座標を2D座標に変換
        Dim x2d As Double, y2d As Double
        x2d = x + z * 0.5
        y2d = y + z * 0.3
        
        ' 変換された座標でプロット
        ws.Cells(i, 5).Value = x2d
        ws.Cells(i, 6).Value = y2d
    Next i
    
    ' 変換されたデータで散布図を作成
    Dim chart As Chart
    Set chart = ws.Shapes.AddChart2(240, xlXYScatter).Chart
    chart.SetSourceData ws.Range("E2:F11")
End Sub

高度な3D変換

等角投影法の実装

Function IsometricProjection(x As Double, y As Double, z As Double) As Variant
    Dim angle As Double
    angle = 3.14159 / 6 ' 30度
    
    Dim x2d As Double, y2d As Double
    x2d = (x - z) * Cos(angle)
    y2d = (x + z) * Sin(angle) + y
    
    IsometricProjection = Array(x2d, y2d)
End Variant

Power BIでの3D散布図

Power BIの利点

Excelとの連携

  • Excelファイルの直接読み込み
  • リアルタイムデータ更新
  • 高度な3D可視化機能

3D散布図の作成手順

  1. Power BI Desktopを開く
  2. 「データを取得」→「Excel」
  3. データファイルを選択
  4. 「視覚化」→「3D散布図」
  5. 軸とサイズを設定

実際の設定例

軸の設定

  • X軸:売上金額
  • Y軸:顧客数
  • Z軸:利益率
  • 凡例:地域
  • サイズ:店舗面積

インタラクティブ機能

  • マウスでの3D回転
  • ズームイン・アウト
  • フィルター機能
  • ドリルダウン

Python(matplotlib)での3D散布図

基本的なコード例

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import pandas as pd

# Excelファイルの読み込み
df = pd.read_excel('data.xlsx')

# 3D散布図の作成
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')

# データのプロット
ax.scatter(df['X'], df['Y'], df['Z'], 
          c=df['Category'], s=df['Size']*10, 
          alpha=0.7, cmap='viridis')

# 軸ラベルの設定
ax.set_xlabel('売上金額')
ax.set_ylabel('顧客数')
ax.set_zlabel('利益率')

# タイトルの設定
ax.set_title('3次元散布図分析')

# 表示
plt.show()

高度な分析機能

回帰平面の表示

from sklearn.linear_model import LinearRegression
import numpy as np

# 回帰モデルの作成
model = LinearRegression()
X = df[['X', 'Y']]
y = df['Z']
model.fit(X, y)

# 回帰平面の作成
xx, yy = np.meshgrid(np.linspace(X['X'].min(), X['X'].max(), 20),
                     np.linspace(X['Y'].min(), X['Y'].max(), 20))
zz = model.predict(np.c_[xx.ravel(), yy.ravel()])
zz = zz.reshape(xx.shape)

# 平面の描画
ax.plot_surface(xx, yy, zz, alpha=0.3, color='red')

【実践活用編】ビジネスでの3次元散布図応用例

マーケティング分析

顧客セグメンテーション

分析軸

  • X軸:年収
  • Y軸:購買頻度
  • Z軸:単価

期待される発見

  • 高年収・高頻度・高単価の優良顧客セグメント
  • 年収は低いが頻度が高い常連客セグメント
  • 単発購入の価格敏感セグメント

実装例

# データ準備
顧客ID | 年収 | 購買回数 | 平均単価
001    | 600  | 12       | 15000
002    | 400  | 24       | 8000
003    | 800  | 6        | 25000

商品ポートフォリオ分析

分析軸

  • X軸:市場成長率
  • Y軸:市場シェア
  • Z軸:利益率

戦略的判断

  • 成長市場での高シェア・高利益商品:投資拡大
  • 成熟市場での高シェア商品:収益最大化
  • 新興市場での低シェア商品:戦略検討

品質管理・製造業

製品品質分析

分析軸

  • X軸:温度
  • Y軸:湿度
  • Z軸:不良率

品質改善への活用

  • 最適な製造条件の特定
  • 品質変動要因の分析
  • 予防保全の計画立案

設備効率分析

分析軸

  • X軸:稼働率
  • Y軸:生産速度
  • Z軸:エネルギー消費

効率化の発見

  • 高稼働率でも低エネルギーの最適点
  • 生産速度とエネルギー消費の関係
  • 設備更新の優先順位

人事・組織分析

従業員満足度分析

分析軸

  • X軸:給与満足度
  • Y軸:仕事満足度
  • Z軸:継続意思

人事戦略への活用

  • 離職リスクの高い従業員の特定
  • 満足度向上の重点領域
  • 人材育成プログラムの効果測定

金融・投資分析

ポートフォリオ分析

分析軸

  • X軸:リターン
  • Y軸:リスク
  • Z軸:流動性

投資判断

  • 効率的フロンティアの可視化
  • リスク分散の効果確認
  • 最適資産配分の決定

【注意点とベストプラクティス】3次元散布図の効果的な活用

よくある問題と対処法

問題1:情報過多による混乱

症状

  • データポイントが多すぎて判読困難
  • 3つの変数の関係が複雑で理解困難
  • 重要な洞察が見えない

対処法

  1. データの前処理
    • 外れ値の除去
    • サンプリングによる点の間引き
    • カテゴリ別の分割表示
  2. 段階的な分析
    • まず2次元で関係を確認
    • 第3の変数を徐々に追加
    • 仮説検証型のアプローチ

問題2:色やサイズの効果的な使用

効果的な色分け

# 連続値の場合
値 < 20:赤色(警告)
20 ≤ 値 < 30:黄色(注意)
値 ≥ 30:緑色(良好)

# カテゴリの場合
カテゴリA:青色
カテゴリB:赤色
カテゴリC:緑色

サイズ設定のコツ

  • 最小サイズ:5pt(視認可能)
  • 最大サイズ:20pt(他を圧迫しない)
  • 線形スケールより対数スケールが効果的

問題3:誤解を招く表現

避けるべき表現

  • 過度な3D効果
  • 意味のない装飾
  • 不適切なスケール設定

推奨される表現

  • シンプルで見やすいデザイン
  • 明確な軸ラベル
  • 適切な凡例

データ品質の確保

前処理の重要性

データクリーニング

# 外れ値の検出と除去
Q1 = df['value'].quantile(0.25)
Q3 = df['value'].quantile(0.75)
IQR = Q3 - Q1

# 外れ値の定義
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# クリーンなデータの抽出
clean_df = df[(df['value'] >= lower_bound) & 
              (df['value'] <= upper_bound)]

正規化・標準化

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
df_scaled = scaler.fit_transform(df[['X', 'Y', 'Z']])

統計的な妥当性

相関関係の事前確認

相関行列の作成

import seaborn as sns

# 相関行列の可視化
correlation_matrix = df.corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')

多重共線性の確認

from statsmodels.stats.outliers_influence import variance_inflation_factor

# VIF(分散拡大要因)の計算
vif = pd.DataFrame()
vif['variables'] = df.columns
vif['VIF'] = [variance_inflation_factor(df.values, i) 
              for i in range(df.shape[1])]

【上級テクニック】動的な3次元散布図の実装

Excelでのインタラクティブ機能

スライサーとの連動

実装手順

  1. データをテーブル形式に変換
  2. ピボットテーブルの作成
  3. スライサーの追加
  4. グラフとの連動設定

VBAでの高度な制御

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then ' スライサーの値変更を検知
        UpdateScatterPlot
    End If
End Sub

Sub UpdateScatterPlot()
    Dim chart As Chart
    Set chart = ActiveSheet.ChartObjects("Chart1").Chart
    
    ' フィルター条件に基づいてデータ範囲を動的に変更
    Dim newRange As Range
    Set newRange = GetFilteredData()
    
    chart.SetSourceData newRange
End Sub

リアルタイム更新機能

外部データソースとの連携

データベース接続

Sub ConnectToDatabase()
    Dim conn As Object
    Set conn = CreateObject("ADODB.Connection")
    
    ' データベースへの接続
    conn.Open "Provider=SQLOLEDB;Data Source=server;Initial Catalog=database"
    
    ' 3D散布図用のクエリ実行
    Dim rs As Object
    Set rs = conn.Execute("SELECT X, Y, Z FROM AnalysisData WHERE Date = GETDATE()")
    
    ' データの更新
    UpdateChartData rs
End Sub

API連携

Sub GetDataFromAPI()
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    ' API呼び出し
    http.Open "GET", "https://api.example.com/data", False
    http.send
    
    ' レスポンスの処理
    If http.Status = 200 Then
        ProcessAPIResponse http.responseText
    End If
End Sub

まとめ

Excelでの3次元散布図作成は、標準機能には真の3D散布図はないものの、様々な代替手段で実現可能です。

方法別の適用シーン

バブルチャート

  • 適用場面:3つの連続変数の関係分析
  • メリット:Excel標準機能で実現可能
  • 制限:視覚的な3D表現ではない

色分け散布図

  • 適用場面:カテゴリ別の分析
  • メリット:直感的でわかりやすい
  • 制限:連続値の表現に限界

外部ツール活用

  • 適用場面:本格的な3D分析
  • メリット:高度な機能と表現力
  • 制限:追加コストと学習コスト

効果的な活用のポイント

データ分析の観点

  1. 目的の明確化:何を発見したいか
  2. 適切な変数選択:意味のある組み合わせ
  3. 段階的なアプローチ:2Dから3Dへ

可視化の観点

  1. シンプルなデザイン:過度な装飾を避ける
  2. 適切な色選択:色覚障害への配慮
  3. 明確なラベル:軸とデータの説明

ビジネス活用の観点

  1. 仮説検証:データから洞察を得る
  2. 意思決定支援:具体的なアクションに結びつける
  3. 継続的改善:定期的な分析と更新

コメント

タイトルとURLをコピーしました