高度なグラフ作成
Graph Builder タブを開き、Graph Type から Custom Graph を選択します。Graph Builder は Analysis → Graph Builder... から開けます。
Graph Builder は Bar Chart、Histogram、Scatter Plot など、複数の Graph Type を提供しています。 描画したいものが決まり切った形式のグラフで、多少の調整さえできればよい場合には、これらは手軽で使いやすいものです。
ただある程度突っ込んだ分析をしていると、より柔軟に描画内容を制御して、独自のグラフを作りたくなる場面が出てきます。 Custom Graph はそのための機能を提供します。
Custom Graph は、Grammar of Graphics12という理論にもとづいています。 グラフを「データ」「統計変換」「幾何オブジェクト」「座標系」といった構成要素に分解し、これらをレイヤーとして自由に組み合わせます。
- 複数のグラフタイプを1つのグラフに重ね合わせる(例:散布図+回帰直線)
- データを統計的に変換してから可視化する(例:ヒストグラム、カーネル密度推定)
- ファセット(小区画)で多次元データを探索する
- 座標軸のスケールや方向を柔軟に制御する
他の Graph Type が「完成品の家具」だとすれば、Custom Graph は「組み立て式の素材セット」です。基本的な構成要素を理解すれば、使い方次第でほぼ無限の可視化パターンを作成できます。
Grammar of Graphics の7つの構成要素
Custom Graph は7つの要素を組み合わせてグラフを構築します。
- Data: 可視化対象のデータセット
- Aesthetics: 変数(データセットの列)と視覚属性(位置、色、サイズなど)との対応関係
- Layers: 複数の視覚要素を重ねる場合の、その各要素
- Statistics: データの統計変換(ビニング、平滑化など)
- Scales: データ値から視覚値への変換方法
- Coordinates: 座標系(直交座標、軸の入れ替えなど)
- Facets: 複数の小グラフをまとめたグラフを作る場合の、その構成
これらを組み合わせることで、データの多様な側面を可視化できます。
Data - データの選択
まずは可視化するデータセットを選択します。ここでは Auto MPG データセット(1970-1982年の自動車398台の燃費データ)を使います。
Aesthetics - 美的要素のマッピング
データの列を視覚属性にマッピングします。最も基本的なのは、2つの連続変数を x 軸と y 軸にマッピングすることです。
Data: Auto MPG
Aesthetics: x = weight, y = mpg
Geometry: Point

重い車ほど燃費が悪い、という明確な負の相関が見えます。
色と対応させる
3つ目の変数を色にマッピングすることで、さらに情報を追加できます。
例えばorigin(usa、europe、japan)で色分けしてみます。
Aesthetics: x = weight, y = mpg, color = origin

サイズと対応させる
horsepowerを点のサイズに対応させます。
Aesthetics: x = weight, y = mpg, color = origin, size = horsepower

大きな点ほど馬力が高いことを示します。重くて馬力の高い車は燃費が悪い、という関係が視覚的に理解できます。
Layers - レイヤーの重ね合わせ
レイヤーにより、複数のグラフを重ねられます。 例えば散布図の上に LOESS(局所重み付け回帰)による平滑化曲線を追加してみます。
Layer 1: Point (x = weight, y = mpg)
Layer 2: Line + Smooth統計 (method = loess)

青い線が平滑化曲線です。平均的な傾向を曲線で示せます。
Statistics - 統計変換
データをそのまま表示するだけでなく、統計的に変換して表示できます。
ヒストグラム(Binning)
燃費の分布を見るため、データをビン(区間)に分割してカウントします。
Aesthetics: x = mpg
Geometry: Bar
Statistics: Bin (bins = 20)

ほとんどの車が15-30 mpg の範囲に集中していることがわかります。分布はやや右に偏っており、燃費の良い車は少数派です。
密度推定
ビンの代わりに滑らかな密度曲線で分布を表現できます。
Aesthetics: x = mpg
Geometry: Line
Statistics: Density

ヒストグラムと同じ情報を、連続的な曲線で表現しています。
複数グループの密度比較
カテゴリごとに密度曲線を重ねることで、分布の違いを比較できます。
originごとにヒストグラムの上に密度曲線を描いてみましょう。
Layer 1 (Bar):
Aesthetics: x = mpg, fill = origin
Geometry: Bar
Statistics: Bin (bins = 30)
Layer 2 (Line):
Aesthetics: x = mpg, color = origin
Geometry: Line
Statistics: Density (Y Scale = Count)

