@loom-framework/core 0.1.0-alpha.84 → 0.1.0-alpha.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/builtin-skills/antd/SKILL.md +266 -0
  2. package/builtin-skills/antv-g2-chart/SKILL.md +1067 -0
  3. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-intro.md +176 -0
  4. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-keyframe.md +149 -0
  5. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-types.md +253 -0
  6. package/builtin-skills/antv-g2-chart/references/components/g2-comp-annotation.md +237 -0
  7. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-config.md +648 -0
  8. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-radar.md +219 -0
  9. package/builtin-skills/antv-g2-chart/references/components/g2-comp-label-config.md +174 -0
  10. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-category.md +278 -0
  11. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-config.md +363 -0
  12. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-continuous.md +264 -0
  13. package/builtin-skills/antv-g2-chart/references/components/g2-comp-scrollbar.md +276 -0
  14. package/builtin-skills/antv-g2-chart/references/components/g2-comp-slider.md +333 -0
  15. package/builtin-skills/antv-g2-chart/references/components/g2-comp-title.md +149 -0
  16. package/builtin-skills/antv-g2-chart/references/components/g2-comp-tooltip-config.md +358 -0
  17. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-circle.md +97 -0
  18. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-rect.md +241 -0
  19. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geo-map.md +210 -0
  20. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geoview.md +143 -0
  21. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-repeat-matrix.md +171 -0
  22. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-flex.md +142 -0
  23. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-layer.md +149 -0
  24. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-timing-keyframe.md +91 -0
  25. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-view.md +309 -0
  26. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-chart-selection.md +235 -0
  27. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-color-theory.md +287 -0
  28. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-visual-channels.md +180 -0
  29. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-cartesian.md +131 -0
  30. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-fisheye.md +131 -0
  31. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-helix.md +141 -0
  32. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-parallel.md +129 -0
  33. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-polar.md +143 -0
  34. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-radial.md +214 -0
  35. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-theta.md +171 -0
  36. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-transpose.md +195 -0
  37. package/builtin-skills/antv-g2-chart/references/core/g2-core-chart-init.md +266 -0
  38. package/builtin-skills/antv-g2-chart/references/core/g2-core-encode-channel.md +197 -0
  39. package/builtin-skills/antv-g2-chart/references/core/g2-core-view-composition.md +224 -0
  40. package/builtin-skills/antv-g2-chart/references/data/g2-data-ema.md +190 -0
  41. package/builtin-skills/antv-g2-chart/references/data/g2-data-fetch.md +167 -0
  42. package/builtin-skills/antv-g2-chart/references/data/g2-data-filter.md +212 -0
  43. package/builtin-skills/antv-g2-chart/references/data/g2-data-fold.md +260 -0
  44. package/builtin-skills/antv-g2-chart/references/data/g2-data-format-tabular.md +280 -0
  45. package/builtin-skills/antv-g2-chart/references/data/g2-data-kde.md +426 -0
  46. package/builtin-skills/antv-g2-chart/references/data/g2-data-log.md +140 -0
  47. package/builtin-skills/antv-g2-chart/references/data/g2-data-slice.md +147 -0
  48. package/builtin-skills/antv-g2-chart/references/data/g2-data-sort.md +251 -0
  49. package/builtin-skills/antv-g2-chart/references/data/g2-data-sortby.md +183 -0
  50. package/builtin-skills/antv-g2-chart/references/data/g2-data-transform-patterns.md +394 -0
  51. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-adaptive-filter.md +118 -0
  52. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-axis.md +112 -0
  53. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-filter.md +122 -0
  54. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-x-y-highlight.md +127 -0
  55. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-xy.md +118 -0
  56. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush.md +184 -0
  57. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-filter.md +170 -0
  58. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-highlight.md +186 -0
  59. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-filter.md +170 -0
  60. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-highlight.md +185 -0
  61. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-chart-index.md +127 -0
  62. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-drilldown.md +149 -0
  63. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight-by.md +125 -0
  64. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight.md +235 -0
  65. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-hover-scale.md +109 -0
  66. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-point-move.md +152 -0
  67. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select-by.md +133 -0
  68. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select.md +249 -0
  69. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-fisheye.md +117 -0
  70. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-filter.md +130 -0
  71. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-highlight.md +130 -0
  72. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-poptip.md +105 -0
  73. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-scrollbar-filter.md +144 -0
  74. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-filter.md +231 -0
  75. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-wheel.md +138 -0
  76. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-tooltip.md +192 -0
  77. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-treemap-drilldown.md +152 -0
  78. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-contrast-reverse.md +170 -0
  79. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-exceed-adjust.md +146 -0
  80. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-hide.md +185 -0
  81. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-stroke.md +147 -0
  82. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-dodge-y.md +225 -0
  83. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-hide.md +213 -0
  84. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-diagram.md +196 -0
  85. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-donut.md +148 -0
  86. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-pie.md +212 -0
  87. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-basic.md +168 -0
  88. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-stacked.md +150 -0
  89. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-beeswarm.md +134 -0
  90. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bi-directional-bar.md +297 -0
  91. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-box-boxplot.md +163 -0
  92. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-boxplot.md +340 -0
  93. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bullet.md +203 -0
  94. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-cell-heatmap.md +370 -0
  95. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-chord.md +341 -0
  96. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-connector.md +126 -0
  97. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-contourline.md +243 -0
  98. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-density.md +457 -0
  99. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-distribution-curve.md +298 -0
  100. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-funnel.md +329 -0
  101. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gantt.md +208 -0
  102. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gauge.md +247 -0
  103. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-heatmap.md +130 -0
  104. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-histogram.md +186 -0
  105. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-image.md +129 -0
  106. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-basic.md +528 -0
  107. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-grouped.md +161 -0
  108. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-normalized.md +147 -0
  109. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-stacked.md +183 -0
  110. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-k-chart.md +237 -0
  111. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-basic.md +353 -0
  112. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-multi.md +156 -0
  113. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-linex-liney.md +176 -0
  114. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-link.md +134 -0
  115. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-liquid.md +125 -0
  116. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-mosaic.md +257 -0
  117. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-pack.md +424 -0
  118. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-parallel.md +195 -0
  119. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-partition.md +275 -0
  120. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-path.md +135 -0
  121. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-bubble.md +138 -0
  122. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-scatter.md +177 -0
  123. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-polygon.md +130 -0
  124. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radar.md +231 -0
  125. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radial-bar.md +226 -0
  126. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-range-rangey.md +253 -0
  127. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rangex.md +293 -0
  128. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rect.md +115 -0
  129. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-regression-curve.md +276 -0
  130. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rose.md +182 -0
  131. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sankey.md +217 -0
  132. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-shape.md +160 -0
  133. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-spiral.md +257 -0
  134. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sunburst.md +327 -0
  135. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-text.md +309 -0
  136. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-tree.md +235 -0
  137. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-treemap.md +426 -0
  138. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-vector.md +108 -0
  139. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-venn.md +204 -0
  140. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-violin.md +307 -0
  141. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-wordcloud.md +155 -0
  142. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category10.md +196 -0
  143. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category20.md +238 -0
  144. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-performance.md +181 -0
  145. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-responsive.md +232 -0
  146. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-v4-to-v5.md +223 -0
  147. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-band.md +127 -0
  148. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-linear.md +259 -0
  149. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-log.md +226 -0
  150. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-ordinal.md +135 -0
  151. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-point.md +242 -0
  152. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-pow-sqrt.md +124 -0
  153. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-quantile-quantize.md +119 -0
  154. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-sequential.md +267 -0
  155. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-threshold.md +133 -0
  156. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-time.md +159 -0
  157. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-builtin.md +192 -0
  158. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-custom.md +183 -0
  159. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-bin.md +153 -0
  160. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-binx.md +133 -0
  161. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-diffy.md +130 -0
  162. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-dodgex.md +90 -0
  163. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-flexx.md +115 -0
  164. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-group.md +233 -0
  165. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupcolor.md +182 -0
  166. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupx.md +265 -0
  167. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupy.md +167 -0
  168. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitter.md +149 -0
  169. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitterx.md +177 -0
  170. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jittery.md +177 -0
  171. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-normalizey.md +83 -0
  172. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-pack.md +164 -0
  173. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sample.md +143 -0
  174. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-select.md +147 -0
  175. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selectx.md +179 -0
  176. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selecty.md +179 -0
  177. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sort-color.md +115 -0
  178. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sortx.md +285 -0
  179. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sorty.md +117 -0
  180. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stack-enter.md +158 -0
  181. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stacky.md +218 -0
  182. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-symmetryy.md +122 -0
  183. package/builtin-skills/chart-visualization/SKILL.md +101 -0
  184. package/{templates/loom-skill → builtin-skills/loom}/SKILL.md +20 -9
  185. package/{templates/loom-skill → builtin-skills/loom}/references/README.md +3 -3
  186. package/dist/capability-generator.d.ts +1 -1
  187. package/dist/capability-generator.js +3 -3
  188. package/dist/capability-generator.js.map +1 -1
  189. package/dist/cli/commands/generate-page.d.ts.map +1 -1
  190. package/dist/cli/commands/generate-page.js +1 -163
  191. package/dist/cli/commands/generate-page.js.map +1 -1
  192. package/dist/cli/commands/init.d.ts.map +1 -1
  193. package/dist/cli/commands/init.js +57 -294
  194. package/dist/cli/commands/init.js.map +1 -1
  195. package/dist/cli/generators/capability-generator.d.ts +35 -0
  196. package/dist/cli/generators/capability-generator.d.ts.map +1 -0
  197. package/dist/cli/generators/capability-generator.js +115 -0
  198. package/dist/cli/generators/capability-generator.js.map +1 -0
  199. package/dist/cli/helpers/column-template.d.ts +18 -0
  200. package/dist/cli/helpers/column-template.d.ts.map +1 -0
  201. package/dist/cli/helpers/column-template.js +151 -0
  202. package/dist/cli/helpers/column-template.js.map +1 -0
  203. package/dist/cli/helpers/field-template.d.ts +4 -0
  204. package/dist/cli/helpers/field-template.d.ts.map +1 -1
  205. package/dist/cli/helpers/field-template.js +4 -3
  206. package/dist/cli/helpers/field-template.js.map +1 -1
  207. package/dist/cli/templates/backend-entry.d.ts +5 -0
  208. package/dist/cli/templates/backend-entry.d.ts.map +1 -0
  209. package/dist/cli/templates/backend-entry.js +17 -0
  210. package/dist/cli/templates/backend-entry.js.map +1 -0
  211. package/dist/cli/templates/frontend-entry.d.ts +11 -0
  212. package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
  213. package/dist/cli/templates/frontend-entry.js +77 -0
  214. package/dist/cli/templates/frontend-entry.js.map +1 -0
  215. package/dist/cli/templates/gitignore.d.ts +5 -0
  216. package/dist/cli/templates/gitignore.d.ts.map +1 -0
  217. package/dist/cli/templates/gitignore.js +13 -0
  218. package/dist/cli/templates/gitignore.js.map +1 -0
  219. package/dist/cli/templates/index.d.ts +12 -0
  220. package/dist/cli/templates/index.d.ts.map +1 -0
  221. package/dist/cli/templates/index.js +12 -0
  222. package/dist/cli/templates/index.js.map +1 -0
  223. package/dist/cli/templates/loom-config.d.ts +10 -0
  224. package/dist/cli/templates/loom-config.d.ts.map +1 -0
  225. package/dist/cli/templates/loom-config.js +31 -0
  226. package/dist/cli/templates/loom-config.js.map +1 -0
  227. package/dist/cli/templates/package-json.d.ts +9 -0
  228. package/dist/cli/templates/package-json.d.ts.map +1 -0
  229. package/dist/cli/templates/package-json.js +39 -0
  230. package/dist/cli/templates/package-json.js.map +1 -0
  231. package/dist/cli/templates/readme.d.ts +9 -0
  232. package/dist/cli/templates/readme.d.ts.map +1 -0
  233. package/dist/cli/templates/readme.js +47 -0
  234. package/dist/cli/templates/readme.js.map +1 -0
  235. package/dist/cli/templates/tsconfig.d.ts +6 -0
  236. package/dist/cli/templates/tsconfig.d.ts.map +1 -0
  237. package/dist/cli/templates/tsconfig.js +41 -0
  238. package/dist/cli/templates/tsconfig.js.map +1 -0
  239. package/dist/cli/templates/vite-config.d.ts +5 -0
  240. package/dist/cli/templates/vite-config.d.ts.map +1 -0
  241. package/dist/cli/templates/vite-config.js +24 -0
  242. package/dist/cli/templates/vite-config.js.map +1 -0
  243. package/dist/commands.d.ts +1 -5
  244. package/dist/commands.d.ts.map +1 -1
  245. package/dist/commands.js +0 -11
  246. package/dist/commands.js.map +1 -1
  247. package/dist/config.d.ts +15 -122
  248. package/dist/config.d.ts.map +1 -1
  249. package/dist/config.js +2 -52
  250. package/dist/config.js.map +1 -1
  251. package/dist/dashboard-config.d.ts +117 -0
  252. package/dist/dashboard-config.d.ts.map +1 -0
  253. package/dist/dashboard-config.js +59 -0
  254. package/dist/dashboard-config.js.map +1 -0
  255. package/dist/index.d.ts +2 -2
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +1 -1
  258. package/dist/index.js.map +1 -1
  259. package/dist/server-bin.js +30 -62
  260. package/dist/server-bin.js.map +1 -1
  261. package/dist/types/adapter.d.ts +28 -0
  262. package/dist/types/adapter.d.ts.map +1 -0
  263. package/dist/types/adapter.js +5 -0
  264. package/dist/types/adapter.js.map +1 -0
  265. package/dist/types/ai.d.ts +52 -0
  266. package/dist/types/ai.d.ts.map +1 -0
  267. package/dist/types/ai.js +5 -0
  268. package/dist/types/ai.js.map +1 -0
  269. package/dist/types/chat.d.ts +46 -0
  270. package/dist/types/chat.d.ts.map +1 -0
  271. package/dist/types/chat.js +5 -0
  272. package/dist/types/chat.js.map +1 -0
  273. package/dist/types/command.d.ts +25 -0
  274. package/dist/types/command.d.ts.map +1 -0
  275. package/dist/types/command.js +5 -0
  276. package/dist/types/command.js.map +1 -0
  277. package/dist/types/config.d.ts +30 -0
  278. package/dist/types/config.d.ts.map +1 -0
  279. package/dist/types/config.js +5 -0
  280. package/dist/types/config.js.map +1 -0
  281. package/dist/types/dashboard.d.ts +42 -0
  282. package/dist/types/dashboard.d.ts.map +1 -0
  283. package/dist/types/dashboard.js +5 -0
  284. package/dist/types/dashboard.js.map +1 -0
  285. package/dist/types/index.d.ts +14 -0
  286. package/dist/types/index.d.ts.map +1 -0
  287. package/dist/types/index.js +8 -0
  288. package/dist/types/index.js.map +1 -0
  289. package/dist/types/model.d.ts +59 -0
  290. package/dist/types/model.d.ts.map +1 -0
  291. package/dist/types/model.js +5 -0
  292. package/dist/types/model.js.map +1 -0
  293. package/dist/types.d.ts +4 -250
  294. package/dist/types.d.ts.map +1 -1
  295. package/dist/types.js +4 -3
  296. package/dist/types.js.map +1 -1
  297. package/package.json +2 -2
  298. /package/{templates → builtin-skills}/app-skill/SKILL.md +0 -0
  299. /package/{templates → builtin-skills}/app-skill/references/data-semantics.md +0 -0
  300. /package/{templates → builtin-skills}/app-skill/references/models.md +0 -0
  301. /package/{templates/loom-skill → builtin-skills/loom}/references/dashboard.md +0 -0
  302. /package/{templates/loom-skill → builtin-skills/loom}/references/data-model.md +0 -0
