ツリーマップを作成する方法

こちらのノートでは、ツリーマップを作成する方法を紹介いたします。

ツリーマップは階層構造を持つデータを表現することに適したチャートです。各四角形の面積が値の大きさを示し、親カテゴリーを同系色で表現することで、親カテゴリーが全体に占める割合と、子カテゴリーが全体や親カテゴリーに占める割合を視覚的に把握できます。

カテゴリー別の売上構成など、「全体の中でどの部分がどの程度を占めているか」を階層ごとに一目で把握したいときに特に有効です。

ツリーマップに必要なデータ

ツリーマップを作成するには、カテゴリー、サブカテゴリーのように階層構造になっている集計データが必要です。

上記は、製品サブカテゴリーごとの売上の集計データになりますが、このようなデータは手元にあることは少なく、多くの場合、以下のような未集計のデータが手元にあることが一般的です。

そのようなときには、データを集計する必要があります。

なお、こちらのノートで使用するサンプルのデータは以下のリンクからダウンロードいただけます。

treemapライブラリをインストールする

ツリーマップの作成にあたってはtreemapライブラリを利用します。プロジェクトメニューから、Rパッケージの管理を選択します。

続いて、テキストボックスにtreemapとタイプし、インストールボタンをクリックします。

「treemapのインストールに成功しました。」というメッセージが表示されたら、OKボタンをクリックします。

これでツリーマップを作成する準備が整いました。

ツリーマップを作成する

今回は以下のように1行が1つの注文を表すデータを使って、製品カテゴリーと製品サブカテゴリーの売上に関するツリーマップを作成していきます。

まず、このデータは未集計のデータですので、製品カテゴリーと製品サブカテゴリーごとに売上を集計していきます。

画面上部のAI データ加工のボタンを選択します。

AIプロンプトの入力欄が表示されたら、以下のようなプロンプトを実行します。

製品カテゴリーと製品サブカテゴリーごとに売上を集計する

プロンプトを実行すると、Rのコードが生成されるので、内容を確認して、「ステップとして実行」ボタンをクリックします。

これでツリーマップ用のデータを作成できました。

カスタム (R) チャートでツリーマップを作成する

チャート・ビューからカスタム (R) チャートを使うと、Rのコードを貼り付けるだけでツリーマップを作成できます。

そのため、チャート・ビューに移動し、チャートタイプの一覧から「カスタム (R) チャート」を選択します。

すると、Rスクリプトを入力するテキストエディタが表示されます。

Rスクリプトを貼り付けて実行する

続いて、以下のスクリプトをテキストエディタに貼り付けてください。${DATA} はExploratoryが現在アクティブなデータフレームを自動的に参照する専用の記法です。

library(treemap)
treemap(${DATA},
  index=c("製品カテゴリー", "製品サブカテゴリー"), # データフレーム名、製品カテゴリーにはデータ上の親カテゴリの列名、製品サブカテゴリーにはデータ上の子カテゴリの列名を指定
vSize= "売上",                          # 値を指定
type="index",                            # ツリーの色分けの方法を指定
palette = "Set1",                        # カラーパレットの選択
title="My Treemap",                      # チャートタイトルを設定
fontsize.labels=c(15,12),                # ラベルサイズの指定
fontcolor.labels=c("white","orange"),    # ラベルの色の指定
bg.labels=c("transparent"),              # ラベルの背景色の指定
align.labels=list(
    c("center", "center"), 
    c("right", "bottom")
        ),                                   # ラベルの表示位置の指定
fontfamily.labels = "HiraKakuProN-W3",   # 日本語をラベルに利用したい時に指定
fontfamily.title = "HiraKakuProN-W3",    # 日本語をラベルに利用したい時に指定
fontfamily.legend = "HiraKakuProN-W3",   # 日本語をラベルに利用したい時に指定
)

スクリプトを貼り付けたら「ビュー」ボタンをクリックすると、ツリーマップがプレビューに表示されます。

ノートやダッシュボードにチャートを挿入する

チャート・ビューで作成したチャートは、チャートのタイプを問わずダッシュボードやノートに配置することが可能です。

配置したチャートは他のチャートと同じようにダッシュボードを実行すると表示されます。

ノートやダッシュボードで直接ツリーマップを作成する

カスタム (R) チャートと同じRスクリプトを使って、Exploratoryのノートやダッシュボード上でも直接ツリーマップを作成することができます。

  • ノートやダッシュボードのコンテンツの追加メニューの紹介 - リンク

ノートの編集画面や、ダッシュボードのテキストパネルのコンテンツの追加ボタンから「R スクリプト」を選択すると、Rのコードを入力するためのコードブロックが表示されます。

続いて、以下のスクリプトを貼り付けます。

カスタム (R) チャートとの違いは、${DATA} の代わりにデータフレーム名(ここでは 注文)を直接指定する点のみです。

library(treemap)
treemap(注文, index=c("製品カテゴリー", "製品サブカテゴリー"), # 注文にはデータフレーム名、製品カテゴリーにはデータ上の親カテゴリの列名、製品サブカテゴリーにはデータ上の子カテゴリの列名を指定
vSize= "売上",                         # 値を指定
type="index",                            # ツリーの色分けの方法を指定
palette = "Set1",                        # カラーパレットの選択
title="My Treemap",                      # チャートタイトルを設定
fontsize.labels=c(15,12),                # ラベルサイズの指定
fontcolor.labels=c("white","orange"),    # ラベルの色の指定
bg.labels=c("transparent"),              # ラベルの背景色の指定
align.labels=list(
    c("center", "center"), 
    c("right", "bottom")
        ),                                   # ラベルの表示位置の指定
fontfamily.labels = "HiraKakuProN-W3",   # 日本語をラベルに利用したい時に指定
fontfamily.title = "HiraKakuProN-W3",    # 日本語をラベルに利用したい時に指定
fontfamily.legend = "HiraKakuProN-W3",   # 日本語をラベルに利用したい時に指定
)

すると以下のようにツリーマップが表示されます。

参考情報

  • カスタム (R) チャートの使い方 - リンク
Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio