Agent Skills by ALSEL
Anthropic Claudeデータ・分析⭐ リポ 0品質スコア 50/100

antv-g2-chart

G2 v5のチャートコードを生成します。ユーザーがG2を使った棒グラフ・折れ線グラフ・円グラフ・散布図・エリアチャートなどのデータビジュアライゼーションを求めた際に使用します。

description の原文を見る

Generate G2 v5 chart code. Use when user asks for G2 charts, bar charts, line charts, pie charts, scatter plots, area charts, or any data visualization with G2 library.

SKILL.md 本文

G2 v5 チャートコードジェネレーター

あなたは AntV G2 v5 チャートライブラリの専門家です。G2 v5 のベストプラクティスに従い、正確で実行可能なコードを生成します。


1. コア制約 / Core Constraints(必須に従うこと)

  1. container は必須: new Chart({ container: 'container', ... })
  2. Spec モード只を使用: chart.options({ type: 'interval', data, encode: {...} })(V4 チェーン API は禁止パターンを参照)
  3. chart.options() は 1 回のみ呼び出し可: 複数回呼び出すと完全に前の設定が上書きされ、最後の呼び出しのみが有効になります。複数 mark の積み重ねには、chart.options() を複数回呼び出すのではなく、type: 'view' + children 配列を使用してください
  4. encode オブジェクト: encode: { x, y }(V4 の .position('x*y') は禁止)
  5. transform は配列である必要があります: transform: [{ type: 'stackY' }]
  6. labels は複数形: label: {} ではなく labels: [{ text: 'field' }] を使用
  7. coordinate ルール
    • 座標系タイプを直接記述: coordinate: { type: 'theta' }coordinate: { type: 'polar' }
    • transpose は変換であり座標系タイプではなく、transform 配列に記述する必要があります: coordinate: { transform: [{ type: 'transpose' }] }
    • ❌ 禁止: coordinate: { type: 'transpose' }
  8. 範囲エンコーディング(ガントチャート、candlestick など): encode: { y: 'start', y1: 'end' }y: ['start', 'end'] は禁止
  9. スタイルの原則: ユーザーの説明で言及されたスタイル(radius、fillOpacity、color、fontSize など)はすべて完全に保持する必要があります。ユーザーが言及していない装飾スタイル(shadowBlurshadowColorshadowOffsetX/Y など)は追加しないでください
  10. animate ルール: ユーザーが明確にアニメーションを要求していない場合は animate 設定を追加しないでください(G2 はデフォルトアニメーションが付属しています)。ユーザーが明確にアニメーション要件を説明した場合のみ追加してください
  11. scale.color.palette は有効な値のみ使用可: palette は d3-scale-chromatic を通じて検索され、不正な名前は Unknown palette エラーをスローします。存在しない名前を推測または作成しないでください'blueOrange''redGreen''hot''jet''coolwarm' などはすべて不正です)。有効な一般的な値: 順序色 'blues'|'greens'|'reds'|'ylOrRd'|'viridis'|'plasma'|'turbo';発散色 'rdBu'|'rdYlGn'|'spectral';不確かな場合は range: ['#startColor', '#endColor'] カスタマイズを使用してください
  12. ユーザーコードで d3.* を使用禁止: G2 は内部で d3 を使用しますが、d3 オブジェクトはユーザーコードスコープに公開されません。d3.sum() などを呼び出すと ReferenceError: d3 is not defined がスローされます。集計が必要な場合は、G2 の組み込みオプション(sortXreducer: 'sum' など)を優先して使用してください。カスタマイズが必要な場合はネイティブ JS を使用してください: d3.sum(arr, d=>d.v)arr.reduce((s,d)=>s+d.v,0)d3.max(arr, d=>d.v)Math.max(...arr.map(d=>d.v))
  13. ユーザーが配色を指定しない場合、白または近白色を図形の塗りつぶし色として使用禁止: style: { fill: '#fff' }style: { fill: 'white' }style: { fill: '#ffffff' } などは白い背景では図形が完全に見えなくなります。配色を指定しない場合は、G2 の encode.color の自動テーマ色割り当てに依存するか、明確な視覚的区別がある色('#5B8FF9' など)を使用してください。以下は合法的な例外です: ラベルテキスト fill: '#fff'(暗い背景内ラベル)、分割線 stroke: '#fff'(スタック/pack/treemap の分割白線)
  14. paddingnumber | 'auto' のみを受け入れ、配列形式は禁止: padding: [40, 30, 40, 50] は G2 v5 では無効です(無視されるか報告されます)。四辺統一は padding: 40 を使用してください。方向別制御は paddingTop / paddingRight / paddingBottom / paddingLeft を個別に設定してください。デフォルト 'auto' はすでに座標軸/凡例のための空間を自動的に予約しており、ほとんどの場合手動設定は不要です。padding: 0 を設定禁止——自動計算をオフにし、座標軸/凡例が切り取られます;特定の方向のみ調整する場合は対応する方向のみを個別に設定してください
  15. autoFit: true の場合、同時に width を設定禁止: autoFit は完全に width を無視し、同時に出現する場合 width は無効です。autoFit: true の場合は height のみを設定してください。固定幅高さが必要な場合は autoFit を削除し、width + height を使用してください
  16. ユーザーがコンテナを指定しない場合: container のデフォルトは 'container' です。document.createElement('div') で作成しないでください。コードの末尾には chart.render(); が必須です

1.1 禁止パターン / Forbidden Patterns

V4 構文の使用禁止。V5 Spec モードを使用する必要があります:

// ❌ 禁止:V4 createView
const view = chart.createView();
view.options({...});

// ❌ 禁止:V4 チェーン API 呼び出し
chart.interval()
  .data([...])
  .encode('x', 'genre')
  .encode('y', 'sold')
  .style({ radius: 4 });

// ❌ 禁止:V4 チェーン encode
chart.line().encode('x', 'date').encode('y', 'value');

// ❌ 禁止:V4 source
chart.source(data);

// ❌ 禁止:V4 position
chart.interval().position('genre*sold');

// ✅ 正確:V5 Spec モード
chart.options({
  type: 'interval',
  data: [...],
  encode: { x: 'genre', y: 'sold' },
  style: { radius: 4 },
});

理由: V5 は Spec モードを使用し、構造が明確で、シリアル化、動的生成、デバッグが容易です。

createView の正確な V5 置き換え方案

chart.createView() は V4 では「複数ビューが同じコンテナを共有するが、データが異なる」のに使用され、V5 では 2 つのシナリオに対応しています:

シナリオ A: 同じ座標系内に複数の mark を積み重ねる(最も一般的)type: 'view' + children 配列を使用します。children 内に view または children を再度ネストすることはできません:

// ✅ 複数 mark 積み重ね(折線 + 散点)
chart.options({
  type: 'view',
  data,
  children: [
    { type: 'line',  encode: { x: 'date', y: 'value' } },
    { type: 'point', encode: { x: 'date', y: 'value' } },
  ],
});

シナリオ B: 複数の独立した座標系を並べて/積み重ねる(人口ピラミッド、butterfly グラフなど)type: 'spaceLayer' + children を使用します(各子ビューは独立したデータと座標系を持ちます):

// ✅ 人口ピラミッド:左右両側の独立ビューを積み重ねて、Y 軸を共有
chart.options({
  type: 'spaceLayer',
  children: [
    {
      type: 'interval',
      data: leftData,                              // 左側データ(負値または反転)
      coordinate: { transform: [{ type: 'transpose' }, { type: 'reflectX' }] },
      encode: { x: 'age', y: 'male' },
      axis: { y: { position: 'right' } },
    },
    {
      type: 'interval',
      data: rightData,                             // 右側データ
      coordinate: { transform: [{ type: 'transpose' }] },
      encode: { x: 'age', y: 'female' },
      axis: { y: false },
    },
  ],
});

// ✅ より簡単な方案:単一ビュー + 負値技巧(データは 1 つの配列内、方向で区別)
chart.options({
  type: 'interval',
  data: combinedData,                              // マージされたデータ、負値で方向を区別
  coordinate: { transform: [{ type: 'transpose' }] },
  encode: {
    x: 'age',
    y: (d) => d.sex === 'male' ? -d.population : d.population,
    color: 'sex',
  },
  axis: {
    y: { labelFormatter: (d) => Math.abs(d) },     // 絶対値を表示
  },
});

選択原則:

  • 両側のデータ構造が同じで、方向が反対なだけ → 負値技巧を優先(単一 interval、コード最も簡潔)
  • 両側で完全に独立した座標系/スケールが必要 → spaceLayer を使用

1.2 存在しない Mark タイプの使用禁止 / Hallucinated Mark Types

以下のタイプは他のチャートライブラリ(ECharts、Vega など)からのもので、G2 には存在しません。使用するとランタイムエラーが発生します:

❌ 誤った書き方✅ 正確な置き換え
type: 'ruleX'type: 'lineX'(垂直参考線)
type: 'ruleY'type: 'lineY'(水平参考線)
type: 'regionX'type: 'rangeX'(X 軸区間ハイライト)
type: 'regionY'type: 'rangeY'(Y 軸区間ハイライト)
type: 'venn'type: 'path' + data.transform: [{ type: 'venn' }]

G2 の合法的な mark タイプの完全なリスト(他のタイプを自由に作成しないでください):

  • 基本: intervallineareapointrectcelltextimagepathpolygonshape
  • 接続: linkconnectorvector
  • 参考線/区域: lineXlineYrangeXrangeYrange(きわめてまれで、x/y の両方を制限する必要がある 2 次元矩形の場合のみ使用でき、データの x/y フィールドは [start,end] 配列である必要があります)
  • 統計: boxboxplotdensityheatmapbeeswarm
  • 階層/関係: treemappackpartitiontreesankeychordforceGraph
  • 特別: wordCloudgaugeliquid
  • 拡張パッケージが必要: sunburst@antv/g2-extension-plot が必要です。旭日図 を参照)

2. 一般的なエラー / Common Mistakes

⚠️ 最頻度エラー: chart.options() を複数回呼び出し禁止

chart.options()全量置き換えで、マージではありません。複数回呼び出す場合、最後の 1 回のみ有効となり、前の設定はすべて失われます。各チャートは chart.options() を 1 回のみ呼び出すことができます。

// ❌ 誤り: `chart.options()` を複数回呼び出す——毎回前の設定を完全に置き換え、最後の 1 回のみ有効
chart.options({ type: 'interval', data, encode: { x: 'x', y: 'y' } });  // ❌ 上書きされる、レンダリングされない
chart.options({ type: 'line',     data, encode: { x: 'x', y: 'y' } });  // ❌ 上書きされる、レンダリングされない
chart.options({ type: 'text',     data, encode: { x: 'x', y: 'y', text: 'label' } });  // これのみ有効

// ✅ 正確: 複数 mark 積み重ねは `type: 'view'` + `children` 配列を使用し、1 回の `chart.options()` で完了
chart.options({
  type: 'view',
  data,
  children: [
    { type: 'interval', encode: { x: 'x', y: 'y' } },
    { type: 'line',     encode: { x: 'x', y: 'y' } },
    { type: 'text',     encode: { x: 'x', y: 'y', text: 'label' } },
  ],
});

// ✅ 子 mark が異なるデータを必要とする場合、`children` で個別にデータを指定
chart.options({
  type: 'view',
  data: mainData,
  children: [
    { type: 'interval', encode: { x: 'x', y: 'y' } },
    { type: 'text', data: labelData, encode: { x: 'x', text: 'label' } },
  ],
});

複数 mark 結合ルール:

  • children のみ使用可能。markslayers などのプロパティ禁止
  • children はネストできない(children 内に type: 'view' + children を再度持つことはできない)
  • 複雑な複数座標系結合は spaceLayer/spaceFlex を使用
// ❌ 誤り: `marks`/`layers` を使用(禁止)
chart.options({ type: 'view', data, marks: [...] });   // ❌
chart.options({ type: 'view', data, Layers: [...] });  // ❌

// ❌ 誤り: `children` ネスト(禁止)
chart.options({ type: 'view', children: [{ type: 'view', children: [...] }] });  // ❌

// ✅ 正確: 複雑な複数座標系結合は `spaceLayer` を使用
chart.options({
  type: 'spaceLayer',
  children: [
    { type: 'view', children: [...] },
    { type: 'line', encode: { x: 'x', y: 'y' } },
  ],
});

その他の一般的なエラー

// ❌ 誤り: padding 配列形式(CSS 短縮形)、G2 v5 非サポート、無視される
const chart = new Chart({ container: 'container', padding: [40, 30, 40, 50] });  // ❌

// ✅ 正確: 四辺統一
const chart = new Chart({ container: 'container', padding: 40 });

// ✅ 正確: 方向別制御
const chart = new Chart({ container: 'container', paddingTop: 40, paddingLeft: 60 });

// ❌ 誤り: container がない
const chart = new Chart({ width: 640, height: 480 });

// ✅ 正確: container 必須
const chart = new Chart({ container: 'container', width: 640, height: 480 });

// ❌ 誤り: transform をオブジェクトとして
chart.options({ transform: { type: 'stackY' } });

// ✅ 正確: transform を配列として
chart.options({ transform: [{ type: 'stackY' }] });

// ❌ 誤り: label(単数)
chart.options({ label: { text: 'value' } });

// ✅ 正確: labels(複数)
chart.options({ labels: [{ text: 'value' }] });

// ❌ 誤り: 不要なスケールタイプ指定
chart.options({ scale: { x: { type: 'linear' }, y: { type: 'linear' } } });

// ✅ 正確: G2 にスケールタイプを自動推論させる
chart.options({ scale: { y: { domain: [0, 100] } } });
<!-- CONSTRAINTS:END -->

3. 基本構造 / Basic Structure

import { Chart } from '@antv/g2';

const chart = new Chart({ container: 'container', width: 640, height: 480 });

chart.options({
  type: 'interval',           // Mark type
  data: [...],                // Data array
  encode: { x: 'field', y: 'field', color: 'field' },
  transform: [],              // Data transforms
  scale: {},                  // Scale config
  coordinate: {},             // Coordinate system
  style: {},                  // Style config
  labels: [],                 // Data labels
  tooltip: {},                // Tooltip config
  axis: {},                   // Axis config
  legend: {},                 // Legend config
});

chart.render();

4. コア概念 / Core

コア概念は G2 の基礎であり、これらの概念の理解は G2 の正確な使用の前提です。

4.1 Chart 初期化

Chart は G2 のコアクラスで、すべてのチャートは Chart インスタンスから始まります。

import { Chart } from '@antv/g2';

const chart = new Chart({
  container: 'container',  // 必須: DOM コンテナ ID または要素
  width: 640,              // オプション: 幅
  height: 480,             // オプション: 高さ
  autoFit: true,           // オプション: コンテナサイズに自動フィット
  padding: 'auto',         // オプション: 内側の余白
  theme: 'light',          // オプション: テーマ
});

詳細ドキュメント: Chart 初期化

4.2 encode チャネルシステム

encode はデータフィールドを視覚チャネルにマップします。これは G2 のコア概念です。

チャネル用途
xX 軸位置encode: { x: 'month' }
yY 軸位置encode: { y: 'value' }
colorencode: { color: 'category' }
sizeサイズencode: { size: 'population' }
shape形状encode: { shape: 'type' }

詳細ドキュメント: encode チャネルシステム

4.3 ビュー結合 (view + children)

view タイプと children 配列を使用して複数の mark を結合します。

chart.options({
  type: 'view',
  data,
  children: [
    { type: 'line', encode: { x: 'date', y: 'value' } },
    { type: 'point', encode: { x: 'date', y: 'value' } },
  ],
});

詳細ドキュメント: ビュー結合


5. 概念 / Concepts

概念ガイドは正確なチャートタイプと設定方案の選択を支援します。

5.1 チャートタイプ選択 / Chart Selection

データの特性と可視化の目標に基づいて、適切なチャートタイプを選択します:

データ関係推奨チャートMark
比較棒グラフ、水平棒グラフinterval
トレンド折線グラフ、面積グラフlinearea
占有率円グラフ、ドーナツグラフinterval + theta
分布ヒストグラム、箱ひげ図rectboxplot
関連散布図、バブルチャートpoint
階層矩形樹図、分割図、旭日図treemappartitionsunburst(拡張パッケージが必要)

詳細ドキュメント: チャートタイプ選択ガイド

5.2 視覚チャネル / Visual Channels

視覚チャネルはデータから視覚属性へのマッピング方法です:

チャネルタイプ適切なデータ認識精度
位置連続/離散最高
長さ連続
色(色相)離散
色(輝度)連続
サイズ連続中低
形状離散

詳細ドキュメント: 視覚チャネル

5.3 色理論 / Color Theory

適切な色スキームを選択し、チャートの可読性を向上させます:

シナリオ推奨スキーム
分類データ離散色パレットcategory10category20
連続データ順序色パレットBluesRdYlBu
正負対比発散色パレットRdYlGn

詳細ドキュメント: 色理論


6. Mark / チャートタイプ

Mark は G2 のコア可視化要素で、データの視覚的表現方法を決定します。各 Mark タイプは特定のデータタイプと可視化シナリオに適しています。

6.1 棒グラフシリーズ / Interval

棒グラフは分類データのサイズ比較に使用され、最も一般的なチャートタイプです。基本棒グラフは interval mark を使用し、積み重ね棒グラフは stackY transform を追加する必要があり、グループ化棒グラフは dodgeX transform を使用します。

タイプMarkキー設定
基本棒グラフinterval-
積み重ね棒グラフintervaltransform: [{ type: 'stackY' }]
グループ化棒グラフintervaltransform: [{ type: 'dodgeX' }]
パーセンテージ棒グラフintervaltransform: [{ type: 'normalizeY' }]
水平棒グラフintervalcoordinate: { transform: [{ type: 'transpose' }] }

詳細ドキュメント: 基本棒グラフ | 積み重ね棒グラフ | グループ化棒グラフ | パーセンテージ棒グラフ

6.2 折線グラフシリーズ / Line

折線グラフはデータが時間または有序カテゴリで変化する傾向を表示するのに使用されます。単線、複数線の比較、および異なるインターポレーション方法をサポートします。

タイプMarkキー設定
基本折線グラフline-
複数シリーズ折線lineencode: { color: 'category' }
スムーズ曲線lineencode: { shape: 'smooth' }
ステップ線lineencode: { shape: 'step' }

詳細ドキュメント: 基本折線グラフ | 複数シリーズ折線 | LineX/LineY

6.3 面積グラフシリーズ / Area

面積グラフは折線グラフの基礎で領域を塗りつぶします。量が時間とともに変化する程度を強調します。積み重ね面積グラフは各部分が全体への貢献を表示するのに使用されます。

タイプMarkキー設定
基本面積グラフarea-
積み重ね面積グラフareatransform: [{ type: 'stackY' }]

詳細ドキュメント: 基本面積グラフ | 積み重ね面積グラフ

6.4 円グラフ/ドーナツグラフ / Arc (Pie/Donut)

円グラフは各部分が全体に占める割合関係を表示するのに使用されます。theta 座標系を interval mark と組み合わせて実装します。

タイプMarkキー設定
円グラフintervalcoordinate: { type: 'theta' } + stackY
ドーナツグラフintervalcoordinate: { type: 'theta', innerRadius: 0.6 }

詳細ドキュメント: 円グラフ | ドーナツグラフ

6.5 散布図/バブルチャート / Point

散布図は 2 つの数値変数の関係を表示するのに使用されます。バブルチャートはポイントのサイズで第 3 の次元を表示します。

タイプMarkキー設定
散布図pointencode: { x, y }
バブルチャートpointencode: { x, y, size }

詳細ドキュメント: 散布図 | バブルチャート

6.6 ヒストグラム / Histogram

ヒストグラムは連続数値データの分布を表示するのに使用され、rect マークと binX 変換を使用して実装されます。棒グラフとは異なり、ヒストグラムのバーは隙間がなく、データが連続であることを示します。

タイプMarkキー設定
基本ヒストグラムrecttransform: [{ type: 'binX', y: 'count' }]
複数分布の比較rectgroupBy グループ化

詳細ドキュメント: ヒストグラム

6.7 バラ図/ラジアル棒グラフ / Polar Charts

極座標系下のチャート。半径または円弧長でデータサイズを表示し、視覚的により美しくなります。

タイプMarkキー設定
バラ図intervalcoordinate: { type: 'polar' }
ラジアル棒グラフintervalcoordinate: { type: 'radial' }

詳細ドキュメント: バラ図 | ラジアル棒グラフ

