Appearance
階層チャート
概要
階層チャート(template_type: 'HIERARCHY_CHART')では、階層構造を持つデータをツリー・ツリーマップ・サンバースト・ドリルダウン可能な棒グラフで描画できます。階層(hierarchies)に複数のディメンションを上位から順に指定し、値(value)にメトリクスを指定することで、階層に対する集計値を可視化できます。
指定可能な描画タイプは次の通りです。
render_type | 描画タイプ | 備考 |
|---|---|---|
TREE | ツリー | 階層を樹形図として描画 |
TREEMAP | ツリーマップ | 階層を入れ子の矩形として描画 |
SUNBURST | サンバースト | 階層を同心円として描画 |
BAR | 棒グラフ(ドリルダウン) | 棒グラフをクリックで階層をドリルダウン 2つ以上のディメンションを hierarchiesに指定 |
事前にチャート設定についても確認してください。
設定例
地域別売上の階層可視化
サンバーストの設定例
国(country)・都道府県(prefecture)・市区町村(city)の階層に対する売上(sales_amount)を、サンバーストで表示する場合、次のように設定します。
md
:::sql-block
```sql
SELECT
country,
prefecture,
city,
sales_amount
FROM
regional_sales
```
```yaml {.chart}
chartSettings:
template_type: HIERARCHY_CHART
component_settings:
render_type: SUNBURST
hierarchies:
- field: country
- field: prefecture
- field: city
value:
- field: sales_amount
aggregator: SUM
```
:::- データソースのSQLの実行結果として出力されるカラムを、チャート設定内で参照します
- 以降の設定例では、データソースの定義は省略し、
chartSettingsの中身のみを記述しますが、チャート設定からは必ずデータソースのカラムを参照する必要があります
- 以降の設定例では、データソースの定義は省略し、
render_type: SUNBURSTを指定(TREE/TREEMAPでも同じ設定で描画可能)hierarchiesに階層構造のディメンションを上位から順に指定(最低1つ必須)valueに集計対象のメトリクス(最大1つ・任意)を指定- 省略した場合は、行数(
COUNT(*))が値として利用されます
- 省略した場合は、行数(
- ソートの詳細はデータのソートを参照してください
- デフォルトは
order_by: VALUE_DESCで、値が大きい順にソートされます
- デフォルトは
上記の例では、次のようなSQLが生成され、チャート用のデータ加工が行われます。
sql
SELECT
country AS country___,
prefecture AS prefecture___,
city AS city___,
SUM(IFNULL(sales_amount, 0)) AS sales_amount___sum
FROM
/* データソースのSQL */
GROUP BY
country___,
prefecture___,
city___
ORDER BY
sales_amount___sum DESC
LIMIT
1001ドリルダウン可能な棒グラフの設定例
同じデータを render_type: BAR でドリルダウン可能な棒グラフとして表示する場合、次のように設定します。
yaml
template_type: HIERARCHY_CHART
component_settings:
render_type: BAR
hierarchies:
- field: country
- field: prefecture
- field: city
value:
- field: sales_amount
aggregator: SUMrender_type: BARを指定hierarchiesには2つ以上のディメンションを指定する必要があります- 棒をクリックすると、次の階層にドリルダウンします
BARの場合、frameは指定できません
データ加工オプション
描画対象の件数制限
limit により、描画対象のデータの件数を制限できます。詳細はデータの件数制限を参照してください。
フレーム機能の利用
frame にディメンションを指定することで、その値ごとにチャートを分割して並べて表示できます。詳細はフレーム機能を参照してください。
render_type: BARの場合、frameは指定できませんdisplay_settings.frame.independent_scaleは指定できません
表示のカスタマイズ
ラベルの設定(ツリー・ツリーマップ・サンバースト)
render_type が TREE / TREEMAP / SUNBURST の場合、display_settings.label で各ノードのラベル表示をカスタマイズできます。
ts
type HierarchyLabelSettings = {
hide?: boolean; // ラベル全体を非表示にする場合は true を指定
show_value?: boolean; // 値を表示する場合は true を指定
value_label_formatter?: FormatterSettings;
// for SUNBURST
label_width?: number; // ラベルの最大幅(px)。デフォルトは 120
};value_label_formatterで値の書式を指定できます。詳細はフォーマッター設定を参照してくださいlabel_widthはrender_type: SUNBURSTの場合のみ有効です
NULL値の扱い(サンバースト)
render_type: SUNBURST の場合、display_settings.data.show_null で、階層の値が NULL の行を描画対象に含めるかどうかを指定できます。デフォルトは false で、NULL の行は描画対象から除外されます
軸のカスタマイズ(棒グラフ)
render_type: BAR の場合、display_settings.x_axis / display_settings.y_axis で軸の表示をカスタマイズできます。
- 設定可能な項目は、軸の種類と設定を参照してください
- X軸はカテゴリ軸、Y軸は数値軸として描画されます
棒のカスタマイズ(棒グラフ)
render_type: BAR の場合、display_settings.bar で棒の表示をカスタマイズできます。
formatterで値の書式を指定できます。詳細はフォーマッター設定を参照してくださいvalue_labelで棒の上に値ラベルを表示できます。詳細は系列の表示設定のValueLabelSettingsを参照してくださいcolorで棒の色を指定できます。指定方法は色の指定を参照してください
その他の設定
- 次のカスタマイズについてはその他のチャート設定を参照してください
- テキスト設定(
display_settings.text)
- テキスト設定(
- フレーム表示時の設定(
display_settings.frame)についてはフレーム機能を参照してください
型定義
render_typeにより、描画タイプを指定します- 以下の型については、該当ドキュメントを参照してください
- 以下の型定義は対応するセクションを参照してください
HierarchyLabelSettings: ラベルの設定
描画タイプ:ツリー・ツリーマップ・サンバースト
ts
type ChartSettings = {
template_type: 'HIERARCHY_CHART';
component_settings: ComponentSettingsCommon & {
render_type: 'TREE' | 'TREEMAP' | 'SUNBURST';
hierarchies: DimensionField[]; // 最低1つ必須。配列の順序が階層の深さを表す(最初が最上位)
value: [] | [MetricsField]; // 省略した場合は COUNT(*) が利用されます
order_by?: AxisSortType;
order_by_custom?: SqlOrderBy[];
limit?: number;
frame?: [DimensionField];
frame_layout?: FrameLayout;
limit?: number;
};
display_settings?: {
text?: TextSettings;
frame?: Omit<FrameSettings, 'independent_scale'>;
label?: HierarchyLabelSettings;
data?: {
show_null?: boolean; // 階層の値が NULL の行を描画対象に含める場合は true (SUNBURST のみ有効)
};
};
};描画タイプ:棒グラフ(ドリルダウン)
ts
type ChartSettings = {
template_type: 'HIERARCHY_CHART';
component_settings: ComponentSettingsCommon & {
render_type: 'BAR';
hierarchies: DimensionField[]; // 2つ以上必須。配列の順序が階層の深さを表す(最初が最上位)
value: [] | [MetricsField]; // 省略した場合は COUNT(*) が利用されます
order_by?: AxisSortType;
order_by_custom?: SqlOrderBy[];
limit?: number;
};
display_settings?: {
text?: TextSettings;
x_axis?: AxisSettings;
y_axis?: AxisSettings;
bar?: {
formatter?: FormatterSettings;
value_label?: ValueLabelSettings;
color?: PaletteColorName;
};
};
};