[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70HSHPXF0KTQPCQAHYYZ4MG":3,"skill-same:01M70HSHPXF0KTQPCQAHYYZ4MG":788},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M70HSHPXF0KTQPCQAHYYZ4MG","antv-g2-chart",null,"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.","mdnaimul22\u002Fhuman-skills","mdnaimul22","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F64520358?v=4","01M70FH95MH2H796Q01TYSFZ03","Naimul","01M70FH96798CQR4YHA13F17GA",3,"MIT","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002FSKILL.md",[18,23,28],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"chart","antv g2 chart","Charts","generate","library","data visualization","for","use","user","visualization","when","code","line","data","with","bar","2026-11-10 10:12:30",false,"---\nname: antv-g2-chart\ndescription: 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.\n---\n\n# G2 v5 Chart Code Generator\n\nYou are an expert in AntV G2 v5 charting library. Generate accurate, runnable code following G2 v5 best practices.\n\n---\n\n## 1. Core Constraints (MUST follow)\n\n1. **`container` is mandatory**: `new Chart({ container: 'container', ... })`\n2. **Use Spec Mode ONLY**: `chart.options({ type: 'interval', data, encode: {...} })` (See Forbidden Patterns for V4 chained API)\n3. **`chart.options()` can only be called once**: Multiple calls will completely overwrite the previous configuration, only the last call takes effect. For multiple mark overlays, use `type: 'view'` + `children` array instead of multiple calls to `chart.options()`\n4. **`encode` object**: `encode: { x, y }` (V4's `.position('x*y')` is forbidden)\n5. **`transform` must be array**: `transform: [{ type: 'stackY' }]`\n6. **`labels` is plural**: Use `labels: [{ text: 'field' }]` not `label: {}`\n7. **`coordinate` rules**:\n   - Directly specify coordinate type: `coordinate: { type: 'theta' }`, `coordinate: { type: 'polar' }`\n   - `transpose` is a **transformation**, not a coordinate type, and must be placed in the `transform` array: `coordinate: { transform: [{ type: 'transpose' }] }`\n   - ❌ Forbidden: `coordinate: { type: 'transpose' }`\n8. **Range encoding** (Gantt chart, candlestick, etc.): `encode: { y: 'start', y1: 'end' }`, forbidden: `y: ['start', 'end']`\n9. **Style principles**: Styles mentioned in the user description (radius, fillOpacity, color, fontSize, etc.) must be fully preserved; do not add decorative styles not mentioned by the user (shadowBlur, shadowColor, shadowOffsetX\u002FY, etc.)\n10. **`animate` rules**: Do not add `animate` configuration when the user does not explicitly request animation (G2 has default animations built-in), only add when the user explicitly describes animation requirements\n11. **`scale.color.palette` can only use valid values**: Palette is looked up via d3-scale-chromatic, invalid names will throw `Unknown palette` error. **Do not infer or create non-existent names** (e.g., `'blueOrange'`, `'redGreen'`, `'hot'`, `'jet'`, `'coolwarm'` are all invalid). Common valid values: sequential color scales `'blues'|'greens'|'reds'|'ylOrRd'|'viridis'|'plasma'|'turbo'`; diverging color scales `'rdBu'|'rdYlGn'|'spectral'`; when unsure, use `range: ['#startColor', '#endColor']` for custom replacement\n12. **Forbidden to use `d3.*` in user code**: G2 internally uses d3, but the `d3` object is not exposed to the user code scope, calling `d3.sum()` etc. will throw `ReferenceError: d3 is not defined`. For aggregation, prioritize using G2 built-in options (e.g., `sortX`'s `reducer: 'sum'`), when custom aggregation is necessary, use native 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))`\n13. **When the user does not specify a color scheme, do not use white or near-white as the shape fill color**: `style: { fill: '#fff' }`, `style: { fill: 'white' }`, `style: { fill: '#ffffff' }` etc. will make the shape completely invisible on a white background. When no color scheme is specified, rely on G2's `encode.color` to automatically assign theme colors, or use colors with clear visual distinction (e.g., `'#5B8FF9'`). The following are valid exceptions: label text `fill: '#fff'` (labels within dark backgrounds), separator lines `stroke: '#fff'` (white separator lines in stacked\u002Fpack\u002Ftreemap)\n14. **`padding` only accepts `number | 'auto'`, array form is forbidden**: `padding: [40, 30, 40, 50]` is invalid in G2 v5 (will be ignored or throw an error). For uniform padding, use `padding: 40`; for directional control, use `paddingTop` \u002F `paddingRight` \u002F `paddingBottom` \u002F `paddingLeft` individually; default `'auto'` automatically reserves space for axes\u002Flegends, manual configuration is usually unnecessary. **Forbidden to set `padding: 0`**—this will disable automatic calculation, causing axes\u002Flegends to be truncated; when adjusting only one direction, set the corresponding direction individually\n15. **When `autoFit: true`, do not set `width` simultaneously**: `autoFit` will completely ignore `width`, rendering it ineffective when both are present. When `autoFit: true`, set only `height`; when fixed width and height are needed, remove `autoFit` and use `width` + `height` instead\n16. **When the user does not specify a container**: `container` defaults to `'container'`, do not create via `document.createElement('div')`, the code must end with `chart.render();`\n\n### 1.1 Forbidden Patterns\n\n**Forbidden: V4 Syntax**, Must use V5 Spec Mode:\n\n\n```javascript\n\u002F\u002F ❌ Forbidden: V4 createView\nconst view = chart.createView();\nview.options({...});\n\n\u002F\u002F ❌ Forbidden: V4 Chained API Calls\nchart.interval()\n  .data([...])\n  .encode('x', 'genre')\n  .encode('y', 'sold')\n  .style({ radius: 4 });\n\n\u002F\u002F ❌ Forbidden: V4 Chained encode\nchart.line().encode('x', 'date').encode('y', 'value');\n\n\u002F\u002F ❌ Forbidden: V4 source\nchart.source(data);\n\n\u002F\u002F ❌ Forbidden: V4 position\nchart.interval().position('genre*sold');\n\n\u002F\u002F ✅ Correct: V5 Spec Mode\nchart.options({\n  type: 'interval',\n  data: [...],\n  encode: { x: 'genre', y: 'sold' },\n  style: { radius: 4 },\n});\n```\n\n**Reason**: V5 uses Spec mode, which has a clear structure and is easy to serialize, dynamically generate, and debug.\n\n#### Correct V5 Alternative for `createView`\n\n`chart.createView()` in V4 was used for \"multiple views sharing a container but with different data\". In V5, it corresponds to two scenarios:\n\n**Scenario A: Multiple marks stacked within the same coordinate system (most common)**\n→ Use `type: 'view'` + `children` array, `children` cannot be nested with `view` or `children`:\n\n```javascript\n\u002F\u002F ✅ Multiple marks stacked (line + point)\nchart.options({\n  type: 'view',\n  data,\n  children: [\n    { type: 'line',  encode: { x: 'date', y: 'value' } },\n    { type: 'point', encode: { x: 'date', y: 'value' } },\n  ],\n});\n```\n\n**Scenario B: Multiple independent coordinate systems side by side or stacked (e.g., population pyramid, butterfly chart)**\n→ Use `type: 'spaceLayer'` + `children` (each child view has independent data and coordinate system):\n\n```javascript\n\u002F\u002F ✅ Population Pyramid: Two independent views stacked, sharing the Y-axis\nchart.options({\n  type: 'spaceLayer',\n  children: [\n    {\n      type: 'interval',\n      data: leftData,                              \u002F\u002F Left data (negative values or flipped)\n      coordinate: { transform: [{ type: 'transpose' }, { type: 'reflectX' }] },\n      encode: { x: 'age', y: 'male' },\n      axis: { y: { position: 'right' } },\n    },\n    {\n      type: 'interval',\n      data: rightData,                             \u002F\u002F Right data\n      coordinate: { transform: [{ type: 'transpose' }] },\n      encode: { x: 'age', y: 'female' },\n      axis: { y: false },\n    },\n  ],\n});\n\n\u002F\u002F ✅ Simpler approach: Single view + negative value trick (data can be in one array)\nchart.options({\n  type: 'interval',\n  data: combinedData,                              \u002F\u002F Combined data, using negative values to distinguish direction\n  coordinate: { transform: [{ type: 'transpose' }] },\n  encode: {\n    x: 'age',\n    y: (d) => d.sex === 'male' ? -d.population : d.population,\n    color: 'sex',\n  },\n  axis: {\n    y: { labelFormatter: (d) => Math.abs(d) },     \u002F\u002F Display absolute values\n  },\n});\n```\n\n**Selection Principle**:\n- If both sides have the same data structure but opposite directions → **Prioritize negative value trick** (single `interval`, most concise code)\n- If both sides require completely independent coordinate systems\u002Fscales → Use `spaceLayer`\n\n### 1.2 Prohibited Hallucinated Mark Types\n\nThe following types are from other charting libraries (such as ECharts, Vega) and **do not exist in G2**. Using them will result in runtime errors:\n\n| ❌ Incorrect Usage | ✅ Correct Replacement |\n|--------------------|------------------------|\n| `type: 'ruleX'`    | `type: 'lineX'` (vertical reference line) |\n| `type: 'ruleY'`    | `type: 'lineY'` (horizontal reference line) |\n| `type: 'regionX'`  | `type: 'rangeX'` (X-axis range highlight) |\n| `type: 'regionY'`  | `type: 'rangeY'` (Y-axis range highlight) |\n| `type: 'venn'`     | `type: 'path'` + `data.transform: [{ type: 'venn' }]` |\n\n**Complete List of Valid Mark Types in G2** (do not create other types arbitrarily):\n- Basic: `interval`, `line`, `area`, `point`, `rect`, `cell`, `text`, `image`, `path`, `polygon`, `shape`\n- Connections: `link`, `connector`, `vector`\n- Reference Lines\u002FAreas: `lineX`, `lineY`, `rangeX`, `rangeY`; `range` (rarely used, only when both x\u002Fy need to define a 2D rectangle, and the x\u002Fy fields of the data must be `[start, end]` arrays)\n- Statistical: `box`, `boxplot`, `density`, `heatmap`, `beeswarm`\n- Hierarchical\u002FRelational: `treemap`, `pack`, `partition`, `tree`, `sankey`, `chord`, `forceGraph`\n- Special: `wordCloud`, `gauge`, `liquid`\n- Requires Extension Package: `sunburst` (requires `@antv\u002Fg2-extension-plot`, see [Sunburst Chart](references\u002Fmarks\u002Fg2-mark-sunburst.md))\n---\n\n## 2. Common Mistakes\n\n### ⚠️ Most Frequent Error: Prohibit Multiple Calls to `chart.options()`\n\n`chart.options()` is a **full replacement**, not a merge. When called multiple times, **only the last call takes effect**, and all previous configurations are lost. **Each chart can only call `chart.options()` once.**\n\n```javascript\n\u002F\u002F ❌ Wrong: Multiple calls to chart.options() —— Each call fully replaces the previous one, only the last call takes effect\nchart.options({ type: 'interval', data, encode: { x: 'x', y: 'y' } });  \u002F\u002F ❌ Overwritten, not rendered\nchart.options({ type: 'line',     data, encode: { x: 'x', y: 'y' } });  \u002F\u002F ❌ Overwritten, not rendered\nchart.options({ type: 'text',     data, encode: { x: 'x', y: 'y', text: 'label' } });  \u002F\u002F Only this takes effect\n\n\u002F\u002F ✅ Correct: Multiple marks must use type: 'view' + children, resolved in one chart.options() call\nchart.options({\n  type: 'view',\n  data,\n  children: [\n    { type: 'interval', encode: { x: 'x', y: 'y' } },\n    { type: 'line',     encode: { x: 'x', y: 'y' } },\n    { type: 'text',     encode: { x: 'x', y: 'y', text: 'label' } },\n  ],\n});\n\n\u002F\u002F ✅ When child marks require different data, specify data separately within children\nchart.options({\n  type: 'view',\n  data: mainData,\n  children: [\n    { type: 'interval', encode: { x: 'x', y: 'y' } },\n    { type: 'text', data: labelData, encode: { x: 'x', text: 'label' } },\n  ],\n});\n```\n\nMulti-mark combination rules:\n- Only use `children`, prohibit `marks`, `layers`, etc.\n- `children` cannot be nested (`children` cannot contain `type: 'view'` + `children`)\n- Use `spaceLayer`\u002F`spaceFlex` for complex multi-coordinate system combinations\n\n```javascript\n\u002F\u002F ❌ Wrong: Using marks\u002Flayers (prohibited)\nchart.options({ type: 'view', data, marks: [...] });   \u002F\u002F ❌\nchart.options({ type: 'view', data, layers: [...] });  \u002F\u002F ❌\n\n\u002F\u002F ❌ Wrong: Nested children (prohibited)\nchart.options({ type: 'view', children: [{ type: 'view', children: [...] }] });  \u002F\u002F ❌\n\n\u002F\u002F ✅ Correct: Use spaceLayer for complex multi-coordinate system combinations\nchart.options({\n  type: 'spaceLayer',\n  children: [\n    { type: 'view', children: [...] },\n    { type: 'line', encode: { x: 'x', y: 'y' } },\n  ],\n});\n```\n\n### Other Common Errors\n\n```javascript\n\u002F\u002F ❌ Wrong: padding in array form (CSS shorthand), not supported in G2 v5, will be ignored\nconst chart = new Chart({ container: 'container', padding: [40, 30, 40, 50] });  \u002F\u002F ❌\n\n\u002F\u002F ✅ Correct: Uniform padding for all sides\nconst chart = new Chart({ container: 'container', padding: 40 });\n\n\u002F\u002F ✅ Correct: Padding controlled by direction\nconst chart = new Chart({ container: 'container', paddingTop: 40, paddingLeft: 60 });\n\n\u002F\u002F ❌ Wrong: Missing container\nconst chart = new Chart({ width: 640, height: 480 });\n\n\u002F\u002F ✅ Correct: Container required\nconst chart = new Chart({ container: 'container', width: 640, height: 480 });\n\n\u002F\u002F ❌ Wrong: Transform as object\nchart.options({ transform: { type: 'stackY' } });\n\n\u002F\u002F ✅ Correct: Transform as array\nchart.options({ transform: [{ type: 'stackY' }] });\n\n\u002F\u002F ❌ Wrong: Label (singular)\nchart.options({ label: { text: 'value' } });\n\n\u002F\u002F ✅ Correct: Labels (plural)\nchart.options({ labels: [{ text: 'value' }] });\n\n\u002F\u002F ❌ Wrong: Unnecessary scale type specification\nchart.options({ scale: { x: { type: 'linear' }, y: { type: 'linear' } } });\n\n\u002F\u002F ✅ Correct: Let G2 infer scale type automatically\nchart.options({ scale: { y: { domain: [0, 100] } } });\n```\n\n\u003C!-- CONSTRAINTS:END -->\n\n---\n\n## 3. Basic Structure\n\n```javascript\nimport { Chart } from '@antv\u002Fg2';\n\nconst chart = new Chart({ container: 'container', width: 640, height: 480 });\n\nchart.options({\n  type: 'interval',           \u002F\u002F Mark type\n  data: [...],                \u002F\u002F Data array\n  encode: { x: 'field', y: 'field', color: 'field' },\n  transform: [],              \u002F\u002F Data transforms\n  scale: {},                  \u002F\u002F Scale config\n  coordinate: {},             \u002F\u002F Coordinate system\n  style: {},                  \u002F\u002F Style config\n  labels: [],                 \u002F\u002F Data labels\n  tooltip: {},                \u002F\u002F Tooltip config\n  axis: {},                   \u002F\u002F Axis config\n  legend: {},                 \u002F\u002F Legend config\n});\n\nchart.render();\n```\n\n---\n\n## 4. Core Concepts\n\nCore concepts are the foundation of G2, and understanding them is a prerequisite for using G2 correctly.\n\n### 4.1 Chart Initialization\n\nChart is the core class of G2, and all charts start from a Chart instance.\n\n```javascript\nimport { Chart } from '@antv\u002Fg2';\n\nconst chart = new Chart({\n  container: 'container',  \u002F\u002F Required: DOM container ID or element\n  width: 640,              \u002F\u002F Optional: width\n  height: 480,             \u002F\u002F Optional: height\n  autoFit: true,           \u002F\u002F Optional: auto-fit container size\n  padding: 'auto',         \u002F\u002F Optional: padding\n  theme: 'light',          \u002F\u002F Optional: theme\n});\n```\n\n> **Detailed Documentation**: [Chart Initialization](references\u002Fcore\u002Fg2-core-chart-init.md)\n\n### 4.2 encode Channel System\n\nencode maps data fields to visual channels and is a core concept in G2.\n\n| Channel | Usage | Example |\n|------|------|------|\n| `x` | X-axis position | `encode: { x: 'month' }` |\n| `y` | Y-axis position | `encode: { y: 'value' }` |\n| `color` | Color | `encode: { color: 'category' }` |\n| `size` | Size | `encode: { size: 'population' }` |\n| `shape` | Shape | `encode: { shape: 'type' }` |\n\n> **Detailed Documentation**: [encode Channel System](references\u002Fcore\u002Fg2-core-encode-channel.md)\n\n### 4.3 View Composition (view + children)\n\nUse the `view` type in conjunction with the `children` array to compose multiple marks.\n\n```javascript\nchart.options({\n  type: 'view',\n  data,\n  children: [\n    { type: 'line', encode: { x: 'date', y: 'value' } },\n    { type: 'point', encode: { x: 'date', y: 'value' } },\n  ],\n});\n```\n\n> **Detailed Documentation**: [View Composition](references\u002Fcore\u002Fg2-core-view-composition.md)\n\n---\n\n## 5. Concepts \u002F Concept Guide\n\nThe concept guide helps in selecting the correct chart type and configuration scheme.\n\n### 5.1 Chart Selection\n\nSelect the appropriate chart type based on data characteristics and visualization goals:\n\n| Data Relationship | Recommended Chart | Mark |\n|---------|---------|------|\n| Comparison | Bar Chart, Column Chart | `interval` |\n| Trend | Line Chart, Area Chart | `line`, `area` |\n| Proportion | Pie Chart, Ring Chart | `interval` + `theta` |\n| Distribution | Histogram, Box Plot | `rect`, `boxplot` |\n| Correlation | Scatter Plot, Bubble Chart | `point` |\n| Hierarchy | Treemap, Partition Chart, Sunburst Chart | `treemap`, `partition`, `sunburst` (requires extension package) |\n\n> **Detailed Documentation**: [Chart Selection Guide](references\u002Fconcepts\u002Fg2-concept-chart-selection.md)\n\n### 5.2 Visual Channels \u002F Visual Channels\n\nVisual channels are the mapping methods from data to visual attributes:\n\n| Channel Type | Suitable Data | Perceptual Accuracy |\n|--------------|---------------|---------------------|\n| Position     | Continuous\u002FDiscrete | Highest |\n| Length       | Continuous     | High    |\n| Color (Hue)  | Discrete       | Medium  |\n| Color (Luminance) | Continuous | Medium  |\n| Size         | Continuous     | Medium-Low |\n| Shape        | Discrete       | Low     |\n\n> **Detailed Documentation**: [Visual Channels](references\u002Fconcepts\u002Fg2-concept-visual-channels.md)\n\n### 5.3 Color Theory\n\nSelecting an appropriate color scheme enhances chart readability:\n\n| Scenario | Recommended Scheme | Example |\n|----------|--------------------|---------|\n| Categorical Data | Discrete Palette | `category10`, `category20` |\n| Continuous Data | Sequential Palette | `Blues`, `RdYlBu` |\n| Positive\u002FNegative Contrast | Diverging Palette | `RdYlGn` |\n\n> **Detailed Documentation**: [Color Theory](references\u002Fconcepts\u002Fg2-concept-color-theory.md)\n\n---\n\n## 6. Marks \u002F Chart Types\n\nMarks are the core visualization elements in G2, determining the visual representation of data. Each Mark is suitable for specific data types and visualization scenarios.\n\n### 6.1 Bar Chart Series \u002F Interval\n\nBar charts are used to compare the magnitude of categorical data and are one of the most commonly used chart types. Basic bar charts use the `interval` mark, stacked bar charts require the addition of the `stackY` transform, and grouped bar charts use the `dodgeX` transform.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Bar Chart | `interval` | - |\n| Stacked Bar Chart | `interval` | `transform: [{ type: 'stackY' }]` |\n| Grouped Bar Chart | `interval` | `transform: [{ type: 'dodgeX' }]` |\n| Percentage Bar Chart | `interval` | `transform: [{ type: 'normalizeY' }]` |\n| Horizontal Bar Chart | `interval` | `coordinate: { transform: [{ type: 'transpose' }] }` |\n\n> **Detailed Documentation**: [Basic Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-basic.md) | [Stacked Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-stacked.md) | [Grouped Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-grouped.md) | [Percentage Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-normalized.md)\n\n### 6.2 Line Chart Series \u002F Line\n\nLine charts are used to display the trend of data changes over time or ordered categories. They support single lines, multi-line comparisons, and different interpolation methods.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Line Chart | `line` | - |\n| Multi-Series Line | `line` | `encode: { color: 'category' }` |\n| Smooth Curve | `line` | `encode: { shape: 'smooth' }` |\n| Step Line | `line` | `encode: { shape: 'step' }` |\n\n> **Detailed Documentation**: [Basic Line Chart](references\u002Fmarks\u002Fg2-mark-line-basic.md) | [Multi-Series Line](references\u002Fmarks\u002Fg2-mark-line-multi.md) | [LineX\u002FLineY](references\u002Fmarks\u002Fg2-mark-linex-liney.md)\n\n### 6.3 Area Chart Series \u002F Area\n\nArea charts build upon line charts by filling the area beneath the line, emphasizing the magnitude of change over time. Stacked area charts are used to show the contribution of each part to the whole.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Area Chart | `area` | - |\n| Stacked Area Chart | `area` | `transform: [{ type: 'stackY' }]` |\n\n> **Detailed Documentation**: [Basic Area Chart](references\u002Fmarks\u002Fg2-mark-area-basic.md) | [Stacked Area Chart](references\u002Fmarks\u002Fg2-mark-area-stacked.md)\n\n### 6.4 Pie Chart\u002FDonut Chart \u002F Arc (Pie\u002FDonut)\n\nPie charts are used to display the proportional relationship of parts to the whole. They are implemented using the `theta` coordinate system in conjunction with the `interval` mark.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Pie Chart | `interval` | `coordinate: { type: 'theta' }` + `stackY` |\n| Donut Chart | `interval` | `coordinate: { type: 'theta', innerRadius: 0.6 }` |\n\n> **Detailed Documentation**: [Pie Chart](references\u002Fmarks\u002Fg2-mark-arc-pie.md) | [Donut Chart](references\u002Fmarks\u002Fg2-mark-arc-donut.md)\n\n### 6.5 Scatter Plot\u002FBubble Plot \u002F Point\n\nScatter plots are used to display the relationship between two numerical variables, while bubble plots use the size of the points to represent a third dimension.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Scatter Plot | `point` | `encode: { x, y }` |\n| Bubble Plot | `point` | `encode: { x, y, size }` |\n\n> **Detailed Documentation**: [Scatter Plot](references\u002Fmarks\u002Fg2-mark-point-scatter.md) | [Bubble Plot](references\u002Fmarks\u002Fg2-mark-point-bubble.md)\n\n### 6.6 Histogram\n\nHistograms are used to display the distribution of continuous numerical data, implemented using the `rect` mark with the `binX` transform. Unlike bar charts, histograms have no gaps between bars, representing continuous data.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Histogram | `rect` | `transform: [{ type: 'binX', y: 'count' }]` |\n| Multi-Distribution Comparison | `rect` | `groupBy` grouping |\n\n> **Detailed Documentation**: [Histogram](references\u002Fmarks\u002Fg2-mark-histogram.md)\n\n### 6.7 Rose Chart \u002F Radial Bar Chart \u002F Polar Charts\n\nCharts under the polar coordinate system, representing numerical values through radius or arc length, are visually more appealing.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Rose Chart | `interval` | `coordinate: { type: 'polar' }` |\n| Radial Bar Chart | `interval` | `coordinate: { type: 'radial' }` |\n\n> **Detailed Documentation**: [Rose Chart](references\u002Fmarks\u002Fg2-mark-rose.md) | [Radial Bar Chart](references\u002Fmarks\u002Fg2-mark-radial-bar.md)\n\n### 6.8 Distribution\n\nCharts that display data distribution characteristics, suitable for statistical analysis and exploratory data analysis.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Boxplot | `boxplot` | Data distribution statistics |\n| Box (Boxplot) | `box` | Manually specified boxplot with five-number summary |\n| Density Plot | `density` | Kernel density estimation curve |\n| Violin Plot | `density` + `boxplot` | Density distribution + statistical information |\n| Polygon | `polygon` | Custom polygon area |\n\n> **Detailed Documentation**: [Boxplot](references\u002Fmarks\u002Fg2-mark-boxplot.md) | [Box (Boxplot)](references\u002Fmarks\u002Fg2-mark-box-boxplot.md) | [Density Plot](references\u002Fmarks\u002Fg2-mark-density.md) | [Violin Plot](references\u002Fmarks\u002Fg2-mark-violin.md) | [Polygon](references\u002Fmarks\u002Fg2-mark-polygon.md)\n\n### 6.9 Relation\n\nCharts that display relationships between data, suitable for network analysis and set relationship visualization.\n\n| Type | Mark | Use Case |\n|------|------|----------|\n| Sankey Diagram | `sankey` | Flow\u002Ftransfer relationships |\n| Chord Diagram | `chord` | Matrix flow relationships |\n| Venn Diagram | `path` + venn data transform | Set intersection relationships (venn is a data transform, not a mark type) |\n| Arc Diagram | `line` + `point` | Node link relationships |\n\n> **Detailed Documentation**: [Sankey Diagram](references\u002Fmarks\u002Fg2-mark-sankey.md) | [Chord Diagram](references\u002Fmarks\u002Fg2-mark-chord.md) | [Venn Diagram](references\u002Fmarks\u002Fg2-mark-venn.md) | [Arc Diagram](references\u002Fmarks\u002Fg2-mark-arc-diagram.md)\n\n### 6.10 Project Management Chart \u002F Project\n\nSuitable for project management and progress tracking.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Gantt Chart | `interval` | Task scheduling |\n| Bullet Chart | `interval` + `point` | KPI metric display |\n\n> **Detailed Documentation**: [Gantt Chart](references\u002Fmarks\u002Fg2-mark-gantt.md) | [Bullet Chart](references\u002Fmarks\u002Fg2-mark-bullet.md)\n\n### 6.11 Finance\n\nProfessional charts for financial data analysis.\n\n| Type | Mark | Usage |\n|------|------|------|\n| K-line Chart | `link` + `interval` | Stock four-price data |\n\n> **Detailed Documentation**: [K-line Chart](references\u002Fmarks\u002Fg2-mark-k-chart.md)\n\n### 6.12 Multivariate Data Chart \u002F Multivariate\n\nCharts for displaying multivariate data relationships.\n\n| Type | Mark | Use Case |\n|------|------|----------|\n| Parallel Coordinates | `line` | Multivariate data relationship analysis |\n| Radar Chart | `line` | Multivariate data comparison |\n\n> **Detailed Documentation**: [Parallel Coordinates](references\u002Fmarks\u002Fg2-mark-parallel.md) | [Radar Chart](references\u002Fmarks\u002Fg2-mark-radar.md)\n\n### 6.13 Comparison Chart \u002F Comparison\n\nSuitable for data comparison.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Bi-directional Bar Chart | `interval` | Positive and negative data comparison |\n\n> **Detailed Documentation**: [Bi-directional Bar Chart](references\u002Fmarks\u002Fg2-mark-bi-directional-bar.md)\n\n### 6.14 Basic Marks\n\nBasic marks are the foundational building blocks of G2, which can be used independently or combined to construct complex charts.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Rectangle | `rect` | Rectangular area, basis for histograms\u002Fheatmaps |\n| Text | `text` | Text annotations and labels |\n| Image | `image` | Image mark, representing data points with images |\n| Path | `path` | Custom path drawing |\n| Link | `link` | Line connecting two points |\n| Connector | `connector` | Connection line between data points |\n| Shape | `shape` | Custom shape drawing |\n| Vector | `vector` | Vector\u002Farrow mark, for wind field charts, etc. |\n\n> **Detailed Documentation**: [rect](references\u002Fmarks\u002Fg2-mark-rect.md) | [text](references\u002Fmarks\u002Fg2-mark-text.md) | [image](references\u002Fmarks\u002Fg2-mark-image.md) | [path](references\u002Fmarks\u002Fg2-mark-path.md) | [link](references\u002Fmarks\u002Fg2-mark-link.md) | [connector](references\u002Fmarks\u002Fg2-mark-connector.md) | [shape](references\u002Fmarks\u002Fg2-mark-shape.md) | [vector](references\u002Fmarks\u002Fg2-mark-vector.md)\n\n### 6.15 Range Mark \u002F Range\n\nThe range mark is used to display the interval range of data.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Time Period\u002FInterval Highlight (X Direction) | `rangeX` | X-axis interval, `encode: { x: 'start', x1: 'end' }` |\n| Numerical Range Highlight (Y Direction) | `rangeY` | Y-axis interval, `encode: { y: 'min', y1: 'max' }` |\n| Two-Dimensional Rectangular Area | `range` | x\u002Fy fields are `[start,end]` arrays, `encode: { x:'x', y:'y' }`, rarely used |\n\n> **Detailed Documentation**: [range\u002FrangeY](references\u002Fmarks\u002Fg2-mark-range-rangey.md) | [rangeX](references\u002Fmarks\u002Fg2-mark-rangex.md)\n\n### 6.16 Distribution & Pack\n\n| Type | Mark | Usage |\n|------|------|------|\n| Beeswarm Plot | `point` + `pack` | Closely arranged data points to display distribution |\n| Pack Layout | `pack` | Circular packing for hierarchical data |\n\n> **Detailed Documentation**: [Beeswarm Plot](references\u002Fmarks\u002Fg2-mark-beeswarm.md) | [Pack Layout](references\u002Fmarks\u002Fg2-mark-pack.md)\n\n### 6.17 Hierarchy\n\nCharts for displaying hierarchical data, representing numerical proportions through area or radius.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Treemap | `treemap` | Hierarchical data proportion |\n| Sunburst | `sunburst`⚠️ | Multi-level concentric circle display (requires @antv\u002Fg2-extension-plot) |\n| Partition | `partition` | Hierarchical data partition display |\n| Tree | `tree` | Tree-like hierarchical structure |\n\n> **Detailed Documentation**: [Treemap](references\u002Fmarks\u002Fg2-mark-treemap.md) | [Sunburst](references\u002Fmarks\u002Fg2-mark-sunburst.md) | [Partition](references\u002Fmarks\u002Fg2-mark-partition.md) | [Tree](references\u002Fmarks\u002Fg2-mark-tree.md)\n\n### 6.18 Other Charts \u002F Others\n\n| Type | Mark | Usage |\n|------|------|------|\n| Heatmap | `cell` | Visualization of two-dimensional matrix data |\n| Density Heatmap | `heatmap` | Continuous density heatmap |\n| Gauge | `gauge` | Metric progress display |\n| Word Cloud | `wordCloud` | Text frequency visualization |\n| Liquid Fill Gauge | `liquid` | Percentage progress |\n\n> **Detailed Documentation**: [Heatmap](references\u002Fmarks\u002Fg2-mark-cell-heatmap.md) | [Density Heatmap](references\u002Fmarks\u002Fg2-mark-heatmap.md) | [Gauge](references\u002Fmarks\u002Fg2-mark-gauge.md) | [Word Cloud](references\u002Fmarks\u002Fg2-mark-wordcloud.md) | [Liquid Fill Gauge](references\u002Fmarks\u002Fg2-mark-liquid.md)\n\n---\n\n## 7. Data \u002F Data Transformation\n\nData transformation is performed during the data loading stage and is configured in `data.transform`, affecting all marks that use this data.\n\n### 7.1 Data Transform Types (Configured in `data.transform`)\n\n| Transform | Type | Purpose | Example Scenario |\n|------|------|------|---------|\n| **fold** | `fold` | Wide table to long table | Convert multi-column data to multiple series |\n| **filter** | `filter` | Conditional data filtering | Filter invalid data |\n| **sort** | `sort` | Sort using a callback function | Custom sorting logic |\n| **sortBy** | `sortBy` | Sort by field | Sort by field values |\n| **map** | `map` | Data mapping transformation | Add computed fields |\n| **join** | `join` | Merge data tables | Associate external data |\n| **pick** | `pick` | Select specified fields | Simplify fields |\n| **rename** | `rename` | Rename fields | Field renaming |\n| **slice** | `slice` | Slice data range | Pagination\u002Fslicing |\n| **ema** | `ema` | Exponential Moving Average | Time series smoothing |\n| **kde** | `kde` | Kernel Density Estimation | Density plot\u002Fviolin plot |\n| **log** | `log` | Print data to console | Debugging |\n| **custom** | `custom` | Custom data processing | Complex transformations |\n\n### 7.2 Data Format and Patterns\n\n| Type | Purpose |\n|------|------|\n| Tabular Data Format | Description of the standard tabular data format accepted by G2 |\n| Data Transformation Patterns | Combination usage patterns of Data Transform and Mark Transform |\n\n> **Detailed Documentation**: [filter](references\u002Fdata\u002Fg2-data-filter.md) | [sort](references\u002Fdata\u002Fg2-data-sort.md) | [sortBy](references\u002Fdata\u002Fg2-data-sortby.md) | [fold](references\u002Fdata\u002Fg2-data-fold.md) | [slice](references\u002Fdata\u002Fg2-data-slice.md) | [ema](references\u002Fdata\u002Fg2-data-ema.md) | [kde](references\u002Fdata\u002Fg2-data-kde.md) | [log](references\u002Fdata\u002Fg2-data-log.md) | [fetch](references\u002Fdata\u002Fg2-data-fetch.md) | [Data Transformation Patterns](references\u002Fdata\u002Fg2-data-transform-patterns.md)\n\n### 7.3 Common Mistakes: Incorrect Placement of Data Transform\n\n```javascript\n\u002F\u002F ❌ Wrong: fold is a data transform and cannot be placed in mark transform\nchart.options({\n  type: 'interval',\n  data: wideData,\n  transform: [{ type: 'fold', fields: ['a', 'b'] }],  \u002F\u002F ❌ Wrong!\n});\n\n\u002F\u002F ✅ Correct: fold placed in data.transform\nchart.options({\n  type: 'interval',\n  data: {\n    type: 'inline',\n    value: wideData,\n    transform: [{ type: 'fold', fields: ['a', 'b'] }],  \u002F\u002F ✅ Correct\n  },\n  transform: [{ type: 'stackY' }],  \u002F\u002F mark transform\n});\n```\n\n### 7.4 Combination Example: Wide Table Data + Stacked Chart\n\n```javascript\n\u002F\u002F Wide table data: Multiple data columns for each month\nconst wideData = [\n  { year: '2000', 'Type A': 21, 'Type B': 16, 'Type C': 8 },\n  { year: '2001', 'Type A': 25, 'Type B': 16, 'Type C': 8 },\n  \u002F\u002F ...\n];\n\nchart.options({\n  type: 'interval',\n  data: {\n    type: 'inline',\n    value: wideData,\n    transform: [\n      \u002F\u002F ✅ Data Transform: Wide to Long Table\n      { type: 'fold', fields: ['Type A', 'Type B', 'Type C'], key: 'type', value: 'value' },\n    ],\n  },\n  encode: { x: 'year', y: 'value', color: 'type' },\n  transform: [\n    \u002F\u002F ✅ Mark Transform: Stacked\n    { type: 'stackY' },\n  ],\n  coordinate: { type: 'polar' },  \u002F\u002F Polar coordinate system\n});\n```\n\n---\n\n## 8. Transforms \u002F Mark Transformations\n\nMark transformations are executed when binding visual channels and are configured in the `transform` array of the mark. They are used for data aggregation, anti-overlapping, and more.\n\n**Configuration Location**: The `transform` array, which is at the same level as `data` and `encode`, **not** in `data.transform`.\n\n```javascript\nchart.options({\n  type: 'interval',\n  data,\n  encode: { x: 'category', y: 'value', color: 'type' },\n  transform: [  \u002F\u002F ✅ Mark Transform: At the same level as data\u002Fencode\n    { type: 'stackY' },\n    { type: 'sortX', by: 'y' },\n  ],\n});\n```\n\n### 8.1 Anti-overlap Transformations\n\n| Transformation | Type | Purpose |\n|------|------|------|\n| Stack | `stackY` | Data stacking, used for stacked charts |\n| Dodge | `dodgeX` | Data grouping, used for dodged charts |\n| Jitter | `jitter` | Scatter jitter to avoid overlap |\n| Jitter X | `jitterX` | Jitter in the X direction |\n| Jitter Y | `jitterY` | Jitter in the Y direction |\n| Pack | `pack` | Tightly arrange data points |\n\n> **Detailed Documentation**: [stackY](references\u002Ftransforms\u002Fg2-transform-stacky.md) | [dodgeX](references\u002Ftransforms\u002Fg2-transform-dodgex.md) | [jitter](references\u002Ftransforms\u002Fg2-transform-jitter.md) | [jitterX](references\u002Ftransforms\u002Fg2-transform-jitterx.md) | [jitterY](references\u002Ftransforms\u002Fg2-transform-jittery.md) | [pack](references\u002Ftransforms\u002Fg2-transform-pack.md)\n\n### 8.2 Aggregation Transforms \u002F Aggregation\n\n| Transform | Type | Purpose |\n|------|------|------|\n| General Grouping | `group` | General grouping aggregation |\n| Group Aggregation | `groupX` \u002F `groupY` | Group and aggregate by dimension |\n| Group Color | `groupColor` | Group aggregation by color |\n| Binning | `bin` | Two-dimensional binning |\n| X-axis Binning | `binX` | Binning in the X-axis direction |\n| Sampling | `sample` | Data sampling |\n\n> **Detailed Documentation**: [group](references\u002Ftransforms\u002Fg2-transform-group.md) | [groupX](references\u002Ftransforms\u002Fg2-transform-groupx.md) | [groupY](references\u002Ftransforms\u002Fg2-transform-groupy.md) | [groupColor](references\u002Ftransforms\u002Fg2-transform-groupcolor.md) | [bin](references\u002Ftransforms\u002Fg2-transform-bin.md) | [binX](references\u002Ftransforms\u002Fg2-transform-binx.md) | [sample](references\u002Ftransforms\u002Fg2-transform-sample.md)\n\n### 8.3 Sorting Transforms \u002F Sorting\n\n| Transform | Type | Purpose |\n|------|------|------|\n| X-axis Sorting | `sortX` | Sort by X channel |\n| Y-axis Sorting | `sortY` | Sort by Y channel |\n| Color Sorting | `sortColor` | Sort by color channel |\n\n> **Detailed Documentation**: [sortX](references\u002Ftransforms\u002Fg2-transform-sortx.md) | [sortY](references\u002Ftransforms\u002Fg2-transform-sorty.md) | [sortColor](references\u002Ftransforms\u002Fg2-transform-sort-color.md)\n\n### 8.4 Selection Transforms \u002F Selection\n\n| Transform | Type | Purpose |\n|------|------|------|\n| Selection | `select` | Global data selection |\n| X-axis Selection | `selectX` | Selection by X grouping |\n| Y-axis Selection | `selectY` | Selection by Y grouping |\n\n> **Detailed Documentation**: [select](references\u002Ftransforms\u002Fg2-transform-select.md) | [selectX](references\u002Ftransforms\u002Fg2-transform-selectx.md) | [selectY](references\u002Ftransforms\u002Fg2-transform-selecty.md)\n\n### 8.5 Other Transforms \u002F Others\n\n| Transform | Type | Usage |\n|------|------|------|\n| Normalize | `normalizeY` | Y-axis normalization |\n| Difference | `diffY` | Calculate differences |\n| Symmetry | `symmetryY` | Y-axis symmetry |\n| Flex X | `flexX` | X-axis flex layout |\n| Stack Enter | `stackEnter` | Stacked enter animation |\n\n> **Detailed Documentation**: [normalizeY](references\u002Ftransforms\u002Fg2-transform-normalizey.md) | [diffY](references\u002Ftransforms\u002Fg2-transform-diffy.md) | [symmetryY](references\u002Ftransforms\u002Fg2-transform-symmetryy.md) | [flexX](references\u002Ftransforms\u002Fg2-transform-flexx.md) | [stackEnter](references\u002Ftransforms\u002Fg2-transform-stack-enter.md)\n\n---\n\n## 9. Interactions\n\nG2 provides a rich set of built-in interactions for data exploration and chart manipulation.\n\n### 9.1 Selection Interactions\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Element Selection | `elementSelect` | Click to select data elements |\n| Conditional Selection | `elementSelectBy` | Batch select elements based on conditions |\n| Brush Selection | `brush` \u002F `brushX` \u002F `brushY` | Rectangular area selection |\n| 2D Brush Selection | `brushXY` | Simultaneous XY brush selection |\n| Axis Brush Selection | `brushAxis` | Coordinate axis range selection |\n| Legend Filter | `legendFilter` | Click legend to filter data |\n\n> **Detailed Documentation**: [elementSelect](references\u002Finteractions\u002Fg2-interaction-element-select.md) | [elementSelectBy](references\u002Finteractions\u002Fg2-interaction-element-select-by.md) | [brush](references\u002Finteractions\u002Fg2-interaction-brush.md) | [brushXY](references\u002Finteractions\u002Fg2-interaction-brush-xy.md) | [brushAxis](references\u002Finteractions\u002Fg2-interaction-brush-axis.md) | [legendFilter](references\u002Finteractions\u002Fg2-interaction-legend-filter.md)\n\n### 9.2 Highlight Interactions \u002F Highlight\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Element Highlight | `elementHighlight` | Hover to highlight elements |\n| Conditional Highlight | `elementHighlightBy` | Batch highlight elements based on conditions |\n| Hover Scale | `elementHoverScale` | Scale up elements on hover |\n| Legend Highlight | `legendHighlight` | Hover legend to highlight corresponding elements |\n| Brush Highlight | `brushXHighlight` \u002F `brushYHighlight` | Highlight selected area |\n\n> **Detailed Documentation**: [elementHighlight](references\u002Finteractions\u002Fg2-interaction-element-highlight.md) | [elementHighlightBy](references\u002Finteractions\u002Fg2-interaction-element-highlight-by.md) | [elementHoverScale](references\u002Finteractions\u002Fg2-interaction-element-hover-scale.md) | [legendHighlight](references\u002Finteractions\u002Fg2-interaction-legend-highlight.md) | [brushXHighlight](references\u002Finteractions\u002Fg2-interaction-brushx-highlight.md) | [brushYHighlight](references\u002Finteractions\u002Fg2-interaction-brushy-highlight.md) | [Single-axis Brush Highlight](references\u002Finteractions\u002Fg2-interaction-brush-x-y-highlight.md)\n\n### 9.3 Filter Interactions \u002F Filter\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Slider Filter | `sliderFilter` | Filter data range using a slider |\n| Scrollbar Filter | `scrollbarFilter` | Filter data using a scrollbar |\n| Brush Filter | `brushFilter` | Filter data within a selected area |\n| X-axis Brush Filter | `brushXFilter` | Filter data along the X-axis direction |\n| Y-axis Brush Filter | `brushYFilter` | Filter data along the Y-axis direction |\n| Adaptive Filter | `adaptiveFilter` | Adaptively filter data |\n\n> **Detailed Documentation**: [sliderFilter](references\u002Finteractions\u002Fg2-interaction-slider-filter.md) | [scrollbarFilter](references\u002Finteractions\u002Fg2-interaction-scrollbar-filter.md) | [brushFilter](references\u002Finteractions\u002Fg2-interaction-brush-filter.md) | [brushXFilter](references\u002Finteractions\u002Fg2-interaction-brushx-filter.md) | [brushYFilter](references\u002Finteractions\u002Fg2-interaction-brushy-filter.md) | [adaptiveFilter](references\u002Finteractions\u002Fg2-interaction-adaptive-filter.md)\n\n### 9.4 Other Interactions \u002F Others\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Tooltip | `tooltip` | Display data details on hover |\n| PopTip | `poptip` | Concise pop-up tip |\n| Drilldown | `drilldown` | Hierarchical data drilldown |\n| Treemap Drilldown | `treemapDrilldown` | Treemap hierarchical drilldown |\n| Fisheye | `fisheye` | Fisheye magnifier effect |\n| Slider Wheel | `sliderWheel` | Mouse wheel control for slider |\n| Element Point Move | `elementPointMove` | Drag data point to move |\n| Chart Index | `chartIndex` | Multi-chart linkage index line |\n\n> **Detailed Documentation**: [tooltip](references\u002Finteractions\u002Fg2-interaction-tooltip.md) | [poptip](references\u002Finteractions\u002Fg2-interaction-poptip.md) | [drilldown](references\u002Finteractions\u002Fg2-interaction-drilldown.md) | [treemapDrilldown](references\u002Finteractions\u002Fg2-interaction-treemap-drilldown.md) | [fisheye](references\u002Finteractions\u002Fg2-interaction-fisheye.md) | [sliderWheel](references\u002Finteractions\u002Fg2-interaction-slider-wheel.md) | [elementPointMove](references\u002Finteractions\u002Fg2-interaction-element-point-move.md) | [chartIndex](references\u002Finteractions\u002Fg2-interaction-chart-index.md)\n\n---\n\n## 10. Components \u002F 组件\n\nComponents are auxiliary elements of charts, such as axes, legends, and tooltips.\n\n### 10.1 Axis\n\nThe axis displays data dimensions and supports rich style configurations.\n\n> **Detailed Documentation**: [Axis Configuration](references\u002Fcomponents\u002Fg2-comp-axis-config.md) | [Radar Chart Axis](references\u002Fcomponents\u002Fg2-comp-axis-radar.md)\n\n### 10.2 Legend\n\nThe legend displays data categorization or continuous value mapping, supporting categorical legends and continuous legends (color ramps).\n\n| Type | Purpose |\n|------|------|\n| Categorical Legend | Color mapping explanation for discrete categorical data |\n| Continuous Legend | Color\u002Fsize mapping explanation for continuous values (color ramp) |\n\n> **Detailed Documentation**: [Legend Configuration](references\u002Fcomponents\u002Fg2-comp-legend-config.md) | [Categorical Legend](references\u002Fcomponents\u002Fg2-comp-legend-category.md) | [Continuous Legend](references\u002Fcomponents\u002Fg2-comp-legend-continuous.md)\n\n### 10.3 Tooltip\n\nTooltip displays data details on hover and supports custom templates and formatting.\n\n> **Detailed Documentation**: [Tooltip Configuration](references\u002Fcomponents\u002Fg2-comp-tooltip-config.md)\n\n### 10.4 Other Components \u002F Others\n\n| Component | Purpose |\n|-----------|---------|\n| Title     | Chart title |\n| Label     | Data label |\n| Scrollbar | Data scrolling |\n| Slider    | Data range selection |\n| Annotation| Data annotation and auxiliary lines |\n\n> **Detailed Documentation**: [Title](references\u002Fcomponents\u002Fg2-comp-title.md) | [Label](references\u002Fcomponents\u002Fg2-comp-label-config.md) | [Scrollbar](references\u002Fcomponents\u002Fg2-comp-scrollbar.md) | [Slider](references\u002Fcomponents\u002Fg2-comp-slider.md) | [Annotation](references\u002Fcomponents\u002Fg2-comp-annotation.md)\n\n---\n\n## 11. Scales\n\nScales map data values to visual channels such as position, color, size, and more.\n\n### 11.1 ⚠️ Default Behavior (Avoid Over-Specifying `type`)\n\n**G2 automatically infers the scale type based on the data type. Avoid manually specifying `type` unless necessary:**\n\n| Data Type | Inferred Scale | Example |\n|-----------|----------------|---------|\n| Numerical Field | `linear` | `{ value: 100 }` → linear |\n| Categorical Field | `band` | `{ category: 'A' }` → band |\n| Date Object | `time` | `{ date: new Date() }` → time |\n\n```javascript\n\u002F\u002F ❌ Incorrect: Unnecessary type specification may cause rendering issues\nchart.options({\n  scale: {\n    x: { type: 'linear' },  \u002F\u002F ❌ Numerical fields default to linear\n    y: { type: 'linear' },  \u002F\u002F ❌ No need to specify\n  },\n});\n\n\u002F\u002F ✅ Correct: Let G2 infer automatically, configure domain\u002Frange only when needed\nchart.options({\n  scale: {\n    y: { domain: [0, 100] },  \u002F\u002F ✅ Configure only necessary properties\n    color: { range: ['#1890ff', '#52c41a'] },\n  },\n});\n```\n\n**Special Cases Requiring Manual `type` Specification:**\n\n| Scenario | Type | Description |\n|----------|------|-------------|\n| Logarithmic Scale | `log` | Data spanning multiple orders of magnitude |\n| Power Scale | `pow` | Non-linear data mapping |\n| Square Root Scale | `sqrt` | Compression of non-negative data |\n| String Date | `time` | Date field is a string, not a Date object |\n| Custom Mapping | `ordinal` | Discrete to discrete mapping |\n| Gradient Color | `sequential` | Continuous values to color gradient |\n| Threshold Mapping | `threshold` | Mapping by threshold to colors |\n| Equal Interval Binning | `quantize` \u002F `quantile` | Discretization of continuous data |\n\n### 11.2 Scale Types\n\n| Scale | Type | Usage |\n|--------|------|------|\n| Linear | `linear` | Continuous numerical mapping (default) |\n| Band | `band` | Discrete categorical mapping (default) |\n| Point | `point` | Discrete point position mapping |\n| Time | `time` | Time data mapping |\n| Log | `log` | Logarithmic scale |\n| Power\u002FSquare Root | `pow` \u002F `sqrt` | Power function\u002Fsquare root mapping |\n| Ordinal | `ordinal` | Discrete to discrete value mapping |\n| Sequential | `sequential` | Continuous value to color gradient |\n| Quantile\u002FQuantize | `quantile` \u002F `quantize` | Continuous data discretization mapping |\n| Threshold | `threshold` | Segmented mapping by threshold |\n\n> **Detailed Documentation**: [linear](references\u002Fscales\u002Fg2-scale-linear.md) | [band](references\u002Fscales\u002Fg2-scale-band.md) | [point](references\u002Fscales\u002Fg2-scale-point.md) | [time](references\u002Fscales\u002Fg2-scale-time.md) | [log](references\u002Fscales\u002Fg2-scale-log.md) | [pow\u002Fsqrt](references\u002Fscales\u002Fg2-scale-pow-sqrt.md) | [ordinal](references\u002Fscales\u002Fg2-scale-ordinal.md) | [sequential](references\u002Fscales\u002Fg2-scale-sequential.md) | [quantile\u002Fquantize](references\u002Fscales\u002Fg2-scale-quantile-quantize.md) | [threshold](references\u002Fscales\u002Fg2-scale-threshold.md)\n\n---\n\n## 12. Coordinates \u002F 坐标系\n\nThe coordinate system defines the mapping method from data to canvas position, and different coordinate systems produce different chart forms.\n\n| Coordinate System | Type | Usage |\n|-------------------|------|------|\n| Cartesian | `cartesian` | Rectangular coordinate system (default) |\n| Polar | `polar` | Radar chart, rose chart |\n| Theta | `theta` | Pie chart, donut chart |\n| Radial | `radial` | Radial coordinate system, gauge chart |\n| Transpose | `transpose` | X\u002FY axis swap |\n| Parallel | `parallel` | Parallel coordinate system |\n| Helix | `helix` | Helix coordinate system |\n| Fisheye | `fisheye` | Local magnification effect |\n\n> **Detailed Documentation**: [cartesian](references\u002Fcoordinates\u002Fg2-coord-cartesian.md) | [polar](references\u002Fcoordinates\u002Fg2-coord-polar.md) | [theta](references\u002Fcoordinates\u002Fg2-coord-theta.md) | [radial](references\u002Fcoordinates\u002Fg2-coord-radial.md) | [transpose](references\u002Fcoordinates\u002Fg2-coord-transpose.md) | [parallel](references\u002Fcoordinates\u002Fg2-coord-parallel.md) | [helix](references\u002Fcoordinates\u002Fg2-coord-helix.md) | [fisheye](references\u002Fcoordinates\u002Fg2-coord-fisheye.md)\n\n---\n\n## 13. Compositions \u002F Composition Views\n\nComposition views are used to create multi-chart layouts, such as facets, multi-view overlays, etc.\n\n| Composition | Type | Purpose |\n|------|------|------|\n| Basic View | `view` | Single view container, combining multiple marks |\n| Facet Rect | `facetRect` | Split rectangular grid multi-chart by dimension |\n| Facet Circle | `facetCircle` | Split circular multi-chart by dimension |\n| Repeat Matrix | `repeatMatrix` | Multi-variable combination matrix chart |\n| Space Layer | `spaceLayer` | Multi-layer overlay |\n| Space Flex | `spaceFlex` | Flexible layout |\n| Timing Keyframe | `timingKeyframe` | Animation sequence |\n| Geo View | `geoView` | Geographic coordinate system view |\n| Geo Path | `geoPath` | Geographic path rendering |\n\n> **Detailed Documentation**: [view](references\u002Fcompositions\u002Fg2-comp-view.md) | [facetRect](references\u002Fcompositions\u002Fg2-comp-facet-rect.md) | [facetCircle](references\u002Fcompositions\u002Fg2-comp-facet-circle.md) | [repeatMatrix](references\u002Fcompositions\u002Fg2-comp-repeat-matrix.md) | [spaceLayer](references\u002Fcompositions\u002Fg2-comp-space-layer.md) | [spaceFlex](references\u002Fcompositions\u002Fg2-comp-space-flex.md) | [timingKeyframe](references\u002Fcompositions\u002Fg2-comp-timing-keyframe.md) | [geoView](references\u002Fcompositions\u002Fg2-comp-geoview.md) | [geoPath](references\u002Fcompositions\u002Fg2-comp-geo-map.md)\n\n---\n\n## 14. Themes \u002F 主题\n\nThemes define the overall visual style of a chart, including colors, fonts, spacing, and more.\n\n> **Detailed Documentation**: [Built-in Themes](references\u002Fthemes\u002Fg2-theme-builtin.md) | [Custom Themes](references\u002Fthemes\u002Fg2-theme-custom.md)\n\n---\n## 15. Palettes\n\nPalettes define color sequences, used for color mapping of categorical or continuous data.\n\n> **Detailed Documentation**: [category10](references\u002Fpalette\u002Fg2-palette-category10.md) | [category20](references\u002Fpalette\u002Fg2-palette-category20.md)\n\n---\n\n## 16. Animations\n\nAnimations enhance the expressiveness of charts, supporting entrance, update, and exit animation configurations.\n\n**⚠️ Important Rule**: G2 comes with default animation effects at the underlying level. **Do not** add `animate` configurations unless the user explicitly requests animations. Only when the user clearly describes animation requirements (e.g., \"fade-in animation\", \"wave entrance\", etc.) should you refer to the documentation and add the corresponding animate configuration.\n\n> **Detailed Documentation**: [Animation Introduction](references\u002Fanimations\u002Fg2-animation-intro.md) | [Animation Types](references\u002Fanimations\u002Fg2-animation-types.md) | [Keyframe Animation](references\u002Fanimations\u002Fg2-animation-keyframe.md)\n\n---\n\n## 17. Label Transforms\n\nLabel transforms are used to handle issues such as label overlap and overflow, improving label readability.\n\n| Transform | Type | Purpose |\n|------|------|------|\n| Overflow Hide | `overflowHide` | Hide labels that exceed the area |\n| Overlap Hide | `overlapHide` | Automatically hide overlapping labels |\n| Overlap Dodge Y | `overlapDodgeY` | Offset overlapping labels in the Y direction |\n| Contrast Reverse | `contrastReverse` | Automatically reverse label colors to ensure contrast |\n| Exceed Adjust | `exceedAdjust` | Adjust the position of labels that exceed the canvas boundaries |\n| Overflow Stroke | `overflowStroke` | Add stroke marks to overflow areas |\n\n> **Detailed Documentation**: [overflowHide](references\u002Flabel-transform\u002Fg2-label-transform-overflow-hide.md) | [overlapHide](references\u002Flabel-transform\u002Fg2-label-transform-overlap-hide.md) | [overlapDodgeY](references\u002Flabel-transform\u002Fg2-label-transform-overlap-dodge-y.md) | [contrastReverse](references\u002Flabel-transform\u002Fg2-label-transform-contrast-reverse.md) | [exceedAdjust](references\u002Flabel-transform\u002Fg2-label-transform-exceed-adjust.md) | [overflowStroke](references\u002Flabel-transform\u002Fg2-label-transform-overflow-stroke.md)\n\n---\n\n## 18. Patterns\n\nPatterns are best practices for common scenarios, including migration guides, performance optimization, and responsive adaptation.\n### 18.1 Migration Guide \u002F Migration (v4 → v5)\n\n| v4 (Deprecated) | v5 (Correct) |\n|-----------------|--------------|\n| `chart.source(data)` | `chart.options({ data })` |\n| `.position('x*y')` | `encode: { x: 'x', y: 'y' }` |\n| `.color('field')` | `encode: { color: 'field' }` |\n| `.adjust('stack')` | `transform: [{ type: 'stackY' }]` |\n| `.adjust('dodge')` | `transform: [{ type: 'dodgeX' }]` |\n| `label: {}` | `labels: [{}]` |\n\n> **Detailed Documentation**: [v4 → v5 Migration](references\u002Fpatterns\u002Fg2-pattern-v4-to-v5.md)\n\n### 18.2 Performance Optimization \u002F Performance\n\nData pre-aggregation, LTTB downsampling, Canvas renderer confirmation, high-frequency real-time data throttling updates.\n\n| Scenario | Data Volume | Recommended Solution |\n|----------|----------------|---------------------|\n| Line Chart | \u003C 1,000 points | Direct rendering |\n| Line Chart | 1,000 ~ 10,000 points | Downsample to within 500 points |\n| Line Chart | > 10,000 points | Backend aggregation + time range filtering |\n| Scatter Plot | \u003C 5,000 points | Direct rendering |\n| Scatter Plot | 5,000 ~ 50,000 points | Canvas rendering + downsampling |\n\n> **Detailed Documentation**: [Performance Optimization](references\u002Fpatterns\u002Fg2-pattern-performance.md)\n\n### 18.3 Responsive\n\nautoFit adaptive, ResizeObserver dynamic adjustment, mobile font\u002Fmargin adaptation.\n\n> **Detailed Documentation**: [Responsive Adaptation](references\u002Fpatterns\u002Fg2-pattern-responsive.md)\n\n---","# G2 v5 Chart Code Generator\n\nYou are an expert in AntV G2 v5 charting library. Generate accurate, runnable code following G2 v5 best practices.\n\n---\n\n## 1. Core Constraints (MUST follow)\n\n1. **`container` is mandatory**: `new Chart({ container: 'container', ... })`\n2. **Use Spec Mode ONLY**: `chart.options({ type: 'interval', data, encode: {...} })` (See Forbidden Patterns for V4 chained API)\n3. **`chart.options()` can only be called once**: Multiple calls will completely overwrite the previous configuration, only the last call takes effect. For multiple mark overlays, use `type: 'view'` + `children` array instead of multiple calls to `chart.options()`\n4. **`encode` object**: `encode: { x, y }` (V4's `.position('x*y')` is forbidden)\n5. **`transform` must be array**: `transform: [{ type: 'stackY' }]`\n6. **`labels` is plural**: Use `labels: [{ text: 'field' }]` not `label: {}`\n7. **`coordinate` rules**:\n   - Directly specify coordinate type: `coordinate: { type: 'theta' }`, `coordinate: { type: 'polar' }`\n   - `transpose` is a **transformation**, not a coordinate type, and must be placed in the `transform` array: `coordinate: { transform: [{ type: 'transpose' }] }`\n   - ❌ Forbidden: `coordinate: { type: 'transpose' }`\n8. **Range encoding** (Gantt chart, candlestick, etc.): `encode: { y: 'start', y1: 'end' }`, forbidden: `y: ['start', 'end']`\n9. **Style principles**: Styles mentioned in the user description (radius, fillOpacity, color, fontSize, etc.) must be fully preserved; do not add decorative styles not mentioned by the user (shadowBlur, shadowColor, shadowOffsetX\u002FY, etc.)\n10. **`animate` rules**: Do not add `animate` configuration when the user does not explicitly request animation (G2 has default animations built-in), only add when the user explicitly describes animation requirements\n11. **`scale.color.palette` can only use valid values**: Palette is looked up via d3-scale-chromatic, invalid names will throw `Unknown palette` error. **Do not infer or create non-existent names** (e.g., `'blueOrange'`, `'redGreen'`, `'hot'`, `'jet'`, `'coolwarm'` are all invalid). Common valid values: sequential color scales `'blues'|'greens'|'reds'|'ylOrRd'|'viridis'|'plasma'|'turbo'`; diverging color scales `'rdBu'|'rdYlGn'|'spectral'`; when unsure, use `range: ['#startColor', '#endColor']` for custom replacement\n12. **Forbidden to use `d3.*` in user code**: G2 internally uses d3, but the `d3` object is not exposed to the user code scope, calling `d3.sum()` etc. will throw `ReferenceError: d3 is not defined`. For aggregation, prioritize using G2 built-in options (e.g., `sortX`'s `reducer: 'sum'`), when custom aggregation is necessary, use native 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))`\n13. **When the user does not specify a color scheme, do not use white or near-white as the shape fill color**: `style: { fill: '#fff' }`, `style: { fill: 'white' }`, `style: { fill: '#ffffff' }` etc. will make the shape completely invisible on a white background. When no color scheme is specified, rely on G2's `encode.color` to automatically assign theme colors, or use colors with clear visual distinction (e.g., `'#5B8FF9'`). The following are valid exceptions: label text `fill: '#fff'` (labels within dark backgrounds), separator lines `stroke: '#fff'` (white separator lines in stacked\u002Fpack\u002Ftreemap)\n14. **`padding` only accepts `number | 'auto'`, array form is forbidden**: `padding: [40, 30, 40, 50]` is invalid in G2 v5 (will be ignored or throw an error). For uniform padding, use `padding: 40`; for directional control, use `paddingTop` \u002F `paddingRight` \u002F `paddingBottom` \u002F `paddingLeft` individually; default `'auto'` automatically reserves space for axes\u002Flegends, manual configuration is usually unnecessary. **Forbidden to set `padding: 0`**—this will disable automatic calculation, causing axes\u002Flegends to be truncated; when adjusting only one direction, set the corresponding direction individually\n15. **When `autoFit: true`, do not set `width` simultaneously**: `autoFit` will completely ignore `width`, rendering it ineffective when both are present. When `autoFit: true`, set only `height`; when fixed width and height are needed, remove `autoFit` and use `width` + `height` instead\n16. **When the user does not specify a container**: `container` defaults to `'container'`, do not create via `document.createElement('div')`, the code must end with `chart.render();`\n\n### 1.1 Forbidden Patterns\n\n**Forbidden: V4 Syntax**, Must use V5 Spec Mode:\n\n\n```javascript\n\u002F\u002F ❌ Forbidden: V4 createView\nconst view = chart.createView();\nview.options({...});\n\n\u002F\u002F ❌ Forbidden: V4 Chained API Calls\nchart.interval()\n  .data([...])\n  .encode('x', 'genre')\n  .encode('y', 'sold')\n  .style({ radius: 4 });\n\n\u002F\u002F ❌ Forbidden: V4 Chained encode\nchart.line().encode('x', 'date').encode('y', 'value');\n\n\u002F\u002F ❌ Forbidden: V4 source\nchart.source(data);\n\n\u002F\u002F ❌ Forbidden: V4 position\nchart.interval().position('genre*sold');\n\n\u002F\u002F ✅ Correct: V5 Spec Mode\nchart.options({\n  type: 'interval',\n  data: [...],\n  encode: { x: 'genre', y: 'sold' },\n  style: { radius: 4 },\n});\n```\n\n**Reason**: V5 uses Spec mode, which has a clear structure and is easy to serialize, dynamically generate, and debug.\n\n#### Correct V5 Alternative for `createView`\n\n`chart.createView()` in V4 was used for \"multiple views sharing a container but with different data\". In V5, it corresponds to two scenarios:\n\n**Scenario A: Multiple marks stacked within the same coordinate system (most common)**\n→ Use `type: 'view'` + `children` array, `children` cannot be nested with `view` or `children`:\n\n```javascript\n\u002F\u002F ✅ Multiple marks stacked (line + point)\nchart.options({\n  type: 'view',\n  data,\n  children: [\n    { type: 'line',  encode: { x: 'date', y: 'value' } },\n    { type: 'point', encode: { x: 'date', y: 'value' } },\n  ],\n});\n```\n\n**Scenario B: Multiple independent coordinate systems side by side or stacked (e.g., population pyramid, butterfly chart)**\n→ Use `type: 'spaceLayer'` + `children` (each child view has independent data and coordinate system):\n\n```javascript\n\u002F\u002F ✅ Population Pyramid: Two independent views stacked, sharing the Y-axis\nchart.options({\n  type: 'spaceLayer',\n  children: [\n    {\n      type: 'interval',\n      data: leftData,                              \u002F\u002F Left data (negative values or flipped)\n      coordinate: { transform: [{ type: 'transpose' }, { type: 'reflectX' }] },\n      encode: { x: 'age', y: 'male' },\n      axis: { y: { position: 'right' } },\n    },\n    {\n      type: 'interval',\n      data: rightData,                             \u002F\u002F Right data\n      coordinate: { transform: [{ type: 'transpose' }] },\n      encode: { x: 'age', y: 'female' },\n      axis: { y: false },\n    },\n  ],\n});\n\n\u002F\u002F ✅ Simpler approach: Single view + negative value trick (data can be in one array)\nchart.options({\n  type: 'interval',\n  data: combinedData,                              \u002F\u002F Combined data, using negative values to distinguish direction\n  coordinate: { transform: [{ type: 'transpose' }] },\n  encode: {\n    x: 'age',\n    y: (d) => d.sex === 'male' ? -d.population : d.population,\n    color: 'sex',\n  },\n  axis: {\n    y: { labelFormatter: (d) => Math.abs(d) },     \u002F\u002F Display absolute values\n  },\n});\n```\n\n**Selection Principle**:\n- If both sides have the same data structure but opposite directions → **Prioritize negative value trick** (single `interval`, most concise code)\n- If both sides require completely independent coordinate systems\u002Fscales → Use `spaceLayer`\n\n### 1.2 Prohibited Hallucinated Mark Types\n\nThe following types are from other charting libraries (such as ECharts, Vega) and **do not exist in G2**. Using them will result in runtime errors:\n\n| ❌ Incorrect Usage | ✅ Correct Replacement |\n|--------------------|------------------------|\n| `type: 'ruleX'`    | `type: 'lineX'` (vertical reference line) |\n| `type: 'ruleY'`    | `type: 'lineY'` (horizontal reference line) |\n| `type: 'regionX'`  | `type: 'rangeX'` (X-axis range highlight) |\n| `type: 'regionY'`  | `type: 'rangeY'` (Y-axis range highlight) |\n| `type: 'venn'`     | `type: 'path'` + `data.transform: [{ type: 'venn' }]` |\n\n**Complete List of Valid Mark Types in G2** (do not create other types arbitrarily):\n- Basic: `interval`, `line`, `area`, `point`, `rect`, `cell`, `text`, `image`, `path`, `polygon`, `shape`\n- Connections: `link`, `connector`, `vector`\n- Reference Lines\u002FAreas: `lineX`, `lineY`, `rangeX`, `rangeY`; `range` (rarely used, only when both x\u002Fy need to define a 2D rectangle, and the x\u002Fy fields of the data must be `[start, end]` arrays)\n- Statistical: `box`, `boxplot`, `density`, `heatmap`, `beeswarm`\n- Hierarchical\u002FRelational: `treemap`, `pack`, `partition`, `tree`, `sankey`, `chord`, `forceGraph`\n- Special: `wordCloud`, `gauge`, `liquid`\n- Requires Extension Package: `sunburst` (requires `@antv\u002Fg2-extension-plot`, see [Sunburst Chart](references\u002Fmarks\u002Fg2-mark-sunburst.md))\n---\n\n## 2. Common Mistakes\n\n### ⚠️ Most Frequent Error: Prohibit Multiple Calls to `chart.options()`\n\n`chart.options()` is a **full replacement**, not a merge. When called multiple times, **only the last call takes effect**, and all previous configurations are lost. **Each chart can only call `chart.options()` once.**\n\n```javascript\n\u002F\u002F ❌ Wrong: Multiple calls to chart.options() —— Each call fully replaces the previous one, only the last call takes effect\nchart.options({ type: 'interval', data, encode: { x: 'x', y: 'y' } });  \u002F\u002F ❌ Overwritten, not rendered\nchart.options({ type: 'line',     data, encode: { x: 'x', y: 'y' } });  \u002F\u002F ❌ Overwritten, not rendered\nchart.options({ type: 'text',     data, encode: { x: 'x', y: 'y', text: 'label' } });  \u002F\u002F Only this takes effect\n\n\u002F\u002F ✅ Correct: Multiple marks must use type: 'view' + children, resolved in one chart.options() call\nchart.options({\n  type: 'view',\n  data,\n  children: [\n    { type: 'interval', encode: { x: 'x', y: 'y' } },\n    { type: 'line',     encode: { x: 'x', y: 'y' } },\n    { type: 'text',     encode: { x: 'x', y: 'y', text: 'label' } },\n  ],\n});\n\n\u002F\u002F ✅ When child marks require different data, specify data separately within children\nchart.options({\n  type: 'view',\n  data: mainData,\n  children: [\n    { type: 'interval', encode: { x: 'x', y: 'y' } },\n    { type: 'text', data: labelData, encode: { x: 'x', text: 'label' } },\n  ],\n});\n```\n\nMulti-mark combination rules:\n- Only use `children`, prohibit `marks`, `layers`, etc.\n- `children` cannot be nested (`children` cannot contain `type: 'view'` + `children`)\n- Use `spaceLayer`\u002F`spaceFlex` for complex multi-coordinate system combinations\n\n```javascript\n\u002F\u002F ❌ Wrong: Using marks\u002Flayers (prohibited)\nchart.options({ type: 'view', data, marks: [...] });   \u002F\u002F ❌\nchart.options({ type: 'view', data, layers: [...] });  \u002F\u002F ❌\n\n\u002F\u002F ❌ Wrong: Nested children (prohibited)\nchart.options({ type: 'view', children: [{ type: 'view', children: [...] }] });  \u002F\u002F ❌\n\n\u002F\u002F ✅ Correct: Use spaceLayer for complex multi-coordinate system combinations\nchart.options({\n  type: 'spaceLayer',\n  children: [\n    { type: 'view', children: [...] },\n    { type: 'line', encode: { x: 'x', y: 'y' } },\n  ],\n});\n```\n\n### Other Common Errors\n\n```javascript\n\u002F\u002F ❌ Wrong: padding in array form (CSS shorthand), not supported in G2 v5, will be ignored\nconst chart = new Chart({ container: 'container', padding: [40, 30, 40, 50] });  \u002F\u002F ❌\n\n\u002F\u002F ✅ Correct: Uniform padding for all sides\nconst chart = new Chart({ container: 'container', padding: 40 });\n\n\u002F\u002F ✅ Correct: Padding controlled by direction\nconst chart = new Chart({ container: 'container', paddingTop: 40, paddingLeft: 60 });\n\n\u002F\u002F ❌ Wrong: Missing container\nconst chart = new Chart({ width: 640, height: 480 });\n\n\u002F\u002F ✅ Correct: Container required\nconst chart = new Chart({ container: 'container', width: 640, height: 480 });\n\n\u002F\u002F ❌ Wrong: Transform as object\nchart.options({ transform: { type: 'stackY' } });\n\n\u002F\u002F ✅ Correct: Transform as array\nchart.options({ transform: [{ type: 'stackY' }] });\n\n\u002F\u002F ❌ Wrong: Label (singular)\nchart.options({ label: { text: 'value' } });\n\n\u002F\u002F ✅ Correct: Labels (plural)\nchart.options({ labels: [{ text: 'value' }] });\n\n\u002F\u002F ❌ Wrong: Unnecessary scale type specification\nchart.options({ scale: { x: { type: 'linear' }, y: { type: 'linear' } } });\n\n\u002F\u002F ✅ Correct: Let G2 infer scale type automatically\nchart.options({ scale: { y: { domain: [0, 100] } } });\n```\n\n\u003C!-- CONSTRAINTS:END -->\n\n---\n\n## 3. Basic Structure\n\n```javascript\nimport { Chart } from '@antv\u002Fg2';\n\nconst chart = new Chart({ container: 'container', width: 640, height: 480 });\n\nchart.options({\n  type: 'interval',           \u002F\u002F Mark type\n  data: [...],                \u002F\u002F Data array\n  encode: { x: 'field', y: 'field', color: 'field' },\n  transform: [],              \u002F\u002F Data transforms\n  scale: {},                  \u002F\u002F Scale config\n  coordinate: {},             \u002F\u002F Coordinate system\n  style: {},                  \u002F\u002F Style config\n  labels: [],                 \u002F\u002F Data labels\n  tooltip: {},                \u002F\u002F Tooltip config\n  axis: {},                   \u002F\u002F Axis config\n  legend: {},                 \u002F\u002F Legend config\n});\n\nchart.render();\n```\n\n---\n\n## 4. Core Concepts\n\nCore concepts are the foundation of G2, and understanding them is a prerequisite for using G2 correctly.\n\n### 4.1 Chart Initialization\n\nChart is the core class of G2, and all charts start from a Chart instance.\n\n```javascript\nimport { Chart } from '@antv\u002Fg2';\n\nconst chart = new Chart({\n  container: 'container',  \u002F\u002F Required: DOM container ID or element\n  width: 640,              \u002F\u002F Optional: width\n  height: 480,             \u002F\u002F Optional: height\n  autoFit: true,           \u002F\u002F Optional: auto-fit container size\n  padding: 'auto',         \u002F\u002F Optional: padding\n  theme: 'light',          \u002F\u002F Optional: theme\n});\n```\n\n> **Detailed Documentation**: [Chart Initialization](references\u002Fcore\u002Fg2-core-chart-init.md)\n\n### 4.2 encode Channel System\n\nencode maps data fields to visual channels and is a core concept in G2.\n\n| Channel | Usage | Example |\n|------|------|------|\n| `x` | X-axis position | `encode: { x: 'month' }` |\n| `y` | Y-axis position | `encode: { y: 'value' }` |\n| `color` | Color | `encode: { color: 'category' }` |\n| `size` | Size | `encode: { size: 'population' }` |\n| `shape` | Shape | `encode: { shape: 'type' }` |\n\n> **Detailed Documentation**: [encode Channel System](references\u002Fcore\u002Fg2-core-encode-channel.md)\n\n### 4.3 View Composition (view + children)\n\nUse the `view` type in conjunction with the `children` array to compose multiple marks.\n\n```javascript\nchart.options({\n  type: 'view',\n  data,\n  children: [\n    { type: 'line', encode: { x: 'date', y: 'value' } },\n    { type: 'point', encode: { x: 'date', y: 'value' } },\n  ],\n});\n```\n\n> **Detailed Documentation**: [View Composition](references\u002Fcore\u002Fg2-core-view-composition.md)\n\n---\n\n## 5. Concepts \u002F Concept Guide\n\nThe concept guide helps in selecting the correct chart type and configuration scheme.\n\n### 5.1 Chart Selection\n\nSelect the appropriate chart type based on data characteristics and visualization goals:\n\n| Data Relationship | Recommended Chart | Mark |\n|---------|---------|------|\n| Comparison | Bar Chart, Column Chart | `interval` |\n| Trend | Line Chart, Area Chart | `line`, `area` |\n| Proportion | Pie Chart, Ring Chart | `interval` + `theta` |\n| Distribution | Histogram, Box Plot | `rect`, `boxplot` |\n| Correlation | Scatter Plot, Bubble Chart | `point` |\n| Hierarchy | Treemap, Partition Chart, Sunburst Chart | `treemap`, `partition`, `sunburst` (requires extension package) |\n\n> **Detailed Documentation**: [Chart Selection Guide](references\u002Fconcepts\u002Fg2-concept-chart-selection.md)\n\n### 5.2 Visual Channels \u002F Visual Channels\n\nVisual channels are the mapping methods from data to visual attributes:\n\n| Channel Type | Suitable Data | Perceptual Accuracy |\n|--------------|---------------|---------------------|\n| Position     | Continuous\u002FDiscrete | Highest |\n| Length       | Continuous     | High    |\n| Color (Hue)  | Discrete       | Medium  |\n| Color (Luminance) | Continuous | Medium  |\n| Size         | Continuous     | Medium-Low |\n| Shape        | Discrete       | Low     |\n\n> **Detailed Documentation**: [Visual Channels](references\u002Fconcepts\u002Fg2-concept-visual-channels.md)\n\n### 5.3 Color Theory\n\nSelecting an appropriate color scheme enhances chart readability:\n\n| Scenario | Recommended Scheme | Example |\n|----------|--------------------|---------|\n| Categorical Data | Discrete Palette | `category10`, `category20` |\n| Continuous Data | Sequential Palette | `Blues`, `RdYlBu` |\n| Positive\u002FNegative Contrast | Diverging Palette | `RdYlGn` |\n\n> **Detailed Documentation**: [Color Theory](references\u002Fconcepts\u002Fg2-concept-color-theory.md)\n\n---\n\n## 6. Marks \u002F Chart Types\n\nMarks are the core visualization elements in G2, determining the visual representation of data. Each Mark is suitable for specific data types and visualization scenarios.\n\n### 6.1 Bar Chart Series \u002F Interval\n\nBar charts are used to compare the magnitude of categorical data and are one of the most commonly used chart types. Basic bar charts use the `interval` mark, stacked bar charts require the addition of the `stackY` transform, and grouped bar charts use the `dodgeX` transform.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Bar Chart | `interval` | - |\n| Stacked Bar Chart | `interval` | `transform: [{ type: 'stackY' }]` |\n| Grouped Bar Chart | `interval` | `transform: [{ type: 'dodgeX' }]` |\n| Percentage Bar Chart | `interval` | `transform: [{ type: 'normalizeY' }]` |\n| Horizontal Bar Chart | `interval` | `coordinate: { transform: [{ type: 'transpose' }] }` |\n\n> **Detailed Documentation**: [Basic Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-basic.md) | [Stacked Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-stacked.md) | [Grouped Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-grouped.md) | [Percentage Bar Chart](references\u002Fmarks\u002Fg2-mark-interval-normalized.md)\n\n### 6.2 Line Chart Series \u002F Line\n\nLine charts are used to display the trend of data changes over time or ordered categories. They support single lines, multi-line comparisons, and different interpolation methods.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Line Chart | `line` | - |\n| Multi-Series Line | `line` | `encode: { color: 'category' }` |\n| Smooth Curve | `line` | `encode: { shape: 'smooth' }` |\n| Step Line | `line` | `encode: { shape: 'step' }` |\n\n> **Detailed Documentation**: [Basic Line Chart](references\u002Fmarks\u002Fg2-mark-line-basic.md) | [Multi-Series Line](references\u002Fmarks\u002Fg2-mark-line-multi.md) | [LineX\u002FLineY](references\u002Fmarks\u002Fg2-mark-linex-liney.md)\n\n### 6.3 Area Chart Series \u002F Area\n\nArea charts build upon line charts by filling the area beneath the line, emphasizing the magnitude of change over time. Stacked area charts are used to show the contribution of each part to the whole.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Area Chart | `area` | - |\n| Stacked Area Chart | `area` | `transform: [{ type: 'stackY' }]` |\n\n> **Detailed Documentation**: [Basic Area Chart](references\u002Fmarks\u002Fg2-mark-area-basic.md) | [Stacked Area Chart](references\u002Fmarks\u002Fg2-mark-area-stacked.md)\n\n### 6.4 Pie Chart\u002FDonut Chart \u002F Arc (Pie\u002FDonut)\n\nPie charts are used to display the proportional relationship of parts to the whole. They are implemented using the `theta` coordinate system in conjunction with the `interval` mark.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Pie Chart | `interval` | `coordinate: { type: 'theta' }` + `stackY` |\n| Donut Chart | `interval` | `coordinate: { type: 'theta', innerRadius: 0.6 }` |\n\n> **Detailed Documentation**: [Pie Chart](references\u002Fmarks\u002Fg2-mark-arc-pie.md) | [Donut Chart](references\u002Fmarks\u002Fg2-mark-arc-donut.md)\n\n### 6.5 Scatter Plot\u002FBubble Plot \u002F Point\n\nScatter plots are used to display the relationship between two numerical variables, while bubble plots use the size of the points to represent a third dimension.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Scatter Plot | `point` | `encode: { x, y }` |\n| Bubble Plot | `point` | `encode: { x, y, size }` |\n\n> **Detailed Documentation**: [Scatter Plot](references\u002Fmarks\u002Fg2-mark-point-scatter.md) | [Bubble Plot](references\u002Fmarks\u002Fg2-mark-point-bubble.md)\n\n### 6.6 Histogram\n\nHistograms are used to display the distribution of continuous numerical data, implemented using the `rect` mark with the `binX` transform. Unlike bar charts, histograms have no gaps between bars, representing continuous data.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Basic Histogram | `rect` | `transform: [{ type: 'binX', y: 'count' }]` |\n| Multi-Distribution Comparison | `rect` | `groupBy` grouping |\n\n> **Detailed Documentation**: [Histogram](references\u002Fmarks\u002Fg2-mark-histogram.md)\n\n### 6.7 Rose Chart \u002F Radial Bar Chart \u002F Polar Charts\n\nCharts under the polar coordinate system, representing numerical values through radius or arc length, are visually more appealing.\n\n| Type | Mark | Key Configuration |\n|------|------|----------|\n| Rose Chart | `interval` | `coordinate: { type: 'polar' }` |\n| Radial Bar Chart | `interval` | `coordinate: { type: 'radial' }` |\n\n> **Detailed Documentation**: [Rose Chart](references\u002Fmarks\u002Fg2-mark-rose.md) | [Radial Bar Chart](references\u002Fmarks\u002Fg2-mark-radial-bar.md)\n\n### 6.8 Distribution\n\nCharts that display data distribution characteristics, suitable for statistical analysis and exploratory data analysis.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Boxplot | `boxplot` | Data distribution statistics |\n| Box (Boxplot) | `box` | Manually specified boxplot with five-number summary |\n| Density Plot | `density` | Kernel density estimation curve |\n| Violin Plot | `density` + `boxplot` | Density distribution + statistical information |\n| Polygon | `polygon` | Custom polygon area |\n\n> **Detailed Documentation**: [Boxplot](references\u002Fmarks\u002Fg2-mark-boxplot.md) | [Box (Boxplot)](references\u002Fmarks\u002Fg2-mark-box-boxplot.md) | [Density Plot](references\u002Fmarks\u002Fg2-mark-density.md) | [Violin Plot](references\u002Fmarks\u002Fg2-mark-violin.md) | [Polygon](references\u002Fmarks\u002Fg2-mark-polygon.md)\n\n### 6.9 Relation\n\nCharts that display relationships between data, suitable for network analysis and set relationship visualization.\n\n| Type | Mark | Use Case |\n|------|------|----------|\n| Sankey Diagram | `sankey` | Flow\u002Ftransfer relationships |\n| Chord Diagram | `chord` | Matrix flow relationships |\n| Venn Diagram | `path` + venn data transform | Set intersection relationships (venn is a data transform, not a mark type) |\n| Arc Diagram | `line` + `point` | Node link relationships |\n\n> **Detailed Documentation**: [Sankey Diagram](references\u002Fmarks\u002Fg2-mark-sankey.md) | [Chord Diagram](references\u002Fmarks\u002Fg2-mark-chord.md) | [Venn Diagram](references\u002Fmarks\u002Fg2-mark-venn.md) | [Arc Diagram](references\u002Fmarks\u002Fg2-mark-arc-diagram.md)\n\n### 6.10 Project Management Chart \u002F Project\n\nSuitable for project management and progress tracking.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Gantt Chart | `interval` | Task scheduling |\n| Bullet Chart | `interval` + `point` | KPI metric display |\n\n> **Detailed Documentation**: [Gantt Chart](references\u002Fmarks\u002Fg2-mark-gantt.md) | [Bullet Chart](references\u002Fmarks\u002Fg2-mark-bullet.md)\n\n### 6.11 Finance\n\nProfessional charts for financial data analysis.\n\n| Type | Mark | Usage |\n|------|------|------|\n| K-line Chart | `link` + `interval` | Stock four-price data |\n\n> **Detailed Documentation**: [K-line Chart](references\u002Fmarks\u002Fg2-mark-k-chart.md)\n\n### 6.12 Multivariate Data Chart \u002F Multivariate\n\nCharts for displaying multivariate data relationships.\n\n| Type | Mark | Use Case |\n|------|------|----------|\n| Parallel Coordinates | `line` | Multivariate data relationship analysis |\n| Radar Chart | `line` | Multivariate data comparison |\n\n> **Detailed Documentation**: [Parallel Coordinates](references\u002Fmarks\u002Fg2-mark-parallel.md) | [Radar Chart](references\u002Fmarks\u002Fg2-mark-radar.md)\n\n### 6.13 Comparison Chart \u002F Comparison\n\nSuitable for data comparison.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Bi-directional Bar Chart | `interval` | Positive and negative data comparison |\n\n> **Detailed Documentation**: [Bi-directional Bar Chart](references\u002Fmarks\u002Fg2-mark-bi-directional-bar.md)\n\n### 6.14 Basic Marks\n\nBasic marks are the foundational building blocks of G2, which can be used independently or combined to construct complex charts.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Rectangle | `rect` | Rectangular area, basis for histograms\u002Fheatmaps |\n| Text | `text` | Text annotations and labels |\n| Image | `image` | Image mark, representing data points with images |\n| Path | `path` | Custom path drawing |\n| Link | `link` | Line connecting two points |\n| Connector | `connector` | Connection line between data points |\n| Shape | `shape` | Custom shape drawing |\n| Vector | `vector` | Vector\u002Farrow mark, for wind field charts, etc. |\n\n> **Detailed Documentation**: [rect](references\u002Fmarks\u002Fg2-mark-rect.md) | [text](references\u002Fmarks\u002Fg2-mark-text.md) | [image](references\u002Fmarks\u002Fg2-mark-image.md) | [path](references\u002Fmarks\u002Fg2-mark-path.md) | [link](references\u002Fmarks\u002Fg2-mark-link.md) | [connector](references\u002Fmarks\u002Fg2-mark-connector.md) | [shape](references\u002Fmarks\u002Fg2-mark-shape.md) | [vector](references\u002Fmarks\u002Fg2-mark-vector.md)\n\n### 6.15 Range Mark \u002F Range\n\nThe range mark is used to display the interval range of data.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Time Period\u002FInterval Highlight (X Direction) | `rangeX` | X-axis interval, `encode: { x: 'start', x1: 'end' }` |\n| Numerical Range Highlight (Y Direction) | `rangeY` | Y-axis interval, `encode: { y: 'min', y1: 'max' }` |\n| Two-Dimensional Rectangular Area | `range` | x\u002Fy fields are `[start,end]` arrays, `encode: { x:'x', y:'y' }`, rarely used |\n\n> **Detailed Documentation**: [range\u002FrangeY](references\u002Fmarks\u002Fg2-mark-range-rangey.md) | [rangeX](references\u002Fmarks\u002Fg2-mark-rangex.md)\n\n### 6.16 Distribution & Pack\n\n| Type | Mark | Usage |\n|------|------|------|\n| Beeswarm Plot | `point` + `pack` | Closely arranged data points to display distribution |\n| Pack Layout | `pack` | Circular packing for hierarchical data |\n\n> **Detailed Documentation**: [Beeswarm Plot](references\u002Fmarks\u002Fg2-mark-beeswarm.md) | [Pack Layout](references\u002Fmarks\u002Fg2-mark-pack.md)\n\n### 6.17 Hierarchy\n\nCharts for displaying hierarchical data, representing numerical proportions through area or radius.\n\n| Type | Mark | Usage |\n|------|------|------|\n| Treemap | `treemap` | Hierarchical data proportion |\n| Sunburst | `sunburst`⚠️ | Multi-level concentric circle display (requires @antv\u002Fg2-extension-plot) |\n| Partition | `partition` | Hierarchical data partition display |\n| Tree | `tree` | Tree-like hierarchical structure |\n\n> **Detailed Documentation**: [Treemap](references\u002Fmarks\u002Fg2-mark-treemap.md) | [Sunburst](references\u002Fmarks\u002Fg2-mark-sunburst.md) | [Partition](references\u002Fmarks\u002Fg2-mark-partition.md) | [Tree](references\u002Fmarks\u002Fg2-mark-tree.md)\n\n### 6.18 Other Charts \u002F Others\n\n| Type | Mark | Usage |\n|------|------|------|\n| Heatmap | `cell` | Visualization of two-dimensional matrix data |\n| Density Heatmap | `heatmap` | Continuous density heatmap |\n| Gauge | `gauge` | Metric progress display |\n| Word Cloud | `wordCloud` | Text frequency visualization |\n| Liquid Fill Gauge | `liquid` | Percentage progress |\n\n> **Detailed Documentation**: [Heatmap](references\u002Fmarks\u002Fg2-mark-cell-heatmap.md) | [Density Heatmap](references\u002Fmarks\u002Fg2-mark-heatmap.md) | [Gauge](references\u002Fmarks\u002Fg2-mark-gauge.md) | [Word Cloud](references\u002Fmarks\u002Fg2-mark-wordcloud.md) | [Liquid Fill Gauge](references\u002Fmarks\u002Fg2-mark-liquid.md)\n\n---\n\n## 7. Data \u002F Data Transformation\n\nData transformation is performed during the data loading stage and is configured in `data.transform`, affecting all marks that use this data.\n\n### 7.1 Data Transform Types (Configured in `data.transform`)\n\n| Transform | Type | Purpose | Example Scenario |\n|------|------|------|---------|\n| **fold** | `fold` | Wide table to long table | Convert multi-column data to multiple series |\n| **filter** | `filter` | Conditional data filtering | Filter invalid data |\n| **sort** | `sort` | Sort using a callback function | Custom sorting logic |\n| **sortBy** | `sortBy` | Sort by field | Sort by field values |\n| **map** | `map` | Data mapping transformation | Add computed fields |\n| **join** | `join` | Merge data tables | Associate external data |\n| **pick** | `pick` | Select specified fields | Simplify fields |\n| **rename** | `rename` | Rename fields | Field renaming |\n| **slice** | `slice` | Slice data range | Pagination\u002Fslicing |\n| **ema** | `ema` | Exponential Moving Average | Time series smoothing |\n| **kde** | `kde` | Kernel Density Estimation | Density plot\u002Fviolin plot |\n| **log** | `log` | Print data to console | Debugging |\n| **custom** | `custom` | Custom data processing | Complex transformations |\n\n### 7.2 Data Format and Patterns\n\n| Type | Purpose |\n|------|------|\n| Tabular Data Format | Description of the standard tabular data format accepted by G2 |\n| Data Transformation Patterns | Combination usage patterns of Data Transform and Mark Transform |\n\n> **Detailed Documentation**: [filter](references\u002Fdata\u002Fg2-data-filter.md) | [sort](references\u002Fdata\u002Fg2-data-sort.md) | [sortBy](references\u002Fdata\u002Fg2-data-sortby.md) | [fold](references\u002Fdata\u002Fg2-data-fold.md) | [slice](references\u002Fdata\u002Fg2-data-slice.md) | [ema](references\u002Fdata\u002Fg2-data-ema.md) | [kde](references\u002Fdata\u002Fg2-data-kde.md) | [log](references\u002Fdata\u002Fg2-data-log.md) | [fetch](references\u002Fdata\u002Fg2-data-fetch.md) | [Data Transformation Patterns](references\u002Fdata\u002Fg2-data-transform-patterns.md)\n\n### 7.3 Common Mistakes: Incorrect Placement of Data Transform\n\n```javascript\n\u002F\u002F ❌ Wrong: fold is a data transform and cannot be placed in mark transform\nchart.options({\n  type: 'interval',\n  data: wideData,\n  transform: [{ type: 'fold', fields: ['a', 'b'] }],  \u002F\u002F ❌ Wrong!\n});\n\n\u002F\u002F ✅ Correct: fold placed in data.transform\nchart.options({\n  type: 'interval',\n  data: {\n    type: 'inline',\n    value: wideData,\n    transform: [{ type: 'fold', fields: ['a', 'b'] }],  \u002F\u002F ✅ Correct\n  },\n  transform: [{ type: 'stackY' }],  \u002F\u002F mark transform\n});\n```\n\n### 7.4 Combination Example: Wide Table Data + Stacked Chart\n\n```javascript\n\u002F\u002F Wide table data: Multiple data columns for each month\nconst wideData = [\n  { year: '2000', 'Type A': 21, 'Type B': 16, 'Type C': 8 },\n  { year: '2001', 'Type A': 25, 'Type B': 16, 'Type C': 8 },\n  \u002F\u002F ...\n];\n\nchart.options({\n  type: 'interval',\n  data: {\n    type: 'inline',\n    value: wideData,\n    transform: [\n      \u002F\u002F ✅ Data Transform: Wide to Long Table\n      { type: 'fold', fields: ['Type A', 'Type B', 'Type C'], key: 'type', value: 'value' },\n    ],\n  },\n  encode: { x: 'year', y: 'value', color: 'type' },\n  transform: [\n    \u002F\u002F ✅ Mark Transform: Stacked\n    { type: 'stackY' },\n  ],\n  coordinate: { type: 'polar' },  \u002F\u002F Polar coordinate system\n});\n```\n\n---\n\n## 8. Transforms \u002F Mark Transformations\n\nMark transformations are executed when binding visual channels and are configured in the `transform` array of the mark. They are used for data aggregation, anti-overlapping, and more.\n\n**Configuration Location**: The `transform` array, which is at the same level as `data` and `encode`, **not** in `data.transform`.\n\n```javascript\nchart.options({\n  type: 'interval',\n  data,\n  encode: { x: 'category', y: 'value', color: 'type' },\n  transform: [  \u002F\u002F ✅ Mark Transform: At the same level as data\u002Fencode\n    { type: 'stackY' },\n    { type: 'sortX', by: 'y' },\n  ],\n});\n```\n\n### 8.1 Anti-overlap Transformations\n\n| Transformation | Type | Purpose |\n|------|------|------|\n| Stack | `stackY` | Data stacking, used for stacked charts |\n| Dodge | `dodgeX` | Data grouping, used for dodged charts |\n| Jitter | `jitter` | Scatter jitter to avoid overlap |\n| Jitter X | `jitterX` | Jitter in the X direction |\n| Jitter Y | `jitterY` | Jitter in the Y direction |\n| Pack | `pack` | Tightly arrange data points |\n\n> **Detailed Documentation**: [stackY](references\u002Ftransforms\u002Fg2-transform-stacky.md) | [dodgeX](references\u002Ftransforms\u002Fg2-transform-dodgex.md) | [jitter](references\u002Ftransforms\u002Fg2-transform-jitter.md) | [jitterX](references\u002Ftransforms\u002Fg2-transform-jitterx.md) | [jitterY](references\u002Ftransforms\u002Fg2-transform-jittery.md) | [pack](references\u002Ftransforms\u002Fg2-transform-pack.md)\n\n### 8.2 Aggregation Transforms \u002F Aggregation\n\n| Transform | Type | Purpose |\n|------|------|------|\n| General Grouping | `group` | General grouping aggregation |\n| Group Aggregation | `groupX` \u002F `groupY` | Group and aggregate by dimension |\n| Group Color | `groupColor` | Group aggregation by color |\n| Binning | `bin` | Two-dimensional binning |\n| X-axis Binning | `binX` | Binning in the X-axis direction |\n| Sampling | `sample` | Data sampling |\n\n> **Detailed Documentation**: [group](references\u002Ftransforms\u002Fg2-transform-group.md) | [groupX](references\u002Ftransforms\u002Fg2-transform-groupx.md) | [groupY](references\u002Ftransforms\u002Fg2-transform-groupy.md) | [groupColor](references\u002Ftransforms\u002Fg2-transform-groupcolor.md) | [bin](references\u002Ftransforms\u002Fg2-transform-bin.md) | [binX](references\u002Ftransforms\u002Fg2-transform-binx.md) | [sample](references\u002Ftransforms\u002Fg2-transform-sample.md)\n\n### 8.3 Sorting Transforms \u002F Sorting\n\n| Transform | Type | Purpose |\n|------|------|------|\n| X-axis Sorting | `sortX` | Sort by X channel |\n| Y-axis Sorting | `sortY` | Sort by Y channel |\n| Color Sorting | `sortColor` | Sort by color channel |\n\n> **Detailed Documentation**: [sortX](references\u002Ftransforms\u002Fg2-transform-sortx.md) | [sortY](references\u002Ftransforms\u002Fg2-transform-sorty.md) | [sortColor](references\u002Ftransforms\u002Fg2-transform-sort-color.md)\n\n### 8.4 Selection Transforms \u002F Selection\n\n| Transform | Type | Purpose |\n|------|------|------|\n| Selection | `select` | Global data selection |\n| X-axis Selection | `selectX` | Selection by X grouping |\n| Y-axis Selection | `selectY` | Selection by Y grouping |\n\n> **Detailed Documentation**: [select](references\u002Ftransforms\u002Fg2-transform-select.md) | [selectX](references\u002Ftransforms\u002Fg2-transform-selectx.md) | [selectY](references\u002Ftransforms\u002Fg2-transform-selecty.md)\n\n### 8.5 Other Transforms \u002F Others\n\n| Transform | Type | Usage |\n|------|------|------|\n| Normalize | `normalizeY` | Y-axis normalization |\n| Difference | `diffY` | Calculate differences |\n| Symmetry | `symmetryY` | Y-axis symmetry |\n| Flex X | `flexX` | X-axis flex layout |\n| Stack Enter | `stackEnter` | Stacked enter animation |\n\n> **Detailed Documentation**: [normalizeY](references\u002Ftransforms\u002Fg2-transform-normalizey.md) | [diffY](references\u002Ftransforms\u002Fg2-transform-diffy.md) | [symmetryY](references\u002Ftransforms\u002Fg2-transform-symmetryy.md) | [flexX](references\u002Ftransforms\u002Fg2-transform-flexx.md) | [stackEnter](references\u002Ftransforms\u002Fg2-transform-stack-enter.md)\n\n---\n\n## 9. Interactions\n\nG2 provides a rich set of built-in interactions for data exploration and chart manipulation.\n\n### 9.1 Selection Interactions\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Element Selection | `elementSelect` | Click to select data elements |\n| Conditional Selection | `elementSelectBy` | Batch select elements based on conditions |\n| Brush Selection | `brush` \u002F `brushX` \u002F `brushY` | Rectangular area selection |\n| 2D Brush Selection | `brushXY` | Simultaneous XY brush selection |\n| Axis Brush Selection | `brushAxis` | Coordinate axis range selection |\n| Legend Filter | `legendFilter` | Click legend to filter data |\n\n> **Detailed Documentation**: [elementSelect](references\u002Finteractions\u002Fg2-interaction-element-select.md) | [elementSelectBy](references\u002Finteractions\u002Fg2-interaction-element-select-by.md) | [brush](references\u002Finteractions\u002Fg2-interaction-brush.md) | [brushXY](references\u002Finteractions\u002Fg2-interaction-brush-xy.md) | [brushAxis](references\u002Finteractions\u002Fg2-interaction-brush-axis.md) | [legendFilter](references\u002Finteractions\u002Fg2-interaction-legend-filter.md)\n\n### 9.2 Highlight Interactions \u002F Highlight\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Element Highlight | `elementHighlight` | Hover to highlight elements |\n| Conditional Highlight | `elementHighlightBy` | Batch highlight elements based on conditions |\n| Hover Scale | `elementHoverScale` | Scale up elements on hover |\n| Legend Highlight | `legendHighlight` | Hover legend to highlight corresponding elements |\n| Brush Highlight | `brushXHighlight` \u002F `brushYHighlight` | Highlight selected area |\n\n> **Detailed Documentation**: [elementHighlight](references\u002Finteractions\u002Fg2-interaction-element-highlight.md) | [elementHighlightBy](references\u002Finteractions\u002Fg2-interaction-element-highlight-by.md) | [elementHoverScale](references\u002Finteractions\u002Fg2-interaction-element-hover-scale.md) | [legendHighlight](references\u002Finteractions\u002Fg2-interaction-legend-highlight.md) | [brushXHighlight](references\u002Finteractions\u002Fg2-interaction-brushx-highlight.md) | [brushYHighlight](references\u002Finteractions\u002Fg2-interaction-brushy-highlight.md) | [Single-axis Brush Highlight](references\u002Finteractions\u002Fg2-interaction-brush-x-y-highlight.md)\n\n### 9.3 Filter Interactions \u002F Filter\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Slider Filter | `sliderFilter` | Filter data range using a slider |\n| Scrollbar Filter | `scrollbarFilter` | Filter data using a scrollbar |\n| Brush Filter | `brushFilter` | Filter data within a selected area |\n| X-axis Brush Filter | `brushXFilter` | Filter data along the X-axis direction |\n| Y-axis Brush Filter | `brushYFilter` | Filter data along the Y-axis direction |\n| Adaptive Filter | `adaptiveFilter` | Adaptively filter data |\n\n> **Detailed Documentation**: [sliderFilter](references\u002Finteractions\u002Fg2-interaction-slider-filter.md) | [scrollbarFilter](references\u002Finteractions\u002Fg2-interaction-scrollbar-filter.md) | [brushFilter](references\u002Finteractions\u002Fg2-interaction-brush-filter.md) | [brushXFilter](references\u002Finteractions\u002Fg2-interaction-brushx-filter.md) | [brushYFilter](references\u002Finteractions\u002Fg2-interaction-brushy-filter.md) | [adaptiveFilter](references\u002Finteractions\u002Fg2-interaction-adaptive-filter.md)\n\n### 9.4 Other Interactions \u002F Others\n\n| Interaction | Type | Purpose |\n|------|------|------|\n| Tooltip | `tooltip` | Display data details on hover |\n| PopTip | `poptip` | Concise pop-up tip |\n| Drilldown | `drilldown` | Hierarchical data drilldown |\n| Treemap Drilldown | `treemapDrilldown` | Treemap hierarchical drilldown |\n| Fisheye | `fisheye` | Fisheye magnifier effect |\n| Slider Wheel | `sliderWheel` | Mouse wheel control for slider |\n| Element Point Move | `elementPointMove` | Drag data point to move |\n| Chart Index | `chartIndex` | Multi-chart linkage index line |\n\n> **Detailed Documentation**: [tooltip](references\u002Finteractions\u002Fg2-interaction-tooltip.md) | [poptip](references\u002Finteractions\u002Fg2-interaction-poptip.md) | [drilldown](references\u002Finteractions\u002Fg2-interaction-drilldown.md) | [treemapDrilldown](references\u002Finteractions\u002Fg2-interaction-treemap-drilldown.md) | [fisheye](references\u002Finteractions\u002Fg2-interaction-fisheye.md) | [sliderWheel](references\u002Finteractions\u002Fg2-interaction-slider-wheel.md) | [elementPointMove](references\u002Finteractions\u002Fg2-interaction-element-point-move.md) | [chartIndex](references\u002Finteractions\u002Fg2-interaction-chart-index.md)\n\n---\n\n## 10. Components \u002F 组件\n\nComponents are auxiliary elements of charts, such as axes, legends, and tooltips.\n\n### 10.1 Axis\n\nThe axis displays data dimensions and supports rich style configurations.\n\n> **Detailed Documentation**: [Axis Configuration](references\u002Fcomponents\u002Fg2-comp-axis-config.md) | [Radar Chart Axis](references\u002Fcomponents\u002Fg2-comp-axis-radar.md)\n\n### 10.2 Legend\n\nThe legend displays data categorization or continuous value mapping, supporting categorical legends and continuous legends (color ramps).\n\n| Type | Purpose |\n|------|------|\n| Categorical Legend | Color mapping explanation for discrete categorical data |\n| Continuous Legend | Color\u002Fsize mapping explanation for continuous values (color ramp) |\n\n> **Detailed Documentation**: [Legend Configuration](references\u002Fcomponents\u002Fg2-comp-legend-config.md) | [Categorical Legend](references\u002Fcomponents\u002Fg2-comp-legend-category.md) | [Continuous Legend](references\u002Fcomponents\u002Fg2-comp-legend-continuous.md)\n\n### 10.3 Tooltip\n\nTooltip displays data details on hover and supports custom templates and formatting.\n\n> **Detailed Documentation**: [Tooltip Configuration](references\u002Fcomponents\u002Fg2-comp-tooltip-config.md)\n\n### 10.4 Other Components \u002F Others\n\n| Component | Purpose |\n|-----------|---------|\n| Title     | Chart title |\n| Label     | Data label |\n| Scrollbar | Data scrolling |\n| Slider    | Data range selection |\n| Annotation| Data annotation and auxiliary lines |\n\n> **Detailed Documentation**: [Title](references\u002Fcomponents\u002Fg2-comp-title.md) | [Label](references\u002Fcomponents\u002Fg2-comp-label-config.md) | [Scrollbar](references\u002Fcomponents\u002Fg2-comp-scrollbar.md) | [Slider](references\u002Fcomponents\u002Fg2-comp-slider.md) | [Annotation](references\u002Fcomponents\u002Fg2-comp-annotation.md)\n\n---\n\n## 11. Scales\n\nScales map data values to visual channels such as position, color, size, and more.\n\n### 11.1 ⚠️ Default Behavior (Avoid Over-Specifying `type`)\n\n**G2 automatically infers the scale type based on the data type. Avoid manually specifying `type` unless necessary:**\n\n| Data Type | Inferred Scale | Example |\n|-----------|----------------|---------|\n| Numerical Field | `linear` | `{ value: 100 }` → linear |\n| Categorical Field | `band` | `{ category: 'A' }` → band |\n| Date Object | `time` | `{ date: new Date() }` → time |\n\n```javascript\n\u002F\u002F ❌ Incorrect: Unnecessary type specification may cause rendering issues\nchart.options({\n  scale: {\n    x: { type: 'linear' },  \u002F\u002F ❌ Numerical fields default to linear\n    y: { type: 'linear' },  \u002F\u002F ❌ No need to specify\n  },\n});\n\n\u002F\u002F ✅ Correct: Let G2 infer automatically, configure domain\u002Frange only when needed\nchart.options({\n  scale: {\n    y: { domain: [0, 100] },  \u002F\u002F ✅ Configure only necessary properties\n    color: { range: ['#1890ff', '#52c41a'] },\n  },\n});\n```\n\n**Special Cases Requiring Manual `type` Specification:**\n\n| Scenario | Type | Description |\n|----------|------|-------------|\n| Logarithmic Scale | `log` | Data spanning multiple orders of magnitude |\n| Power Scale | `pow` | Non-linear data mapping |\n| Square Root Scale | `sqrt` | Compression of non-negative data |\n| String Date | `time` | Date field is a string, not a Date object |\n| Custom Mapping | `ordinal` | Discrete to discrete mapping |\n| Gradient Color | `sequential` | Continuous values to color gradient |\n| Threshold Mapping | `threshold` | Mapping by threshold to colors |\n| Equal Interval Binning | `quantize` \u002F `quantile` | Discretization of continuous data |\n\n### 11.2 Scale Types\n\n| Scale | Type | Usage |\n|--------|------|------|\n| Linear | `linear` | Continuous numerical mapping (default) |\n| Band | `band` | Discrete categorical mapping (default) |\n| Point | `point` | Discrete point position mapping |\n| Time | `time` | Time data mapping |\n| Log | `log` | Logarithmic scale |\n| Power\u002FSquare Root | `pow` \u002F `sqrt` | Power function\u002Fsquare root mapping |\n| Ordinal | `ordinal` | Discrete to discrete value mapping |\n| Sequential | `sequential` | Continuous value to color gradient |\n| Quantile\u002FQuantize | `quantile` \u002F `quantize` | Continuous data discretization mapping |\n| Threshold | `threshold` | Segmented mapping by threshold |\n\n> **Detailed Documentation**: [linear](references\u002Fscales\u002Fg2-scale-linear.md) | [band](references\u002Fscales\u002Fg2-scale-band.md) | [point](references\u002Fscales\u002Fg2-scale-point.md) | [time](references\u002Fscales\u002Fg2-scale-time.md) | [log](references\u002Fscales\u002Fg2-scale-log.md) | [pow\u002Fsqrt](references\u002Fscales\u002Fg2-scale-pow-sqrt.md) | [ordinal](references\u002Fscales\u002Fg2-scale-ordinal.md) | [sequential](references\u002Fscales\u002Fg2-scale-sequential.md) | [quantile\u002Fquantize](references\u002Fscales\u002Fg2-scale-quantile-quantize.md) | [threshold](references\u002Fscales\u002Fg2-scale-threshold.md)\n\n---\n\n## 12. Coordinates \u002F 坐标系\n\nThe coordinate system defines the mapping method from data to canvas position, and different coordinate systems produce different chart forms.\n\n| Coordinate System | Type | Usage |\n|-------------------|------|------|\n| Cartesian | `cartesian` | Rectangular coordinate system (default) |\n| Polar | `polar` | Radar chart, rose chart |\n| Theta | `theta` | Pie chart, donut chart |\n| Radial | `radial` | Radial coordinate system, gauge chart |\n| Transpose | `transpose` | X\u002FY axis swap |\n| Parallel | `parallel` | Parallel coordinate system |\n| Helix | `helix` | Helix coordinate system |\n| Fisheye | `fisheye` | Local magnification effect |\n\n> **Detailed Documentation**: [cartesian](references\u002Fcoordinates\u002Fg2-coord-cartesian.md) | [polar](references\u002Fcoordinates\u002Fg2-coord-polar.md) | [theta](references\u002Fcoordinates\u002Fg2-coord-theta.md) | [radial](references\u002Fcoordinates\u002Fg2-coord-radial.md) | [transpose](references\u002Fcoordinates\u002Fg2-coord-transpose.md) | [parallel](references\u002Fcoordinates\u002Fg2-coord-parallel.md) | [helix](references\u002Fcoordinates\u002Fg2-coord-helix.md) | [fisheye](references\u002Fcoordinates\u002Fg2-coord-fisheye.md)\n\n---\n\n## 13. Compositions \u002F Composition Views\n\nComposition views are used to create multi-chart layouts, such as facets, multi-view overlays, etc.\n\n| Composition | Type | Purpose |\n|------|------|------|\n| Basic View | `view` | Single view container, combining multiple marks |\n| Facet Rect | `facetRect` | Split rectangular grid multi-chart by dimension |\n| Facet Circle | `facetCircle` | Split circular multi-chart by dimension |\n| Repeat Matrix | `repeatMatrix` | Multi-variable combination matrix chart |\n| Space Layer | `spaceLayer` | Multi-layer overlay |\n| Space Flex | `spaceFlex` | Flexible layout |\n| Timing Keyframe | `timingKeyframe` | Animation sequence |\n| Geo View | `geoView` | Geographic coordinate system view |\n| Geo Path | `geoPath` | Geographic path rendering |\n\n> **Detailed Documentation**: [view](references\u002Fcompositions\u002Fg2-comp-view.md) | [facetRect](references\u002Fcompositions\u002Fg2-comp-facet-rect.md) | [facetCircle](references\u002Fcompositions\u002Fg2-comp-facet-circle.md) | [repeatMatrix](references\u002Fcompositions\u002Fg2-comp-repeat-matrix.md) | [spaceLayer](references\u002Fcompositions\u002Fg2-comp-space-layer.md) | [spaceFlex](references\u002Fcompositions\u002Fg2-comp-space-flex.md) | [timingKeyframe](references\u002Fcompositions\u002Fg2-comp-timing-keyframe.md) | [geoView](references\u002Fcompositions\u002Fg2-comp-geoview.md) | [geoPath](references\u002Fcompositions\u002Fg2-comp-geo-map.md)\n\n---\n\n## 14. Themes \u002F 主题\n\nThemes define the overall visual style of a chart, including colors, fonts, spacing, and more.\n\n> **Detailed Documentation**: [Built-in Themes](references\u002Fthemes\u002Fg2-theme-builtin.md) | [Custom Themes](references\u002Fthemes\u002Fg2-theme-custom.md)\n\n---\n## 15. Palettes\n\nPalettes define color sequences, used for color mapping of categorical or continuous data.\n\n> **Detailed Documentation**: [category10](references\u002Fpalette\u002Fg2-palette-category10.md) | [category20](references\u002Fpalette\u002Fg2-palette-category20.md)\n\n---\n\n## 16. Animations\n\nAnimations enhance the expressiveness of charts, supporting entrance, update, and exit animation configurations.\n\n**⚠️ Important Rule**: G2 comes with default animation effects at the underlying level. **Do not** add `animate` configurations unless the user explicitly requests animations. Only when the user clearly describes animation requirements (e.g., \"fade-in animation\", \"wave entrance\", etc.) should you refer to the documentation and add the corresponding animate configuration.\n\n> **Detailed Documentation**: [Animation Introduction](references\u002Fanimations\u002Fg2-animation-intro.md) | [Animation Types](references\u002Fanimations\u002Fg2-animation-types.md) | [Keyframe Animation](references\u002Fanimations\u002Fg2-animation-keyframe.md)\n\n---\n\n## 17. Label Transforms\n\nLabel transforms are used to handle issues such as label overlap and overflow, improving label readability.\n\n| Transform | Type | Purpose |\n|------|------|------|\n| Overflow Hide | `overflowHide` | Hide labels that exceed the area |\n| Overlap Hide | `overlapHide` | Automatically hide overlapping labels |\n| Overlap Dodge Y | `overlapDodgeY` | Offset overlapping labels in the Y direction |\n| Contrast Reverse | `contrastReverse` | Automatically reverse label colors to ensure contrast |\n| Exceed Adjust | `exceedAdjust` | Adjust the position of labels that exceed the canvas boundaries |\n| Overflow Stroke | `overflowStroke` | Add stroke marks to overflow areas |\n\n> **Detailed Documentation**: [overflowHide](references\u002Flabel-transform\u002Fg2-label-transform-overflow-hide.md) | [overlapHide](references\u002Flabel-transform\u002Fg2-label-transform-overlap-hide.md) | [overlapDodgeY](references\u002Flabel-transform\u002Fg2-label-transform-overlap-dodge-y.md) | [contrastReverse](references\u002Flabel-transform\u002Fg2-label-transform-contrast-reverse.md) | [exceedAdjust](references\u002Flabel-transform\u002Fg2-label-transform-exceed-adjust.md) | [overflowStroke](references\u002Flabel-transform\u002Fg2-label-transform-overflow-stroke.md)\n\n---\n\n## 18. Patterns\n\nPatterns are best practices for common scenarios, including migration guides, performance optimization, and responsive adaptation.\n### 18.1 Migration Guide \u002F Migration (v4 → v5)\n\n| v4 (Deprecated) | v5 (Correct) |\n|-----------------|--------------|\n| `chart.source(data)` | `chart.options({ data })` |\n| `.position('x*y')` | `encode: { x: 'x', y: 'y' }` |\n| `.color('field')` | `encode: { color: 'field' }` |\n| `.adjust('stack')` | `transform: [{ type: 'stackY' }]` |\n| `.adjust('dodge')` | `transform: [{ type: 'dodgeX' }]` |\n| `label: {}` | `labels: [{}]` |\n\n> **Detailed Documentation**: [v4 → v5 Migration](references\u002Fpatterns\u002Fg2-pattern-v4-to-v5.md)\n\n### 18.2 Performance Optimization \u002F Performance\n\nData pre-aggregation, LTTB downsampling, Canvas renderer confirmation, high-frequency real-time data throttling updates.\n\n| Scenario | Data Volume | Recommended Solution |\n|----------|----------------|---------------------|\n| Line Chart | \u003C 1,000 points | Direct rendering |\n| Line Chart | 1,000 ~ 10,000 points | Downsample to within 500 points |\n| Line Chart | > 10,000 points | Backend aggregation + time range filtering |\n| Scatter Plot | \u003C 5,000 points | Direct rendering |\n| Scatter Plot | 5,000 ~ 50,000 points | Canvas rendering + downsampling |\n\n> **Detailed Documentation**: [Performance Optimization](references\u002Fpatterns\u002Fg2-pattern-performance.md)\n\n### 18.3 Responsive\n\nautoFit adaptive, ResizeObserver dynamic adjustment, mobile font\u002Fmargin adaptation.\n\n> **Detailed Documentation**: [Responsive Adaptation](references\u002Fpatterns\u002Fg2-pattern-responsive.md)\n\n---",{"name":5,"description":7},"main","74715deacdc69119d739f38916f8ee4f0f979ebf","skills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert",0,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills","https:\u002F\u002Fgithub.com\u002Fmdnaimul22","AI Agents Workflows Automation | Specializing in Python, FastAPI, MCP Agents & Custom ERP.","2026-11-11 21:16:57",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add mdnaimul22\u002Fhuman-skills --skill antv-g2-chart",{"tool":67,"command":68},"bunx","bunx skills add mdnaimul22\u002Fhuman-skills --skill antv-g2-chart",{"tool":70,"command":71},"pnpm","pnpm dlx skills add mdnaimul22\u002Fhuman-skills --skill antv-g2-chart","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002FSKILL.md",true,[75,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325,329,333,337,341,345,349,353,357,361,365,369,373,377,381,385,389,393,397,401,404,408,412,416,420,424,428,432,436,440,444,448,452,456,460,464,468,472,476,480,484,488,492,496,500,504,508,512,516,520,524,528,532,536,540,544,548,552,556,560,564,568,572,576,580,584,588,592,596,600,604,608,612,616,620,624,628,631,635,639,643,647,651,655,659,663,667,671,675,679,682,686,690,694,698,702,706,710,714,718,722,726,730,734,738,742,746,750,754,758,761,765,768,772,776,780,784],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fanimations\u002Fg2-animation-intro.md","REFERENCE","参考文档",4735,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fanimations\u002Fg2-animation-intro.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fanimations\u002Fg2-animation-keyframe.md",4172,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fanimations\u002Fg2-animation-keyframe.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fanimations\u002Fg2-animation-types.md",8442,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fanimations\u002Fg2-animation-types.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fcomponents\u002Fg2-comp-annotation.md",4908,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-annotation.md",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fcomponents\u002Fg2-comp-axis-config.md",21278,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-axis-config.md",{"path":98,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fcomponents\u002Fg2-comp-axis-radar.md",4611,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-axis-radar.md",{"path":102,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fcomponents\u002Fg2-comp-label-config.md",5941,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-label-config.md",{"path":106,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fcomponents\u002Fg2-comp-legend-category.md",5539,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-legend-category.md",{"path":110,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":111,"sourceHtmlUrl":112},"references\u002Fcomponents\u002Fg2-comp-legend-config.md",11265,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-legend-config.md",{"path":114,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":115,"sourceHtmlUrl":116},"references\u002Fcomponents\u002Fg2-comp-legend-continuous.md",7581,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-legend-continuous.md",{"path":118,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":119,"sourceHtmlUrl":120},"references\u002Fcomponents\u002Fg2-comp-scrollbar.md",7835,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-scrollbar.md",{"path":122,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":123,"sourceHtmlUrl":124},"references\u002Fcomponents\u002Fg2-comp-slider.md",11341,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-slider.md",{"path":126,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":127,"sourceHtmlUrl":128},"references\u002Fcomponents\u002Fg2-comp-title.md",4013,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-title.md",{"path":130,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":131,"sourceHtmlUrl":132},"references\u002Fcomponents\u002Fg2-comp-tooltip-config.md",10332,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcomponents\u002Fg2-comp-tooltip-config.md",{"path":134,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":135,"sourceHtmlUrl":136},"references\u002Fcompositions\u002Fg2-comp-facet-circle.md",2796,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-facet-circle.md",{"path":138,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":139,"sourceHtmlUrl":140},"references\u002Fcompositions\u002Fg2-comp-facet-rect.md",6205,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-facet-rect.md",{"path":142,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":143,"sourceHtmlUrl":144},"references\u002Fcompositions\u002Fg2-comp-geo-map.md",5318,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-geo-map.md",{"path":146,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":147,"sourceHtmlUrl":148},"references\u002Fcompositions\u002Fg2-comp-geoview.md",3646,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-geoview.md",{"path":150,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":151,"sourceHtmlUrl":152},"references\u002Fcompositions\u002Fg2-comp-repeat-matrix.md",4502,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-repeat-matrix.md",{"path":154,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":155,"sourceHtmlUrl":156},"references\u002Fcompositions\u002Fg2-comp-space-flex.md",4017,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-space-flex.md",{"path":158,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":159,"sourceHtmlUrl":160},"references\u002Fcompositions\u002Fg2-comp-space-layer.md",3797,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-space-layer.md",{"path":162,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":163,"sourceHtmlUrl":164},"references\u002Fcompositions\u002Fg2-comp-timing-keyframe.md",2402,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-timing-keyframe.md",{"path":166,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":167,"sourceHtmlUrl":168},"references\u002Fcompositions\u002Fg2-comp-view.md",6402,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcompositions\u002Fg2-comp-view.md",{"path":170,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":171,"sourceHtmlUrl":172},"references\u002Fconcepts\u002Fg2-concept-chart-selection.md",7789,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fconcepts\u002Fg2-concept-chart-selection.md",{"path":174,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":175,"sourceHtmlUrl":176},"references\u002Fconcepts\u002Fg2-concept-color-theory.md",9768,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fconcepts\u002Fg2-concept-color-theory.md",{"path":178,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":179,"sourceHtmlUrl":180},"references\u002Fconcepts\u002Fg2-concept-visual-channels.md",5996,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fconcepts\u002Fg2-concept-visual-channels.md",{"path":182,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":183,"sourceHtmlUrl":184},"references\u002Fcoordinates\u002Fg2-coord-cartesian.md",3702,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-cartesian.md",{"path":186,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":187,"sourceHtmlUrl":188},"references\u002Fcoordinates\u002Fg2-coord-fisheye.md",3433,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-fisheye.md",{"path":190,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":191,"sourceHtmlUrl":192},"references\u002Fcoordinates\u002Fg2-coord-helix.md",3734,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-helix.md",{"path":194,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":195,"sourceHtmlUrl":196},"references\u002Fcoordinates\u002Fg2-coord-parallel.md",3435,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-parallel.md",{"path":198,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":199,"sourceHtmlUrl":200},"references\u002Fcoordinates\u002Fg2-coord-polar.md",3877,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-polar.md",{"path":202,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":203,"sourceHtmlUrl":204},"references\u002Fcoordinates\u002Fg2-coord-radial.md",5882,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-radial.md",{"path":206,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":207,"sourceHtmlUrl":208},"references\u002Fcoordinates\u002Fg2-coord-theta.md",4471,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-theta.md",{"path":210,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":211,"sourceHtmlUrl":212},"references\u002Fcoordinates\u002Fg2-coord-transpose.md",5482,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcoordinates\u002Fg2-coord-transpose.md",{"path":214,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":215,"sourceHtmlUrl":216},"references\u002Fcore\u002Fg2-core-chart-init.md",11388,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcore\u002Fg2-core-chart-init.md",{"path":218,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":219,"sourceHtmlUrl":220},"references\u002Fcore\u002Fg2-core-encode-channel.md",5491,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcore\u002Fg2-core-encode-channel.md",{"path":222,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":223,"sourceHtmlUrl":224},"references\u002Fcore\u002Fg2-core-view-composition.md",6041,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fcore\u002Fg2-core-view-composition.md",{"path":226,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":227,"sourceHtmlUrl":228},"references\u002Fdata\u002Fg2-data-ema.md",4777,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-ema.md",{"path":230,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":231,"sourceHtmlUrl":232},"references\u002Fdata\u002Fg2-data-fetch.md",4434,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-fetch.md",{"path":234,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":235,"sourceHtmlUrl":236},"references\u002Fdata\u002Fg2-data-filter.md",5143,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-filter.md",{"path":238,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":239,"sourceHtmlUrl":240},"references\u002Fdata\u002Fg2-data-fold.md",7681,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-fold.md",{"path":242,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":243,"sourceHtmlUrl":244},"references\u002Fdata\u002Fg2-data-kde.md",13277,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-kde.md",{"path":246,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":247,"sourceHtmlUrl":248},"references\u002Fdata\u002Fg2-data-log.md",3042,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-log.md",{"path":250,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":251,"sourceHtmlUrl":252},"references\u002Fdata\u002Fg2-data-slice.md",3280,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-slice.md",{"path":254,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":255,"sourceHtmlUrl":256},"references\u002Fdata\u002Fg2-data-sort.md",6267,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-sort.md",{"path":258,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":259,"sourceHtmlUrl":260},"references\u002Fdata\u002Fg2-data-sortby.md",3954,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-sortby.md",{"path":262,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":263,"sourceHtmlUrl":264},"references\u002Fdata\u002Fg2-data-transform-patterns.md",10940,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fdata\u002Fg2-data-transform-patterns.md",{"path":266,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":267,"sourceHtmlUrl":268},"references\u002Finteractions\u002Fg2-interaction-adaptive-filter.md",3352,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-adaptive-filter.md",{"path":270,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":271,"sourceHtmlUrl":272},"references\u002Finteractions\u002Fg2-interaction-brush-axis.md",3270,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brush-axis.md",{"path":274,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":275,"sourceHtmlUrl":276},"references\u002Finteractions\u002Fg2-interaction-brush-filter.md",3129,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brush-filter.md",{"path":278,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":279,"sourceHtmlUrl":280},"references\u002Finteractions\u002Fg2-interaction-brush-x-y-highlight.md",3665,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brush-x-y-highlight.md",{"path":282,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":283,"sourceHtmlUrl":284},"references\u002Finteractions\u002Fg2-interaction-brush-xy.md",3614,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brush-xy.md",{"path":286,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":287,"sourceHtmlUrl":288},"references\u002Finteractions\u002Fg2-interaction-brush.md",4503,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brush.md",{"path":290,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":291,"sourceHtmlUrl":292},"references\u002Finteractions\u002Fg2-interaction-brushx-filter.md",3549,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brushx-filter.md",{"path":294,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":295,"sourceHtmlUrl":296},"references\u002Finteractions\u002Fg2-interaction-brushx-highlight.md",4219,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brushx-highlight.md",{"path":298,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":299,"sourceHtmlUrl":300},"references\u002Finteractions\u002Fg2-interaction-brushy-filter.md",3450,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brushy-filter.md",{"path":302,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":303,"sourceHtmlUrl":304},"references\u002Finteractions\u002Fg2-interaction-brushy-highlight.md",4092,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-brushy-highlight.md",{"path":306,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":307,"sourceHtmlUrl":308},"references\u002Finteractions\u002Fg2-interaction-chart-index.md",3784,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-chart-index.md",{"path":310,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":311,"sourceHtmlUrl":312},"references\u002Finteractions\u002Fg2-interaction-drilldown.md",3826,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-drilldown.md",{"path":314,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":315,"sourceHtmlUrl":316},"references\u002Finteractions\u002Fg2-interaction-element-highlight-by.md",3987,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-element-highlight-by.md",{"path":318,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":319,"sourceHtmlUrl":320},"references\u002Finteractions\u002Fg2-interaction-element-highlight.md",5556,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-element-highlight.md",{"path":322,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":323,"sourceHtmlUrl":324},"references\u002Finteractions\u002Fg2-interaction-element-hover-scale.md",2746,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-element-hover-scale.md",{"path":326,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":327,"sourceHtmlUrl":328},"references\u002Finteractions\u002Fg2-interaction-element-point-move.md",4330,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-element-point-move.md",{"path":330,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":331,"sourceHtmlUrl":332},"references\u002Finteractions\u002Fg2-interaction-element-select-by.md",3652,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-element-select-by.md",{"path":334,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":335,"sourceHtmlUrl":336},"references\u002Finteractions\u002Fg2-interaction-element-select.md",6674,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-element-select.md",{"path":338,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":339,"sourceHtmlUrl":340},"references\u002Finteractions\u002Fg2-interaction-fisheye.md",3342,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-fisheye.md",{"path":342,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":343,"sourceHtmlUrl":344},"references\u002Finteractions\u002Fg2-interaction-legend-filter.md",3705,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-legend-filter.md",{"path":346,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":347,"sourceHtmlUrl":348},"references\u002Finteractions\u002Fg2-interaction-legend-highlight.md",3569,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-legend-highlight.md",{"path":350,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":351,"sourceHtmlUrl":352},"references\u002Finteractions\u002Fg2-interaction-poptip.md",3039,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-poptip.md",{"path":354,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":355,"sourceHtmlUrl":356},"references\u002Finteractions\u002Fg2-interaction-scrollbar-filter.md",3910,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-scrollbar-filter.md",{"path":358,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":359,"sourceHtmlUrl":360},"references\u002Finteractions\u002Fg2-interaction-slider-filter.md",5620,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-slider-filter.md",{"path":362,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":363,"sourceHtmlUrl":364},"references\u002Finteractions\u002Fg2-interaction-slider-wheel.md",3911,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-slider-wheel.md",{"path":366,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":367,"sourceHtmlUrl":368},"references\u002Finteractions\u002Fg2-interaction-tooltip.md",5144,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-tooltip.md",{"path":370,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":371,"sourceHtmlUrl":372},"references\u002Finteractions\u002Fg2-interaction-treemap-drilldown.md",3707,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Finteractions\u002Fg2-interaction-treemap-drilldown.md",{"path":374,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":375,"sourceHtmlUrl":376},"references\u002Flabel-transform\u002Fg2-label-transform-contrast-reverse.md",3720,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Flabel-transform\u002Fg2-label-transform-contrast-reverse.md",{"path":378,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":379,"sourceHtmlUrl":380},"references\u002Flabel-transform\u002Fg2-label-transform-exceed-adjust.md",3076,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Flabel-transform\u002Fg2-label-transform-exceed-adjust.md",{"path":382,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":383,"sourceHtmlUrl":384},"references\u002Flabel-transform\u002Fg2-label-transform-overflow-hide.md",4117,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Flabel-transform\u002Fg2-label-transform-overflow-hide.md",{"path":386,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":387,"sourceHtmlUrl":388},"references\u002Flabel-transform\u002Fg2-label-transform-overflow-stroke.md",3140,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Flabel-transform\u002Fg2-label-transform-overflow-stroke.md",{"path":390,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":391,"sourceHtmlUrl":392},"references\u002Flabel-transform\u002Fg2-label-transform-overlap-dodge-y.md",4958,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Flabel-transform\u002Fg2-label-transform-overlap-dodge-y.md",{"path":394,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":395,"sourceHtmlUrl":396},"references\u002Flabel-transform\u002Fg2-label-transform-overlap-hide.md",4844,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Flabel-transform\u002Fg2-label-transform-overlap-hide.md",{"path":398,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":399,"sourceHtmlUrl":400},"references\u002Fmarks\u002Fg2-mark-arc-diagram.md",4586,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-arc-diagram.md",{"path":402,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":195,"sourceHtmlUrl":403},"references\u002Fmarks\u002Fg2-mark-arc-donut.md","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-arc-donut.md",{"path":405,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":406,"sourceHtmlUrl":407},"references\u002Fmarks\u002Fg2-mark-arc-pie.md",5514,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-arc-pie.md",{"path":409,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":410,"sourceHtmlUrl":411},"references\u002Fmarks\u002Fg2-mark-area-basic.md",3805,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-area-basic.md",{"path":413,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":414,"sourceHtmlUrl":415},"references\u002Fmarks\u002Fg2-mark-area-stacked.md",3386,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-area-stacked.md",{"path":417,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":418,"sourceHtmlUrl":419},"references\u002Fmarks\u002Fg2-mark-beeswarm.md",3878,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-beeswarm.md",{"path":421,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":422,"sourceHtmlUrl":423},"references\u002Fmarks\u002Fg2-mark-bi-directional-bar.md",7760,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-bi-directional-bar.md",{"path":425,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":426,"sourceHtmlUrl":427},"references\u002Fmarks\u002Fg2-mark-box-boxplot.md",4168,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-box-boxplot.md",{"path":429,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":430,"sourceHtmlUrl":431},"references\u002Fmarks\u002Fg2-mark-boxplot.md",8155,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-boxplot.md",{"path":433,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":434,"sourceHtmlUrl":435},"references\u002Fmarks\u002Fg2-mark-bullet.md",4979,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-bullet.md",{"path":437,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":438,"sourceHtmlUrl":439},"references\u002Fmarks\u002Fg2-mark-cell-heatmap.md",9356,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-cell-heatmap.md",{"path":441,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":442,"sourceHtmlUrl":443},"references\u002Fmarks\u002Fg2-mark-chord.md",7171,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-chord.md",{"path":445,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":446,"sourceHtmlUrl":447},"references\u002Fmarks\u002Fg2-mark-connector.md",3260,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-connector.md",{"path":449,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":450,"sourceHtmlUrl":451},"references\u002Fmarks\u002Fg2-mark-contourline.md",6000,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-contourline.md",{"path":453,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":454,"sourceHtmlUrl":455},"references\u002Fmarks\u002Fg2-mark-density.md",13259,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-density.md",{"path":457,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":458,"sourceHtmlUrl":459},"references\u002Fmarks\u002Fg2-mark-distribution-curve.md",7798,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-distribution-curve.md",{"path":461,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":462,"sourceHtmlUrl":463},"references\u002Fmarks\u002Fg2-mark-funnel.md",8643,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-funnel.md",{"path":465,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":466,"sourceHtmlUrl":467},"references\u002Fmarks\u002Fg2-mark-gantt.md",4474,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-gantt.md",{"path":469,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":470,"sourceHtmlUrl":471},"references\u002Fmarks\u002Fg2-mark-gauge.md",5700,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-gauge.md",{"path":473,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":474,"sourceHtmlUrl":475},"references\u002Fmarks\u002Fg2-mark-heatmap.md",3766,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-heatmap.md",{"path":477,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":478,"sourceHtmlUrl":479},"references\u002Fmarks\u002Fg2-mark-histogram.md",3927,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-histogram.md",{"path":481,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":482,"sourceHtmlUrl":483},"references\u002Fmarks\u002Fg2-mark-image.md",3462,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-image.md",{"path":485,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":486,"sourceHtmlUrl":487},"references\u002Fmarks\u002Fg2-mark-interval-basic.md",12273,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-interval-basic.md",{"path":489,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":490,"sourceHtmlUrl":491},"references\u002Fmarks\u002Fg2-mark-interval-grouped.md",4058,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-interval-grouped.md",{"path":493,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":494,"sourceHtmlUrl":495},"references\u002Fmarks\u002Fg2-mark-interval-normalized.md",3930,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-interval-normalized.md",{"path":497,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":498,"sourceHtmlUrl":499},"references\u002Fmarks\u002Fg2-mark-interval-stacked.md",4861,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-interval-stacked.md",{"path":501,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":502,"sourceHtmlUrl":503},"references\u002Fmarks\u002Fg2-mark-k-chart.md",5080,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-k-chart.md",{"path":505,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":506,"sourceHtmlUrl":507},"references\u002Fmarks\u002Fg2-mark-line-basic.md",8381,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-line-basic.md",{"path":509,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":510,"sourceHtmlUrl":511},"references\u002Fmarks\u002Fg2-mark-line-multi.md",3778,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-line-multi.md",{"path":513,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":514,"sourceHtmlUrl":515},"references\u002Fmarks\u002Fg2-mark-linex-liney.md",4386,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-linex-liney.md",{"path":517,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":518,"sourceHtmlUrl":519},"references\u002Fmarks\u002Fg2-mark-link.md",3472,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-link.md",{"path":521,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":522,"sourceHtmlUrl":523},"references\u002Fmarks\u002Fg2-mark-liquid.md",2793,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-liquid.md",{"path":525,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":526,"sourceHtmlUrl":527},"references\u002Fmarks\u002Fg2-mark-mosaic.md",7092,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-mosaic.md",{"path":529,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":530,"sourceHtmlUrl":531},"references\u002Fmarks\u002Fg2-mark-pack.md",12178,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-pack.md",{"path":533,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":534,"sourceHtmlUrl":535},"references\u002Fmarks\u002Fg2-mark-parallel.md",4070,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-parallel.md",{"path":537,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":538,"sourceHtmlUrl":539},"references\u002Fmarks\u002Fg2-mark-partition.md",16947,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-partition.md",{"path":541,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":542,"sourceHtmlUrl":543},"references\u002Fmarks\u002Fg2-mark-path.md",3067,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-path.md",{"path":545,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":546,"sourceHtmlUrl":547},"references\u002Fmarks\u002Fg2-mark-point-bubble.md",3731,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-point-bubble.md",{"path":549,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":550,"sourceHtmlUrl":551},"references\u002Fmarks\u002Fg2-mark-point-scatter.md",4577,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-point-scatter.md",{"path":553,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":554,"sourceHtmlUrl":555},"references\u002Fmarks\u002Fg2-mark-polygon.md",3207,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-polygon.md",{"path":557,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":558,"sourceHtmlUrl":559},"references\u002Fmarks\u002Fg2-mark-radar.md",5904,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-radar.md",{"path":561,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":562,"sourceHtmlUrl":563},"references\u002Fmarks\u002Fg2-mark-radial-bar.md",5324,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-radial-bar.md",{"path":565,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":566,"sourceHtmlUrl":567},"references\u002Fmarks\u002Fg2-mark-range-rangey.md",7436,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-range-rangey.md",{"path":569,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":570,"sourceHtmlUrl":571},"references\u002Fmarks\u002Fg2-mark-rangex.md",7589,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-rangex.md",{"path":573,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":574,"sourceHtmlUrl":575},"references\u002Fmarks\u002Fg2-mark-rect.md",3311,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-rect.md",{"path":577,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":578,"sourceHtmlUrl":579},"references\u002Fmarks\u002Fg2-mark-regression-curve.md",7271,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-regression-curve.md",{"path":581,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":582,"sourceHtmlUrl":583},"references\u002Fmarks\u002Fg2-mark-rose.md",3908,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-rose.md",{"path":585,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":586,"sourceHtmlUrl":587},"references\u002Fmarks\u002Fg2-mark-sankey.md",5534,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-sankey.md",{"path":589,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":590,"sourceHtmlUrl":591},"references\u002Fmarks\u002Fg2-mark-shape.md",4101,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-shape.md",{"path":593,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":594,"sourceHtmlUrl":595},"references\u002Fmarks\u002Fg2-mark-spiral.md",7192,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-spiral.md",{"path":597,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":598,"sourceHtmlUrl":599},"references\u002Fmarks\u002Fg2-mark-sunburst.md",6931,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-sunburst.md",{"path":601,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":602,"sourceHtmlUrl":603},"references\u002Fmarks\u002Fg2-mark-text.md",7393,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-text.md",{"path":605,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":606,"sourceHtmlUrl":607},"references\u002Fmarks\u002Fg2-mark-tree.md",6006,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-tree.md",{"path":609,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":610,"sourceHtmlUrl":611},"references\u002Fmarks\u002Fg2-mark-treemap.md",11047,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-treemap.md",{"path":613,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":614,"sourceHtmlUrl":615},"references\u002Fmarks\u002Fg2-mark-vector.md",2964,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-vector.md",{"path":617,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":618,"sourceHtmlUrl":619},"references\u002Fmarks\u002Fg2-mark-venn.md",4323,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-venn.md",{"path":621,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":622,"sourceHtmlUrl":623},"references\u002Fmarks\u002Fg2-mark-violin.md",6861,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-violin.md",{"path":625,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":626,"sourceHtmlUrl":627},"references\u002Fmarks\u002Fg2-mark-wordcloud.md",4096,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fmarks\u002Fg2-mark-wordcloud.md",{"path":629,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":418,"sourceHtmlUrl":630},"references\u002Fpalette\u002Fg2-palette-category10.md","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fpalette\u002Fg2-palette-category10.md",{"path":632,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":633,"sourceHtmlUrl":634},"references\u002Fpalette\u002Fg2-palette-category20.md",5463,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fpalette\u002Fg2-palette-category20.md",{"path":636,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":637,"sourceHtmlUrl":638},"references\u002Fpatterns\u002Fg2-pattern-performance.md",5630,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fpatterns\u002Fg2-pattern-performance.md",{"path":640,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":641,"sourceHtmlUrl":642},"references\u002Fpatterns\u002Fg2-pattern-responsive.md",6077,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fpatterns\u002Fg2-pattern-responsive.md",{"path":644,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":645,"sourceHtmlUrl":646},"references\u002Fpatterns\u002Fg2-pattern-v4-to-v5.md",5217,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fpatterns\u002Fg2-pattern-v4-to-v5.md",{"path":648,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":649,"sourceHtmlUrl":650},"references\u002Fscales\u002Fg2-scale-band.md",3218,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-band.md",{"path":652,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":653,"sourceHtmlUrl":654},"references\u002Fscales\u002Fg2-scale-linear.md",7139,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-linear.md",{"path":656,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":657,"sourceHtmlUrl":658},"references\u002Fscales\u002Fg2-scale-log.md",6958,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-log.md",{"path":660,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":661,"sourceHtmlUrl":662},"references\u002Fscales\u002Fg2-scale-ordinal.md",3162,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-ordinal.md",{"path":664,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":665,"sourceHtmlUrl":666},"references\u002Fscales\u002Fg2-scale-point.md",5687,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-point.md",{"path":668,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":669,"sourceHtmlUrl":670},"references\u002Fscales\u002Fg2-scale-pow-sqrt.md",3566,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-pow-sqrt.md",{"path":672,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":673,"sourceHtmlUrl":674},"references\u002Fscales\u002Fg2-scale-quantile-quantize.md",4046,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-quantile-quantize.md",{"path":676,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":677,"sourceHtmlUrl":678},"references\u002Fscales\u002Fg2-scale-sequential.md",10354,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-sequential.md",{"path":680,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":649,"sourceHtmlUrl":681},"references\u002Fscales\u002Fg2-scale-threshold.md","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-threshold.md",{"path":683,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":684,"sourceHtmlUrl":685},"references\u002Fscales\u002Fg2-scale-time.md",4551,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fscales\u002Fg2-scale-time.md",{"path":687,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":688,"sourceHtmlUrl":689},"references\u002Fthemes\u002Fg2-theme-builtin.md",4294,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fthemes\u002Fg2-theme-builtin.md",{"path":691,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":692,"sourceHtmlUrl":693},"references\u002Fthemes\u002Fg2-theme-custom.md",5366,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Fthemes\u002Fg2-theme-custom.md",{"path":695,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":696,"sourceHtmlUrl":697},"references\u002Ftransforms\u002Fg2-transform-bin.md",4293,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-bin.md",{"path":699,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":700,"sourceHtmlUrl":701},"references\u002Ftransforms\u002Fg2-transform-binx.md",3417,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-binx.md",{"path":703,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":704,"sourceHtmlUrl":705},"references\u002Ftransforms\u002Fg2-transform-diffy.md",3610,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-diffy.md",{"path":707,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":708,"sourceHtmlUrl":709},"references\u002Ftransforms\u002Fg2-transform-dodgex.md",2159,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-dodgex.md",{"path":711,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":712,"sourceHtmlUrl":713},"references\u002Ftransforms\u002Fg2-transform-flexx.md",3746,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-flexx.md",{"path":715,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":716,"sourceHtmlUrl":717},"references\u002Ftransforms\u002Fg2-transform-group.md",6123,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-group.md",{"path":719,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":720,"sourceHtmlUrl":721},"references\u002Ftransforms\u002Fg2-transform-groupcolor.md",3819,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-groupcolor.md",{"path":723,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":724,"sourceHtmlUrl":725},"references\u002Ftransforms\u002Fg2-transform-groupx.md",7362,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-groupx.md",{"path":727,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":728,"sourceHtmlUrl":729},"references\u002Ftransforms\u002Fg2-transform-groupy.md",3698,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-groupy.md",{"path":731,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":732,"sourceHtmlUrl":733},"references\u002Ftransforms\u002Fg2-transform-jitter.md",4613,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-jitter.md",{"path":735,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":736,"sourceHtmlUrl":737},"references\u002Ftransforms\u002Fg2-transform-jitterx.md",3894,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-jitterx.md",{"path":739,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":740,"sourceHtmlUrl":741},"references\u002Ftransforms\u002Fg2-transform-jittery.md",3941,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-jittery.md",{"path":743,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":744,"sourceHtmlUrl":745},"references\u002Ftransforms\u002Fg2-transform-normalizey.md",2125,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-normalizey.md",{"path":747,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":748,"sourceHtmlUrl":749},"references\u002Ftransforms\u002Fg2-transform-pack.md",3379,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-pack.md",{"path":751,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":752,"sourceHtmlUrl":753},"references\u002Ftransforms\u002Fg2-transform-sample.md",4394,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-sample.md",{"path":755,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":756,"sourceHtmlUrl":757},"references\u002Ftransforms\u002Fg2-transform-select.md",3884,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-select.md",{"path":759,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":418,"sourceHtmlUrl":760},"references\u002Ftransforms\u002Fg2-transform-selectx.md","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-selectx.md",{"path":762,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":763,"sourceHtmlUrl":764},"references\u002Ftransforms\u002Fg2-transform-selecty.md",3905,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-selecty.md",{"path":766,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":518,"sourceHtmlUrl":767},"references\u002Ftransforms\u002Fg2-transform-sort-color.md","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-sort-color.md",{"path":769,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":770,"sourceHtmlUrl":771},"references\u002Ftransforms\u002Fg2-transform-sortx.md",9289,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-sortx.md",{"path":773,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":774,"sourceHtmlUrl":775},"references\u002Ftransforms\u002Fg2-transform-sorty.md",3209,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-sorty.md",{"path":777,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":778,"sourceHtmlUrl":779},"references\u002Ftransforms\u002Fg2-transform-stack-enter.md",4437,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-stack-enter.md",{"path":781,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":782,"sourceHtmlUrl":783},"references\u002Ftransforms\u002Fg2-transform-stacky.md",5733,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-stacky.md",{"path":785,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":786,"sourceHtmlUrl":787},"references\u002Ftransforms\u002Fg2-transform-symmetryy.md",3266,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fantvis_chart-visualization-skills\u002Fantv-g2-chart-expert\u002Freferences\u002Ftransforms\u002Fg2-transform-symmetryy.md",[789,797,823,841,860,875],{"skillNo":790,"name":791,"nameZh":6,"description":792,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":793,"categories":794,"keywords":795,"publishedAt":796},"01M72JT3YP1SQHD0MANGDXQ4RT","higgsfield-websites","Build, edit, and deploy full-stack websites, apps and games via the Higgsfield CLI (`higgsfield website …`). Each is a React 19 + TanStack Start SSR app in one Cloudflare Worker (D1\u002FR2\u002FKV\u002FDO\u002FContainers). THREE product types, picked via `--type` on create: `website` (standalone, no Higgsfield integration — references\u002Fwebsite-flow.md), `app` (Sign in with Higgsfield + fnf SDK, Quanta — references\u002Fapp-flow.md), `game` (realtime multiplayer rooms — references\u002Fgame-flow.md). Routes to the right flow; each carries its own rules and deploy\u002Fpublish gates.\nUse when: \"build me a website\", \"make a landing page\", \"create a web app\", \"build a SaaS dashboard \u002F portfolio\", \"make me a game\", \"deploy this site\", \"publish\". Also owns GAME ART: \"make a spritesheet\", \"tileable texture\", \"animate a 3D character\", game music\u002FSFX — see the game-* references.\nNOT for: single image\u002Fvideo\u002Faudio generation (higgsfield-generate), product photos (higgsfield-product-photoshoot), marketplace cards (higgsfield-marketplace-cards).","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fhiggsfield-ai_skills\u002Fhiggsfield-websites\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":798,"name":799,"nameZh":6,"description":800,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":801,"categories":802,"keywords":815,"publishedAt":48},"01M70JPK8HAXXA85P7Q8NKZZYG","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-skills\u002FSKILL.md",[803,806,809,812],{"categoryNo":804,"categoryName":805,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":807,"categoryName":808,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",{"categoryNo":810,"categoryName":811,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":813,"categoryName":814,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[816,817,818,819,39,820,821,42,822],"writing","writing skills","editing","deployment","Existing","new","work",{"skillNo":824,"name":825,"nameZh":6,"description":826,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":827,"categories":828,"keywords":832,"publishedAt":48},"01M70JP4PHBH1CQVVDWZ94W159","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-plans\u002FSKILL.md",[829,830,831],{"categoryNo":804,"categoryName":805,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":807,"categoryName":808,"taxonomyType":26,"taxonomyTypeDesc":27},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[816,833,834,835,42,43,38,39,836,837,838,839,840],"writing plans","plans","you","requirements","task","multi","spec","multi-step task",{"skillNo":842,"name":843,"nameZh":6,"description":844,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":845,"categories":846,"keywords":847,"publishedAt":48},"01M70JNTYVGXFZT8PASZ844TH8","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fverification-before-completion\u002FSKILL.md",[],[848,849,850,851,852,853,39,854,855,856,42,857,822,858,859],"verification","verification before completion","complete","about","output","assertions","prs","evidence","claim","claims","commands","running",{"skillNo":861,"name":862,"nameZh":6,"description":863,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":864,"categories":865,"keywords":867,"publishedAt":48},"01M70JNGVSQDESWN0Q5BPJ875V","using-superpowers","Use when starting any conversation - establishes how to find and use skills, requiring skill invocation before ANY response including clarifying questions","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-superpowers\u002FSKILL.md",[866],{"categoryNo":810,"categoryName":811,"taxonomyType":21,"taxonomyTypeDesc":22},[868,869,870,871,39,42,872,873,874],"using superpowers","superpowers","conversation","how to","how","find","questions",{"skillNo":876,"name":877,"nameZh":6,"description":878,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":879,"categories":880,"keywords":881,"publishedAt":48},"01M70JN57CE588NPYPYTWH1DWG","using-git-worktrees","Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-git-worktrees\u002FSKILL.md",[],[882,883,884,885,886,887,42,822,888,889,890,891,892,893,894,834,39,895,896],"using git worktrees","Using git","git","worktrees","git worktrees","implementation","git worktree","worktree","native","Tools","isolation","fallback","feature","via","workspace"]