6.8 統計分布グラフ / Distribution

データ分布の特性を表示するチャート。統計分析と探索的データ分析に適しています。

タイプMark用途
箱ひげ図boxplotデータ分布統計
Box 図box五数概要を手動指定した箱ひげ図
密度図densityカーネル密度推定曲線
バイオリン図density + boxplot密度分布 + 統計情報
多角形polygonカスタム多角形領域

詳細ドキュメント: 箱ひげ図 | Box 図 | 密度図 | バイオリン図 | 多角形

6.9 関係グラフ / Relation

データ間の関係を表示するチャート。ネットワーク分析と集合関係の表示に適しています。

タイプMark用途
サンキー図sankeyフロー/転送関係
コード図chordマトリックスフロー関係
ベン図path + venn データ変換セット交差関係(venn はデータ変換であり mark タイプではない)
アーク接続図line + pointノードリンク関係

詳細ドキュメント: サンキー図 | コード図 | ベン図 | アーク接続図

6.10 プロジェクト管理グラフ / Project

プロジェクト管理と進行状況追跡に適したチャート。

タイプMark用途
ガントチャートintervalタスク時間割り当て
弾丸図interval + pointKPI インジケーター表示

詳細ドキュメント: ガントチャート | 弾丸図

6.11 金融チャート / Finance

金融データ分析に適したプロフェッショナルチャート。

タイプMark用途
K 線チャートlink + interval株式 4 値データ

詳細ドキュメント: K 線チャート

6.12 多次元データグラフ / Multivariate

多次元データ関係を表示するチャート。

タイプMark用途
平行座標系line多次元データ関係分析
レーダーチャートline多次元データ比較

詳細ドキュメント: 平行座標系 | レーダーチャート

6.13 比較グラフ / Comparison

データ比較に適したチャート。

タイプMark用途
双方向棒グラフinterval正負データ比較

詳細ドキュメント: 双方向棒グラフ

6.14 基本マーク / Basic Marks

基本マークは G2 の低レベルの構築ブロックで、独立して使用したり、複雑なチャートを構築するために結合できます。

タイプMark用途
矩形rect矩形領域、ヒストグラム/ヒートマップの基礎
テキストtextテキスト標注とラベル
画像image画像マーク。データポイントを画像で表現
パスpathカスタムパス描画
リンクlink2 点間の接続線
コネクタconnectorデータポイント間の接続線
形状shapeカスタム形状描画
ベクトルvectorベクトル/矢印マーク、風場図など

詳細ドキュメント: rect | text | image | path | link | connector | shape | vector

6.15 範囲マーク / Range

範囲マークはデータの区間範囲を表示するのに使用されます。

タイプMark用途
時間段/区間ハイライト(X 方向)rangeXX 軸区間。encode: { x: 'start', x1: 'end' }
数値範囲ハイライト(Y 方向)rangeYY 軸区間。encode: { y: 'min', y1: 'max' }
2 次元矩形領域rangex/y フィールドが [start,end] 配列の場合。encode: { x:'x', y:'y' }、きわめてまれに使用

詳細ドキュメント: range/rangeY | rangeX

6.16 分布とパッキンググラフ / Distribution & Pack

タイプMark用途
蜂群図point + packデータポイント密集配置分布表示
パッキング図pack階層データの円形パッキング

詳細ドキュメント: 蜂群図 | パッキング図

6.17 階層構造グラフ / Hierarchy

階層データを表示するチャート。面積または半径でデータ占有率を表現します。

タイプMark用途
矩形樹図treemap階層データ占有率
旭日図sunburst⚠️多層階層同心円表示(@antv/g2-extension-plot インポート必要)
分割図partition階層データ分割表示
樹図tree樹形階層構造

詳細ドキュメント: 矩形樹図 | 旭日図 | 分割図 | 樹図

6.18 その他のチャート / Others

タイプMark用途
ヒートマップcell2 次元マトリックスデータ可視化
密度ヒートマップheatmap連続密度ヒートマップ
ゲージgaugeインジケーター進行状況表示
ワードクラウドwordCloudテキスト頻度可視化
水波図liquidパーセンテージ進行状況

詳細ドキュメント: ヒートマップ | 密度ヒートマップ | ゲージ | ワードクラウド | 水波図


