docs-lens-chart-settings について
Kibana Lens のチャート設定を記述する人向けのドキュメント作成スキルです。ソースコードで UI ラベル、表示順、条件付きオプションを確認し、パーティションチャート間の違いも扱います。
主な機能
- 01i18n 文字列で UI ラベルを確認
- 02JSX から設定の表示順を確認
- 03条件付きレンダリングを追跡
- 04パーティションチャートの設定を比較
- 05凡例オプションの表示条件を確認
活用シーン
- 01円グラフとドーナツ設定の記述
- 02凡例コントロールと順序の確認
- 03チャート種別ごとの条件付き項目の説明
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ elastic/ elastic-docs-skills --skill docs-lens-chart-settingsインストール後、Claude Code で/docs-lens-chart-settingsを入力して読み込まれたか確認します。
同梱ファイルevals/evals.json
詳細
ソースコードから Kibana Lens のグラフ設定を確認する
Lens のグラフ設定を文書化する際は、Kibana のソースコードを参照し、ラベル、オプション、表示順を必ず確認してください。UI のラベルを推測してはいけません。
主な原則
- UI ラベルは i18n の
defaultMessage文字列から取得します — 正確なラベルを必ず抽出してください。 - JSX の表示順 = UI の表示順です — コンポーネントツリーに表示される順序と同じ順序で設定を記載してください。
- 条件付きレンダリングは至るところで使われています — グラフの種類、選択したオプション、ディメンションの数など、特定の条件でのみ表示される設定が多数あります。条件をたどってください。
- 共有コンポーネントはグラフごとにパラメーター化されています — 同じ
LegendSettingsコンポーネントでも、渡される props によって、ツリーマップ、ワッフル、円グラフで動作が異なります。
ソースコードの構成
パーティション型のグラフ(円グラフ、ドーナツグラフ、ツリーマップ、モザイク、ワッフル)
すべてのパーティション型グラフのコードは、次の場所にあります。
x-pack/platform/plugins/shared/lens/public/visualizations/partition/
├── partition_charts_meta.ts # Per-chart config (toolbar options, legend config)
├── toolbar/
│ ├── style_settings.tsx # Orchestrates Style panel sections
│ ├── titles_and_text_settings.tsx # Slice labels + Slice values options
│ ├── appearance_settings.tsx # Donut hole (pie/donut only)
│ └── legend_settings.tsx # Partition-specific legend wrapper
共有レジェンドコンポーネント:
x-pack/platform/plugins/shared/lens/public/shared_components/legend/
├── legend_settings.tsx # Main legend settings (Visibility, Size, Truncation, Nested, Stats)
├── location/legend_location_settings.tsx # Position (only when `location` prop is defined)
└── size/legend_size_settings.tsx # Width/Size dropdown
その他のグラフの種類
各グラフの種類には、visualizations/ 配下に専用のディレクトリがあります。
- 棒グラフ、折れ線グラフ、面グラフは
visualizations/xy/ visualizations/heatmap/visualizations/gauge/visualizations/metric/visualizations/tagcloud/
確認手順
ステップ 1:グラフのメタデータを探す
パーティション型グラフの場合は、partition_charts_meta.ts から確認を始めます。このファイルでは、グラフごとに以下を定義しています。
toolbar.categoryOptions— スライスラベルのオプション(または、該当しない場合は空の配列)toolbar.numberOptions— スライス値のオプション(または、該当しない場合は空の配列)toolbar.emptySizeRatioOptions— ドーナツの穴のオプション(円グラフ/ドーナツグラフのみ)toolbar.isDisabled— スタイルパネル全体を無効にするかどうか(ワッフル)legend.defaultLegendStats— レジェンドで「統計情報/値を表示」を有効にする(ワッフルのみ)legend.hideNestedLegendSwitch— 「ネスト」トグルを非表示にする(ワッフル)legend.getShowLegendDefault— 自動モードでのレジェンド表示のデフォルト動作maxBuckets— 「グループ化」の最大ディメンション数
ステップ 2:スタイル設定をたどる
toolbar/style_settings.tsx を読み、スタイルパネルの構成を確認します。
emptySizeRatioOptionsがある場合 → 外観アコーディオンとタイトルとテキストアコーディオンを表示します- ない場合 →
PartitionTitlesAndTextSettingsのみを直接表示します(サブヘッダーなし)
次に toolbar/titles_and_text_settings.tsx を読みます。
categoryOptionsは最初のボタングループとして表示されます(ラベル:i18n キーxpack.lens.pieChart.labelSliceLabelsを確認)numberOptionsは2つ目のボタングループとして表示されます(ラベル:i18n キーxpack.lens.pieChart.sliceValuesを確認)numberDisplay === 'percent'の場合、小数点以下の桁数入力欄が表示されます
categoryOptions が空の場合、最初のボタングループは非表示になります。numberOptions が空の場合、2つ目のボタングループは非表示になります。isDisabled が true の場合、セクション全体が無効化または非表示になります。
ステップ 3:レジェンド設定をたどる
toolbar/legend_settings.tsx(パーティション用ラッパー)を読み、共有 LegendSettings コンポーネントに渡される props を確認します。確認する主な props は次のとおりです。
| Prop | 制御する内容 | 確認方法 |
|---|---|---|
legendOptions | 表示オプション(自動/表示/非表示) | すべてのパーティション型グラフに必ずあります |
position | location も渡された場合のみ表示 | パーティション型グラフでは location を渡さないため、位置は非表示です |
renderNestedLegendSwitch | ネストのトグル | !hideNestedLegendSwitch && groups > 1 |
allowedLegendStats | 統計情報/値を表示 | グラフのメタデータに defaultLegendStats が定義されている場合のみ |
legendSize / onLegendSizeChange | 幅のドロップダウン | isVerticalLegend が true の場合に表示 |
shouldTruncate / onTruncateLegendChange | ラベルの省略表示トグル | レジェンドが非表示でない場合は常に表示 |
showAutoLegendSizeOption | サイズのドロップダウンにある自動オプション | 8.3 より前のビジュアライゼーションのみ |
ステップ 4:レンダリング順序を確認する
共有の legend_settings.tsx の JSX を上から順に確認します。パーティションチャート(location プロパティなし)の実際のレンダリング順序は次のとおりです。
- 表示(常に表示)
- 幅(凡例が非表示でない場合。LegendSizeSettings を使用)
- ラベルの切り詰め + 行数制限(凡例が非表示でない場合)
- ネスト(凡例が非表示でなく、複数のグループがあり、
hideNestedLegendSwitchが false の場合)
パーティションチャートでレンダリングされない設定:
- 位置 —
locationプロパティが必要です(XY チャートのみがこのプロパティを渡します) - 統計 —
allowedLegendStats.length > 1が必要です - 値を表示 — Value/CurrentAndLastValue 型の許可された凡例統計がちょうど 1 つ必要です
ステップ 5:オプションのラベルを確認する
各ボタングループまたはドロップダウンについて、オプション配列の label または inputDisplay を確認します。よくある注意点は次のとおりです。
| 想定しがちなラベル | 実際の UI ラベル | ソース |
|---|---|---|
| 「ラベル」 | 「スライスラベル」 | xpack.lens.pieChart.labelSliceLabels |
| 「値」 | 「スライス値」 | xpack.lens.pieChart.sliceValues |
| 「凡例サイズ」 | 「幅」 | xpack.lens.shared.legendSizeSetting.label |
| 「切り詰め」 | 「ラベルの切り詰め」 | xpack.lens.shared.labelTruncation |
| 「最大行数」 | 「行数制限」 | xpack.lens.shared.maxLinesLabel |
| 「表示」(凡例) | 「表示」 | xpack.lens.pieChart.legendVisibility.show |
クイックリファレンス:チャートごとの違い
| 機能 | 円/ドーナツ | ツリーマップ | モザイク | ワッフル |
|---|---|---|---|---|
| スライスラベル | 非表示/内側/自動 | 非表示/表示 | (なし) | (なし) |
| スライス値 | 非表示/整数/パーセンテージ | 非表示/整数/パーセンテージ | 非表示/整数/パーセンテージ | (なし) |
| ドーナツの穴 | あり | なし | なし | なし |
| スタイルパネルが無効 | いいえ | いいえ | いいえ | はい |
| 凡例の位置 | なし | なし | なし | なし |
| 凡例の幅 | あり | あり | あり | あり |
| ネストされた凡例 | あり(グループが 1 つ超) | あり(グループが 1 つ超) | あり(グループが 1 つ超) | なし |
| 値を表示 | なし | なし | なし | あり |
| 統計 | なし | なし | なし | なし |
| 凡例のデフォルト表示 | バケットが 1 つ超の場合に自動表示 | 自動非表示 | 自動非表示 | 常に自動表示 |
| Group by の最大ディメンション数 | 3 | 2 | 2 | 1 |
| 色のマッピング | 最初の Group by のみ | 最初の Group by のみ | 縦軸 | Group by |
よくある間違い
- パーティションチャートに「位置」があると思い込む — ありません。「位置」があるのは XY タイプのチャートのみです。
- 「幅」ではなく「凡例サイズ」を使う — 実際のラベルは「幅」です。
- 「幅」のオプションに「自動」を含める — 「自動」が表示されるのは、8.3 より前のビジュアライゼーションのみです。
- ワッフル以外のチャートに「統計」を記載する —
defaultLegendStatsがあるのはワッフルのみです。 - すべてのチャートに「タイトルとテキスト」のサブヘッダーがあると思い込む —
emptySizeRatioOptionsが定義されている場合(円/ドーナツ)にのみ表示されます。 - ネストされた凡例の条件を誤解する —
hideNestedLegendSwitch !== trueかつ、Group by のディメンションが複数あることが必要です。 - すべての Group by レベルで色のマッピングが機能すると思い込む — 最初のディメンションでのみ使用できます。