ポイント:
- Layer 1 (Bar):
fill = originで棒グラフの塗りつぶし色を分ける - Layer 2 (Line):
color = originで密度曲線の線色を分ける。Y Scale = Countでヒストグラムとスケールを合わせる fillは面の塗りつぶし、colorは線や点の色を制御します。Bar と Line で同じ色スケールが使われるため、色が一致します
日本車は高燃費側、米国車は低燃費側に分布のピークがあることが明確です。
Position - 位置調整
複数のカテゴリを棒グラフで比較する際、位置調整が重要になります。
積み上げ棒グラフ
Aesthetics: x = model_year, fill = cylinders
Geometry: Bar
Statistics: Count
Position: Stack

各年の車種の内訳が積み上げで表示されます。1970年代は8気筒車が多く、後半になるにつれ4気筒車が増えています。
並列棒グラフ
Position を dodge に変更すると、横に並べて表示されます。
Position: Dodge

各シリンダー数の推移が比較しやすくなります。
Coordinates - 座標系
軸の入れ替え
ヒストグラムや棒グラフを横向きにすると、長いラベルが読みやすくなります。
Aesthetics: x = mpg
Geometry: Bar
Statistics: Bin
Coordinates: Flip

縦軸と横軸が入れ替わり、ヒストグラムが横向きに表示されます。カテゴリ名が長い場合や、縦方向のスペースを有効活用したい場合に便利です。
Facets - ファセット分割
カテゴリごとにグラフを分割して並べることで、サブグループの比較が容易になります。Facets セクションには2つのタイプがあります:Facet Wrap(単一変数による分割)と Facet Grid(2変数による行列分割)。
Facet Wrap - 単一変数による分割
Facet Wrap は、1つのカテゴリカル変数でデータを分割し、複数のパネルをグリッド状に配置します。
分割の基準に使う変数は、名義尺度または順序尺度である必要があります。ここでは cylinders 変数の尺度を Ordinal に変更してから描画しています。尺度の変更は Data Table で列を右クリックし、Edit Scale から行えます。
Aesthetics: x = weight, y = mpg
Geometry: Point
Facets: Type = Facet Wrap (Single Variable)
Variable = cylinders

4気筒、6気筒、8気筒それぞれで、重量と燃費の関係を並べて比較できます。8気筒車は全体的に重く、燃費も悪い範囲に集中しています。
別の例として、originで分割することもできます:
Aesthetics: x = weight, y = mpg
Geometry: Point
Facets: Type = Facet Wrap (Single Variable)
Variable = origin

origin(europe、japan、usa)ごとにパネルが横並びに配置されます。
Facet Wrap では、パネルの配置を制御するオプションがあります:
- Variable: 分割に使用するカテゴリカル変数
- Columns: 1行あたりのパネル数(オプション)
- Rows: 列の数(オプション)
Columns のみを指定すると、行数が自動計算されます。Rows のみを指定すると、列数が自動計算されます。両方を省略すると、パネル数に応じて最適な配置が計算されます。
Facet Grid - 2変数による行列分割
Facet Grid は、2つのカテゴリカル変数を使って行(Rows)と列(Columns)を定義し、より複雑な比較を可能にします。
Facets: Type = Facet Grid (Two Variables)
Rows = origin
Columns = cylinders

シリンダー数と原産地の組み合わせごとにグラフが配置されます
Scales - スケールの制御
対数スケール
データの範囲が広い場合、対数スケールが有効です。
Scales: x = log

色スケール
どのような色を使うかを、色スケールで指定できます。
連続変数、カテゴリカル変数それぞれで使用可能なパレットが定義されています。
Aesthetics: x = weight, y = mpg, color = origin
Scales: Palette = Viridis (Discrete)

Viridis (Discrete) は、知覚的に均一で色覚多様性に配慮したパレットです。カテゴリカルデータ用に最適化されており、印刷時やモノクロ表示でも区別しやすくなります。他にも Plasma、Inferno、Magma の discrete 版が利用可能です。
Geometry/Statistics リファレンス
Geometry と Statistics の一覧は Custom Graph リファレンス を参照してください。
参考文献
See also
- Custom Graph リファレンス - Geometry と Statistics の一覧
- グラフの作成 - Histogram、Scatter Plot などの基本グラフ
脚注
-
Wilkinson, L. (2005). The Grammar of Graphics (2nd ed.). Springer. https://doi.org/10.1007/0-387-28695-0 ↩
-
Wickham, H. (2010). A Layered Grammar of Graphics. Journal of Computational and Graphical Statistics, 19(1), 3-28. https://doi.org/10.1198/jcgs.2009.07098 ↩