7. データ / Data

データ変換はデータロード段階で実行され、data.transform で設定され、そのデータを使用するすべてのマークに影響します。

7.1 Data Transform タイプ(data.transform で設定)

変換タイプ用途使用例シーン
foldfold幅表を長表に変換複数列データを複数シリーズに変換
filterfilter条件フィルタリング無効データをフィルタリング
sortsortコールバック関数でソートカスタムソートロジック
sortBysortByフィールドでソートフィールド値でソート
mapmapデータマッピング変換計算フィールド追加
joinjoinデータテーブル結合外部データ関連付け
pickpick指定フィールド選択フィールド精簡
renamerenameフィールド名変更フィールド名変更
slicesliceデータ範囲切り取りページング/切り取り
emaema指数移動平均時系列平滑化
kdekdeカーネル密度推定密度図/バイオリン図
loglogコンソールへデータ出力デバッグ
customcustomカスタムデータ処理複雑な変換

7.2 データ形式とパターン

タイプ用途
テーブルデータ形式G2 が受け入れる標準テーブルデータ形式の説明
データ変換パターンData Transform と Mark Transform の結合使用パターン

詳細ドキュメント: filter | sort | sortBy | fold | slice | ema | kde | log | fetch | データ変換パターン

7.3 一般的なエラー: Data Transform を誤った位置に配置

// ❌ 誤り: fold はデータ変換であり、mark transform に配置できない
chart.options({
  type: 'interval',
  data: wideData,
  transform: [{ type: 'fold', fields: ['a', 'b'] }],  // ❌ 誤り!
});

// ✅ 正確: fold を data.transform に配置
chart.options({
  type: 'interval',
  data: {
    type: 'inline',
    value: wideData,
    transform: [{ type: 'fold', fields: ['a', 'b'] }],  // ✅ 正確
  },
  transform: [{ type: 'stackY' }],  // mark transform
});

7.4 結合例:幅表データ + 積み重ねグラフ

// 幅表データ:各月に複数タイプのデータ列がある
const wideData = [
  { year: '2000', 'タイプ A': 21, 'タイプ B': 16, 'タイプ C': 8 },
  { year: '2001', 'タイプ A': 25, 'タイプ B': 16, 'タイプ C': 8 },
  // ...
];

chart.options({
  type: 'interval',
  data: {
    type: 'inline',
    value: wideData,
    transform: [
      // ✅ Data Transform: 幅表を長表に変換
      { type: 'fold', fields: ['タイプ A', 'タイプ B', 'タイプ C'], key: 'type', value: 'value' },
    ],
  },
  encode: { x: 'year', y: 'value', color: 'type' },
  transform: [
    // ✅ Mark Transform: 積み重ね
    { type: 'stackY' },
  ],
  coordinate: { type: 'polar' },  // 極座標系
});

8. 変換 / Transforms

マーク変換は視覚チャネルを結合する際に実行され、マークの transform 配列で設定され、データ集計と重なり回避などに使用されます。

設定位置: transform 配列。dataencode と同レベルで、data.transform にはありません

chart.options({
  type: 'interval',
  data,
  encode: { x: 'category', y: 'value', color: 'type' },
  transform: [  // ✅ Mark Transform: data/encode と同レベル
    { type: 'stackY' },
    { type: 'sortX', by: 'y' },
  ],
});

8.1 重なり回避変換 / Anti-overlap

変換タイプ用途
積み重ねstackYデータ積み重ね。積み重ねグラフに使用
グループ化dodgeXデータグループ化。グループ化グラフに使用
抖動jitter散点抖動で重なり回避
X 軸抖動jitterXX 方向抖動
Y 軸抖動jitterYY 方向抖動
パッキングpackデータポイント密集配置

詳細ドキュメント: stackY | dodgeX | jitter | jitterX | jitterY | pack

8.2 集計変換 / Aggregation

変換タイプ用途
汎用グループ化group汎用グループ化集計
グループ化集計groupX / groupY次元別グループ化と集計
グループ化色groupColor色別グループ化集計
分箱bin2 次元分箱
X 軸分箱binXX 軸方向分箱
サンプリングsampleデータサンプリング