@@ -0,0 +1,528 @@
1
+ ---
2
+ id: "g2-mark-interval-basic"
3
+ title: "G2 基础柱状图(Interval Mark)"
4
+ description: |
5
+ 使用 Interval Mark 创建基础柱状图。Interval Mark 是 G2 中
6
+ 用于绘制柱形、条形、直方图的核心标记类型。
7
+ 本文采用 Spec 模式(chart.options({})),通过 encode 映射 x/y/color 通道。
8
+
9
+ library: "g2"
10
+ version: "5.x"
11
+ category: "marks"
12
+ subcategory: "interval"
13
+ tags:
14
+ - "柱状图"
15
+ - "条形图"
16
+ - "分类数据"
17
+ - "比较"
18
+ - "Interval"
19
+ - "bar chart"
20
+ - "bar"
21
+ - "spec"
22
+ - "options"
23
+
24
+ related:
25
+ - "g2-mark-interval-grouped"
26
+ - "g2-mark-interval-stacked"
27
+ - "g2-mark-interval-normalized"
28
+ - "g2-core-chart-init"
29
+ - "g2-core-encode-channel"
30
+ - "g2-scale-band"
31
+
32
+ use_cases:
33
+ - "比较不同类别的数值大小"
34
+ - "展示各项目的完成量、销量等指标"
35
+ - "显示排名数据"
36
+ - "对比多个维度的指标值"
37
+
38
+ anti_patterns:
39
+ - "不适合展示连续数值的趋势变化(改用 Line 或 Area Mark)"
40
+ - "类别超过 20 个时可读性差,考虑分页或过滤"
41
+ - "不适合展示部分与整体的关系(改用堆叠柱状图或饼图)"
42
+
43
+ difficulty: "beginner"
44
+ completeness: "full"
45
+ created: "2024-01-01"
46
+ updated: "2025-03-01"
47
+ author: "antv-team"
48
+ source_url: "https://g2.antv.antgroup.com/examples/bar/basic"
49
+ ---
50
+
51
+ ## 核心概念
52
+
53
+ Interval Mark 将数据映射为矩形区间:
54
+ - 在直角坐标系中:柱形(竖向)或条形(横向)
55
+ - 在极坐标系中:扇形(饼图)或玫瑰图
56
+ - 在径向坐标系中:玉珏图(Radial Bar Chart)
57
+
58
+ **关键 encode 通道:**
59
+ - `x`:分类轴,通常映射分类字段,自动使用 Band Scale
60
+ - `y`:数值轴,映射数值字段,使用 Linear Scale
61
+ - `y1`:区间终点,用于表示区间范围(如甘特图)
62
+ - `color`:颜色,用于视觉区分
63
+
64
+ ## 最小可运行示例
65
+
66
+ ```javascript
67
+ import { Chart } from '@antv/g2';
68
+
69
+ const chart = new Chart({
70
+ container: 'container',
71
+ width: 640,
72
+ height: 480,
73
+ });
74
+
75
+ chart.options({
76
+ type: 'interval',
77
+ data: [
78
+ { genre: 'Sports', sold: 275 },
79
+ { genre: 'Strategy', sold: 115 },
80
+ { genre: 'Action', sold: 120 },
81
+ { genre: 'Shooter', sold: 350 },
82
+ { genre: 'Other', sold: 150 },
83
+ ],
84
+ encode: {
85
+ x: 'genre',
86
+ y: 'sold',
87
+ color: 'genre',
88
+ },
89
+ });
90
+
91
+ chart.render();
92
+ ```
93
+
94
+ ## 常用变体
95
+
96
+ ### 水平条形图(转置坐标系)
97
+
98
+ ```javascript
99
+ chart.options({
100
+ type: 'interval',
101
+ data: [...],
102
+ encode: { x: 'genre', y: 'sold', color: 'genre' },
103
+ coordinate: { transform: [{ type: 'transpose' }] }, // 关键:转置坐标系
104
+ });
105
+ ```
106
+
107
+ ### 带数据标签的柱状图
108
+
109
+ ```javascript
110
+ chart.options({
111
+ type: 'interval',
112
+ data: [...],
113
+ encode: { x: 'genre', y: 'sold' },
114
+ labels: [
115
+ {
116
+ text: 'sold', // 显示哪个字段的值
117
+ position: 'outside', // 'inside' | 'outside' | 'top-left' | 'top-right'
118
+ style: { fontSize: 12, fill: '#333' },
119
+ },
120
+ ],
121
+ });
122
+ ```
123
+
124
+ ### 圆角柱状图
125
+
126
+ ```javascript
127
+ chart.options({
128
+ type: 'interval',
129
+ data: [...],
130
+ encode: { x: 'genre', y: 'sold' },
131
+ style: {
132
+ radius: 4, // 统一圆角
133
+ // 或单独设置:
134
+ // radiusTopLeft: 4,
135
+ // radiusTopRight: 4,
136
+ },
137
+ });
138
+ ```
139
+
140
+ ### 自定义颜色
141
+
142
+ ```javascript
143
+ chart.options({
144
+ type: 'interval',
145
+ data: [...],
146
+ encode: { x: 'genre', y: 'sold', color: 'genre' },
147
+ scale: {
148
+ color: {
149
+ range: ['#1890ff', '#2fc25b', '#facc14', '#223273', '#8543e0'],
150
+ },
151
+ },
152
+ });
153
+ ```
154
+
155
+ ### 带 Tooltip 配置
156
+
157
+ ```javascript
158
+ chart.options({
159
+ type: 'interval',
160
+ data: [...],
161
+ encode: { x: 'genre', y: 'sold' },
162
+ tooltip: {
163
+ title: 'genre',
164
+ items: [{ field: 'sold', name: '销量' }],
165
+ },
166
+ });
167
+ ```
168
+
169
+ ### Y 轴从指定值开始
170
+
171
+ ```javascript
172
+ chart.options({
173
+ type: 'interval',
174
+ data: [...],
175
+ encode: { x: 'genre', y: 'sold' },
176
+ scale: {
177
+ y: { domain: [50, 400] }, // 手动设置 y 轴范围
178
+ },
179
+ });
180
+ ```
181
+
182
+ ### 自定义坐标轴标题
183
+
184
+ ```javascript
185
+ chart.options({
186
+ type: 'interval',
187
+ data: [...],
188
+ encode: { x: 'genre', y: 'sold' },
189
+ axis: {
190
+ x: { title: '游戏类型' },
191
+ y: { title: '销量(万份)' },
192
+ },
193
+ });
194
+ ```
195
+
196
+ ### 径向柱状图(玉珏图)
197
+
198
+ ```javascript
199
+ chart.options({
200
+ type: 'interval',
201
+ data: [...],
202
+ encode: { x: 'genre', y: 'sold' },
203
+ coordinate: { type: 'radial', innerRadius: 0.2 }, // 径向坐标系
204
+ });
205
+ ```
206
+
207
+ ### 带交互效果的柱状图
208
+
209
+ ```javascript
210
+ chart.options({
211
+ type: 'interval',
212
+ data: [...],
213
+ encode: { x: 'genre', y: 'sold' },
214
+ interaction: {
215
+ elementHighlight: true, // 元素高亮交互
216
+ },
217
+ });
218
+ ```
219
+
220
+ ## Spec 完整结构速查
221
+
222
+ ```javascript
223
+ chart.options({
224
+ // Mark 类型
225
+ type: 'interval',
226
+
227
+ // 数据
228
+ data: [...],
229
+
230
+ // 通道映射
231
+ encode: {
232
+ x: 'genre', // x 轴字段
233
+ y: 'sold', // y 轴字段
234
+ y1: 'endValue', // 区间终点字段(如甘特图)
235
+ color: 'genre', // 颜色字段
236
+ shape: 'rect', // 形状:'rect' | 'hollow'
237
+ },
238
+
239
+ // 比例尺
240
+ scale: {
241
+ y: { domain: [0, 500] },
242
+ color: { range: ['#f00', '#00f'] },
243
+ },
244
+
245
+ // 坐标系变换
246
+ coordinate: {
247
+ type: 'radial',
248
+ innerRadius: 0.2,
249
+ transform: [{ type: 'transpose' }]
250
+ },
251
+
252
+ // 样式
253
+ style: {
254
+ radius: 4,
255
+ fillOpacity: 0.9,
256
+ },
257
+
258
+ // 数据标签(注意是 labels 复数)
259
+ labels: [{ text: 'sold', position: 'outside' }],
260
+
261
+ // Tooltip
262
+ tooltip: { title: 'genre', items: [{ field: 'sold' }] },
263
+
264
+ // 坐标轴
265
+ axis: {
266
+ x: { title: '游戏类型' },
267
+ y: { title: '销量' },
268
+ },
269
+
270
+ // 图例
271
+ legend: {
272
+ color: { position: 'right' }
273
+ },
274
+
275
+ // 交互
276
+ interaction: {
277
+ elementHighlight: true
278
+ }
279
+ });
280
+ ```
281
+
282
+ ## 完整类型参考
283
+
284
+ ```typescript
285
+ // chart.options() 传入的 Spec 类型(interval 部分)
286
+ interface IntervalSpec {
287
+ type: 'interval';
288
+ data?: DataOption;
289
+ encode?: {
290
+ x?: string | ((d: any) => any);
291
+ y?: string | ((d: any) => any);
292
+ y1?: string | ((d: any) => any); // 区间终点通道
293
+ color?: string | ((d: any) => any);
294
+ shape?: 'rect' | 'hollow' | 'funnel' | 'pyramid' | string;
295
+ size?: string | number | ((d: any) => any);
296
+ series?: string;
297
+ };
298
+ transform?: Array<{ type: string; [key: string]: any }>;
299
+ scale?: {
300
+ x?: ScaleOption;
301
+ y?: ScaleOption;
302
+ color?: ScaleOption;
303
+ };
304
+ coordinate?: {
305
+ type?: 'polar' | 'cartesian' | 'radial';
306
+ innerRadius?: number;
307
+ outerRadius?: number;
308
+ startAngle?: number;
309
+ endAngle?: number;
310
+ transform?: Array<{ type: string; [key: string]: any }>;
311
+ };
312
+ style?: {
313
+ radius?: number;
314
+ radiusTopLeft?: number;
315
+ radiusTopRight?: number;
316
+ radiusBottomLeft?: number;
317
+ radiusBottomRight?: number;
318
+ fill?: string;
319
+ fillOpacity?: number;
320
+ stroke?: string;
321
+ lineWidth?: number;
322
+ };
323
+ labels?: LabelOption[];
324
+ tooltip?: TooltipOption;
325
+ axis?: { x?: AxisOption; y?: AxisOption };
326
+ legend?: { color?: LegendOption };
327
+ interaction?: {
328
+ elementHighlight?: boolean | { background?: boolean; region?: boolean };
329
+ };
330
+ }
331
+ ```
332
+
333
+ ## 常见错误与修正
334
+
335
+ ### 错误 1:使用 API 链式调用
336
+ ```javascript
337
+ // ❌ 错误(G2 API 链式调用写法)
338
+ chart.interval().encode('x', 'genre');
339
+
340
+ // ✅ 正确(G2 Spec 写法)
341
+ chart.options({
342
+ type: 'interval',
343
+ data,
344
+ encode: { x: 'genre', y: 'sold', color: 'genre' },
345
+ });
346
+ ```
347
+
348
+ ### 错误 2:缺少 container 参数
349
+ ```javascript
350
+ // ❌ 错误
351
+ const chart = new Chart({ width: 640, height: 480 });
352
+
353
+ // ✅ 正确
354
+ const chart = new Chart({ container: 'container', width: 640, height: 480 });
355
+ ```
356
+
357
+ ### 错误 3:encode 和 style 混淆
358
+ ```javascript
359
+ // ❌ 错误:style 不接受数据字段名
360
+ chart.options({ type: 'interval', [...], style: { color: 'genre' } });
361
+
362
+ // ✅ 正确:数据映射用 encode,固定样式用 style
363
+ chart.options({
364
+ type: 'interval',
365
+ data: [...],
366
+ encode: { color: 'genre' }, // 数据驱动
367
+ style: { fill: '#1890ff' }, // 固定颜色时才用 style
368
+ });
369
+ ```
370
+
371
+ ### 错误 4:labels 写成 label(单数)
372
+ ```javascript
373
+ // ❌ 错误:Spec 模式中标签字段是 labels(复数)
374
+ chart.options({ type: 'interval', data: [...], label: { text: 'sold' } });
375
+
376
+ // ✅ 正确
377
+ chart.options({ type: 'interval', data: [...], labels: [{ text: 'sold' }] });
378
+ ```
379
+
380
+ ### 错误 5:y 轴负值处理
381
+ ```javascript
382
+ // ❌ 潜在问题:负值柱体可能超出绘图区域
383
+ chart.options({ type: 'interval', dataWithNegatives, encode: { y: 'value' } });
384
+
385
+ // ✅ 正确:通过 scale.y.domain 显式包含负值范围
386
+ chart.options({
387
+ type: 'interval',
388
+ data: dataWithNegatives,
389
+ encode: { x: 'genre', y: 'value' },
390
+ scale: { y: { domain: [-100, 300] } },
391
+ });
392
+ ```
393
+
394
+ ### 错误 6:径向坐标系使用不当
395
+ ```javascript
396
+ // ❌ 错误:在径向坐标系中 x/y 映射顺序颠倒
397
+ chart.options({
398
+ type: 'interval',
399
+ data: [...],
400
+ encode: { x: 'value', y: 'genre' }, // 应该是 x: genre, y: value
401
+ coordinate: { type: 'radial' }
402
+ });
403
+
404
+ // ✅ 正确:径向坐标系中 x 对应角度方向,y 对应半径方向
405
+ chart.options({
406
+ type: 'interval',
407
+ data: [...],
408
+ encode: { x: 'genre', y: 'value' },
409
+ coordinate: { type: 'radial' }
410
+ });
411
+ ```
412
+
413
+ ### 错误 7:复合视图中未正确组织 children 结构
414
+ ```javascript
415
+ // ❌ 错误:没有使用 view 的 children 属性来组合多个 mark
416
+ chart.options({
417
+ type: 'interval',
418
+ data: [...],
419
+ encode: {...}
420
+ });
421
+
422
+ // ✅ 正确:使用 view 包含多个 children mark
423
+ chart.options({
424
+ type: 'view',
425
+ children: [
426
+ {
427
+ type: 'interval',
428
+ data: [...],
429
+ encode: {...}
430
+ },
431
+ {
432
+ type: 'image',
433
+ data: [{ src: '...' }],
434
+ encode: { src: 'src' }
435
+ }
436
+ ]
437
+ });
438
+ ```
439
+
440
+ ### 错误 8:image mark 使用错误的编码字段
441
+ ```javascript
442
+ // ❌ 错误:image mark 使用了 x/y 映射图像 URL
443
+ chart.options({
444
+ type: 'image',
445
+ data: [{ url: 'https://example.com/image.png' }],
446
+ encode: { x: () => 0, y: () => 0, src: 'url' } // 不应该用 x/y 来定位图像
447
+ });
448
+
449
+ // ✅ 正确:image mark 使用 src 字段映射图像地址,配合 style 设置尺寸和位置
450
+ chart.options({
451
+ type: 'image',
452
+ data: [{ url: 'https://example.com/image.png' }],
453
+ encode: { src: 'url' },
454
+ style: {
455
+ x: '50%', // 相对于容器的位置
456
+ y: '50%',
457
+ width: 80,
458
+ height: 80
459
+ }
460
+ });
461
+ ```
462
+
463
+ ### 错误 9:交互配置位置错误
464
+ ```javascript
465
+ // ❌ 错误:将交互配置放在 mark 级别之外
466
+ chart.options({
467
+ type: 'interval',
468
+ data: [...],
469
+ encode: {...},
470
+ elementHighlight: true // 放错位置
471
+ });
472
+
473
+ // ✅ 正确:交互配置应放在 interaction 对象中
474
+ chart.options({
475
+ type: 'interval',
476
+ data: [...],
477
+ encode: {...},
478
+ interaction: {
479
+ elementHighlight: true
480
+ }
481
+ });
482
+ ```
483
+
484
+ ### 错误 10:区间图未正确使用 y1 通道
485
+ ```javascript
486
+ // ❌ 错误:将区间起点和终点都映射到 y 通道
487
+ chart.options({
488
+ type: 'interval',
489
+ data: [{ start: 1, end: 5 }],
490
+ encode: { x: 'name', y: ['start', 'end'] } // 错误方式
491
+ });
492
+
493
+ // ✅ 正确:使用 y 和 y1 通道分别映射起点和终点
494
+ chart.options({
495
+ type: 'interval',
496
+ data: [{ start: 1, end: 5 }],
497
+ encode: { x: 'name', y: 'start', y1: 'end' }
498
+ });
499
+ ```
500
+
501
+ ### 错误 11:坐标轴标签格式化配置错误
502
+ ```javascript
503
+ // ❌ 错误:使用不存在的 axis.labelFormatter 配置
504
+ chart.options({
505
+ type: 'interval',
506
+ data: [...],
507
+ axis: {
508
+ x: {
509
+ labelFormatter: (task, item) => {
510
+ const datum = item.data;
511
+ return `${datum.stage}\n${task}`;
512
+ }
513
+ }
514
+ }
515
+ });
516
+
517
+ // ✅ 正确:使用正确的 label 配置方式
518
+ chart.options({
519
+ type: 'interval',
520
+ data: [...],
521
+ axis: {
522
+ x: {
523
+ labelTransform: 'rotate(30)',
524
+ labelAutoWrap: true
525
+ }
526
+ }
527
+ });
528
+ ```
@@ -0,0 +1,161 @@
1
+ ---
2
+ id: "g2-mark-interval-grouped"
3
+ title: "G2 分组柱状图"
4
+ description: |
5
+ 使用 Interval Mark 配合 dodgeX Transform 创建分组柱状图。
6
+ 分组柱状图将同类别的多系列数据并排展示,便于横向对比各子类别的绝对数值。
7
+
8
+ library: "g2"
9
+ version: "5.x"
10
+ category: "marks"
11
+ subcategory: "interval"
12
+ tags:
13
+ - "分组柱状图"
14
+ - "grouped bar"
15
+ - "dodgeX"
16
+ - "多系列"
17
+ - "并排"
18
+ - "对比"
19
+ - "spec"
20
+
21
+ related:
22
+ - "g2-mark-interval-basic"
23
+ - "g2-mark-interval-stacked"
24
+ - "g2-transform-dodgex"
25
+
26
+ use_cases:
27
+ - "对比同一类别下多个子指标的绝对值"
28
+ - "不同时间段各产品线的销量对比"
29
+ - "多维度数据并排展示"
30
+
31
+ anti_patterns:
32
+ - "系列数超过 4-5 个时每组柱子过细,可读性差"
33
+ - "关注占比关系时改用堆叠柱状图"
34
+
35
+ difficulty: "beginner"
36
+ completeness: "full"
37
+ created: "2024-01-01"
38
+ updated: "2025-03-01"
39
+ author: "antv-team"
40
+ source_url: "https://g2.antv.antgroup.com/examples/bar/grouped"
41
+ ---
42
+
43
+ ## 核心概念
44
+
45
+ 分组柱状图 = `type: 'interval'` + `transform: [{ type: 'dodgeX' }]`。
46
+ `dodgeX` 将同一 x 位置的多系列柱体在水平方向上错开排列,避免重叠。
47
+
48
+ ## 最小可运行示例
49
+
50
+ ```javascript
51
+ import { Chart } from '@antv/g2';
52
+
53
+ const chart = new Chart({
54
+ container: 'container',
55
+ width: 640,
56
+ height: 480,
57
+ });
58
+
59
+ chart.options({
60
+ type: 'interval',
61
+ data: [
62
+ { month: 'Jan', type: '产品A', value: 100 },
63
+ { month: 'Jan', type: '产品B', value: 130 },
64
+ { month: 'Jan', type: '产品C', value: 90 },
65
+ { month: 'Feb', type: '产品A', value: 120 },
66
+ { month: 'Feb', type: '产品B', value: 100 },
67
+ { month: 'Feb', type: '产品C', value: 150 },
68
+ { month: 'Mar', type: '产品A', value: 80 },
69
+ { month: 'Mar', type: '产品B', value: 140 },
70
+ { month: 'Mar', type: '产品C', value: 110 },
71
+ ],
72
+ encode: {
73
+ x: 'month',
74
+ y: 'value',
75
+ color: 'type',
76
+ },
77
+ transform: [{ type: 'dodgeX' }], // 关键:分组变换
78
+ });
79
+
80
+ chart.render();
81
+ ```
82
+
83
+ ## 分组条形图(水平方向)
84
+
85
+ ```javascript
86
+ chart.options({
87
+ type: 'interval',
88
+ data: [...],
89
+ encode: { x: 'month', y: 'value', color: 'type' },
90
+ transform: [{ type: 'dodgeX' }],
91
+ coordinate: { transform: [{ type: 'transpose' }] },
92
+ });
93
+ ```
94
+
95
+ ## 分组柱状图 + 数据标签
96
+
97
+ ```javascript
98
+ chart.options({
99
+ type: 'interval',
100
+ data: [...],
101
+ encode: { x: 'month', y: 'value', color: 'type' },
102
+ transform: [{ type: 'dodgeX' }],
103
+ labels: [
104
+ {
105
+ text: 'value',
106
+ position: 'outside',
107
+ style: { fontSize: 11 },
108
+ },
109
+ ],
110
+ });
111
+ ```
112
+
113
+ ## 调整分组间距
114
+
115
+ ```javascript
116
+ chart.options({
117
+ type: 'interval',
118
+ data: [...],
119
+ encode: { x: 'month', y: 'value', color: 'type' },
120
+ transform: [
121
+ {
122
+ type: 'dodgeX',
123
+ padding: 0.1, // 组内柱子间距(0-1),默认 0
124
+ paddingOuter: 0.1, // 组间间距
125
+ },
126
+ ],
127
+ });
128
+ ```
129
+
130
+ ## 常见错误与修正
131
+
132
+ ### 错误 1:忘记 dodgeX,柱体重叠
133
+ ```javascript
134
+ // ❌ 错误:多系列数据没有 dodgeX,柱体在同位置叠加
135
+ chart.options({
136
+ type: 'interval',
137
+ data,
138
+ encode: { x: 'month', y: 'value', color: 'type' },
139
+ // 缺少 transform!
140
+ });
141
+
142
+ // ✅ 正确
143
+ chart.options({
144
+ type: 'interval',
145
+ data,
146
+ encode: { x: 'month', y: 'value', color: 'type' },
147
+ transform: [{ type: 'dodgeX' }],
148
+ });
149
+ ```
150
+
151
+ ### 错误 2:同时用了 stackY 和 dodgeX
152
+ ```javascript
153
+ // ❌ 错误:两个变换冲突,行为不可预期
154
+ chart.options({
155
+ transform: [{ type: 'stackY' }, { type: 'dodgeX' }],
156
+ });
157
+
158
+ // ✅ 正确:堆叠和分组是互斥的,选其一
159
+ chart.options({ transform: [{ type: 'stackY' }] }); // 堆叠
160
+ chart.options({ transform: [{ type: 'dodgeX' }] }); // 分组
161
+ ```