「データをもっと立体的に分析したい」
「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つの変数を同時に可視化できます。
実際の作成手順
データの準備
サンプルデータ
商品名 | 価格(円) | 売上個数 | 利益率(%) |
---|---|---|---|
商品A | 1000 | 150 | 25 |
商品B | 1500 | 100 | 30 |
商品C | 800 | 200 | 20 |
商品D | 2000 | 80 | 35 |
商品E | 1200 | 120 | 28 |
手順1:データ範囲の選択
- データ範囲を選択
- 価格、売上個数、利益率の3列を選択
- 見出し行も含めて選択
- データの並び順を確認
- 1列目:X軸のデータ(価格)
- 2列目:Y軸のデータ(売上個数)
- 3列目:バブルサイズ(利益率)
手順2:バブルチャートの作成
- 「挿入」タブをクリック
- 「グラフ」グループの「散布図」をクリック
- 「バブル」を選択
- グラフが作成される
手順3:グラフの調整
軸の設定
- X軸を右クリック → 「軸の書式設定」
- 最小値・最大値を適切に設定
- Y軸も同様に設定
バブルサイズの調整
- バブルを右クリック → 「データ系列の書式設定」
- 「バブルのサイズを次の値に設定」で調整
- 適切なサイズ倍率を設定
色分けの追加
- 各バブルを個別に選択
- 「塗りつぶし」で色を設定
- 凡例を追加
高度なバブルチャート活用
条件付き書式との組み合わせ
利益率による色分け
# 利益率が30%以上:緑色
# 利益率が20-30%:黄色
# 利益率が20%未満:赤色
実装方法
- バブルを選択
- 「データ系列の書式設定」
- 「塗りつぶし」→「自動」
- 条件付き書式を適用
動的なバブルチャート
スライサーとの組み合わせ
- データをテーブル形式に変換
- 「挿入」→「スライサー」
- カテゴリ別フィルターを追加
- 動的な分析が可能
【代替方法2】色分け散布図で第3の変数を表現

色分け散布図の作成
基本的な手順
データの準備
A列:X軸データ
B列:Y軸データ
C列:カテゴリ(色分け基準)
作成手順
- 通常の散布図を作成
- データポイントを選択
- 「データ系列の書式設定」
- カテゴリ別に色を設定
自動色分けの設定
条件付き書式の活用
# 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散布図
ダッシュボード形式での表示
- 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散布図の作成手順
- Power BI Desktopを開く
- 「データを取得」→「Excel」
- データファイルを選択
- 「視覚化」→「3D散布図」
- 軸とサイズを設定
実際の設定例
軸の設定
- 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つの変数の関係が複雑で理解困難
- 重要な洞察が見えない
対処法
- データの前処理
- 外れ値の除去
- サンプリングによる点の間引き
- カテゴリ別の分割表示
- 段階的な分析
- まず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でのインタラクティブ機能
スライサーとの連動
実装手順
- データをテーブル形式に変換
- ピボットテーブルの作成
- スライサーの追加
- グラフとの連動設定
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分析
- メリット:高度な機能と表現力
- 制限:追加コストと学習コスト
効果的な活用のポイント
データ分析の観点
- 目的の明確化:何を発見したいか
- 適切な変数選択:意味のある組み合わせ
- 段階的なアプローチ:2Dから3Dへ
可視化の観点
- シンプルなデザイン:過度な装飾を避ける
- 適切な色選択:色覚障害への配慮
- 明確なラベル:軸とデータの説明
ビジネス活用の観点
- 仮説検証:データから洞察を得る
- 意思決定支援:具体的なアクションに結びつける
- 継続的改善:定期的な分析と更新
コメント