詳細ドキュメント: group | groupX | groupY | groupColor | bin | binX | sample

8.3 ソート変換 / Sorting

変換タイプ用途
X 軸ソートsortXX チャネルでソート
Y 軸ソートsortYY チャネルでソート
色ソートsortColor色チャネルでソート

詳細ドキュメント: sortX | sortY | colorSort

8.4 選択変換 / Selection

変換タイプ用途
選択selectグローバル選択データ
X 軸選択selectXX グループ別選択
Y 軸選択selectYY グループ別選択

詳細ドキュメント: select | selectX | selectY

8.5 その他の変換 / Others

変換タイプ用途
正規化normalizeYY 軸正規化
差値diffY差値計算
対称symmetryYY 軸対称
弾性 XflexXX 軸弾性レイアウト
積み重ね入場stackEnter入場アニメーション積み重ね

詳細ドキュメント: normalizeY | diffY | symmetryY | flexX | stackEnter


9. 相互作用 / Interactions

G2 は豊富な組み込み相互作用を提供し、データ探索とチャート操作に使用されます。

9.1 選択クラス相互作用 / Selection

相互作用タイプ用途
要素選択elementSelectクリック選択データ要素
条件別選択elementSelectBy条件別一括選択
枠選択brush / brushX / brushY矩形区域選択
2D 枠選択brushXYXY 同時枠選択
軸枠選択brushAxis座標軸範囲選択
凡例フィルタリングlegendFilter凡例クリックでデータフィルタリング

詳細ドキュメント: elementSelect | elementSelectBy | brush | brushXY | brushAxis | legendFilter

9.2 ハイライトクラス相互作用 / Highlight

相互作用タイプ用途
要素ハイライトelementHighlightホバーで要素ハイライト
条件別ハイライトelementHighlightBy条件別一括ハイライト
ホバースケールelementHoverScaleホバー時要素拡大
凡例ハイライトlegendHighlight凡例ホバーで対応要素ハイライト
枠選択ハイライトbrushXHighlight / brushYHighlight枠選択区域ハイライト

詳細ドキュメント: elementHighlight | elementHighlightBy | elementHoverScale | legendHighlight | brushXHighlight | brushYHighlight | 単一軸枠選択ハイライト

9.3 フィルタークラス相互作用 / Filter

相互作用タイプ用途
スライダーフィルタリングsliderFilterスライダーでデータ範囲フィルタリング
スクロールバーフィルタリングscrollbarFilterスクロールバーでデータフィルタリング
枠選択フィルタリングbrushFilter枠選択区域フィルタリング
X 軸枠選択フィルタリングbrushXFilterX 軸方向枠選択フィルタリング
Y 軸枠選択フィルタリングbrushYFilterY 軸方向枠選択フィルタリング
適応フィルタリングadaptiveFilter適応データフィルタリング

詳細ドキュメント: sliderFilter | scrollbarFilter | brushFilter | brushXFilter | brushYFilter | adaptiveFilter

9.4 その他の相互作用 / Others

相互作用タイプ用途
ツールチップtooltipホバーでデータ詳細表示
ポップアップツールチップpoptipシンプルなポップアップツールチップ
ドリルダウンdrilldown階層データドリルダウン
矩形樹図ドリルダウンtreemapDrilldown矩形樹図階層ドリルダウン
ズームfisheye魚眼拡大鏡効果
スクロールホ

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
antvis
リポジトリ
antvis/chart-visualization-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/antvis/chart-visualization-skills / ライセンス: MIT

関連スキル

OpenAIデータ・分析⭐ リポ 1,451

hugging-face-trackio

Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。

by gradio-app
汎用データ・分析⭐ リポ 855

btc-bottom-model

ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。

by star23
Anthropic Claudeデータ・分析⭐ リポ 380

protein_solubility_optimization

タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。

by SpectrAI-Initiative
Anthropic Claudeデータ・分析⭐ リポ 1,743

research-lookup

Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。

by K-Dense-AI
Anthropic Claudeデータ・分析⭐ リポ 299

tree-formatting

ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。

by majiayu000
汎用データ・分析⭐ リポ 145

querying-indonesian-gov-data

インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。

by suryast
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: antvis · antvis/chart-visualization-skills · ライセンス: MIT