@loom-framework/core 0.1.0-alpha.9 → 0.1.0-alpha.90
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.
- package/builtin-skills/antd/SKILL.md +266 -0
- package/builtin-skills/antv-g2-chart/SKILL.md +1067 -0
- package/builtin-skills/antv-g2-chart/references/animations/g2-animation-intro.md +176 -0
- package/builtin-skills/antv-g2-chart/references/animations/g2-animation-keyframe.md +149 -0
- package/builtin-skills/antv-g2-chart/references/animations/g2-animation-types.md +253 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-annotation.md +237 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-config.md +648 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-radar.md +219 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-label-config.md +174 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-category.md +278 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-config.md +363 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-continuous.md +264 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-scrollbar.md +276 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-slider.md +333 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-title.md +149 -0
- package/builtin-skills/antv-g2-chart/references/components/g2-comp-tooltip-config.md +358 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-circle.md +97 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-rect.md +241 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geo-map.md +210 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geoview.md +143 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-repeat-matrix.md +171 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-flex.md +142 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-layer.md +149 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-timing-keyframe.md +91 -0
- package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-view.md +309 -0
- package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-chart-selection.md +235 -0
- package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-color-theory.md +287 -0
- package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-visual-channels.md +180 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-cartesian.md +131 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-fisheye.md +131 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-helix.md +141 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-parallel.md +129 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-polar.md +143 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-radial.md +214 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-theta.md +171 -0
- package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-transpose.md +195 -0
- package/builtin-skills/antv-g2-chart/references/core/g2-core-chart-init.md +266 -0
- package/builtin-skills/antv-g2-chart/references/core/g2-core-encode-channel.md +197 -0
- package/builtin-skills/antv-g2-chart/references/core/g2-core-view-composition.md +224 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-ema.md +190 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-fetch.md +167 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-filter.md +212 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-fold.md +260 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-format-tabular.md +280 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-kde.md +426 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-log.md +140 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-slice.md +147 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-sort.md +251 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-sortby.md +183 -0
- package/builtin-skills/antv-g2-chart/references/data/g2-data-transform-patterns.md +394 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-adaptive-filter.md +118 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-axis.md +112 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-filter.md +122 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-x-y-highlight.md +127 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-xy.md +118 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush.md +184 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-filter.md +170 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-highlight.md +186 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-filter.md +170 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-highlight.md +185 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-chart-index.md +127 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-drilldown.md +149 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight-by.md +125 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight.md +235 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-hover-scale.md +109 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-point-move.md +152 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select-by.md +133 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select.md +249 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-fisheye.md +117 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-filter.md +130 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-highlight.md +130 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-poptip.md +105 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-scrollbar-filter.md +144 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-filter.md +231 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-wheel.md +138 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-tooltip.md +192 -0
- package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-treemap-drilldown.md +152 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-contrast-reverse.md +170 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-exceed-adjust.md +146 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-hide.md +185 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-stroke.md +147 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-dodge-y.md +225 -0
- package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-hide.md +213 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-diagram.md +196 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-donut.md +148 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-pie.md +212 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-basic.md +168 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-stacked.md +150 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-beeswarm.md +134 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bi-directional-bar.md +297 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-box-boxplot.md +163 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-boxplot.md +340 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bullet.md +203 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-cell-heatmap.md +370 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-chord.md +341 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-connector.md +126 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-contourline.md +243 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-density.md +457 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-distribution-curve.md +298 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-funnel.md +329 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gantt.md +208 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gauge.md +247 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-heatmap.md +130 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-histogram.md +186 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-image.md +129 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-basic.md +528 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-grouped.md +161 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-normalized.md +147 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-stacked.md +183 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-k-chart.md +237 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-basic.md +353 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-multi.md +156 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-linex-liney.md +176 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-link.md +134 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-liquid.md +125 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-mosaic.md +257 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-pack.md +424 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-parallel.md +195 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-partition.md +275 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-path.md +135 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-bubble.md +138 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-scatter.md +177 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-polygon.md +130 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radar.md +231 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radial-bar.md +226 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-range-rangey.md +253 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rangex.md +293 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rect.md +115 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-regression-curve.md +276 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rose.md +182 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sankey.md +217 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-shape.md +160 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-spiral.md +257 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sunburst.md +327 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-text.md +309 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-tree.md +235 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-treemap.md +426 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-vector.md +108 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-venn.md +204 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-violin.md +307 -0
- package/builtin-skills/antv-g2-chart/references/marks/g2-mark-wordcloud.md +155 -0
- package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category10.md +196 -0
- package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category20.md +238 -0
- package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-performance.md +181 -0
- package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-responsive.md +232 -0
- package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-v4-to-v5.md +223 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-band.md +127 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-linear.md +259 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-log.md +226 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-ordinal.md +135 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-point.md +242 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-pow-sqrt.md +124 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-quantile-quantize.md +119 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-sequential.md +267 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-threshold.md +133 -0
- package/builtin-skills/antv-g2-chart/references/scales/g2-scale-time.md +159 -0
- package/builtin-skills/antv-g2-chart/references/themes/g2-theme-builtin.md +192 -0
- package/builtin-skills/antv-g2-chart/references/themes/g2-theme-custom.md +183 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-bin.md +153 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-binx.md +133 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-diffy.md +130 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-dodgex.md +90 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-flexx.md +115 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-group.md +233 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupcolor.md +182 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupx.md +265 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupy.md +167 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitter.md +149 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitterx.md +177 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jittery.md +177 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-normalizey.md +83 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-pack.md +164 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sample.md +143 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-select.md +147 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selectx.md +179 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selecty.md +179 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sort-color.md +115 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sortx.md +285 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sorty.md +117 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stack-enter.md +158 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stacky.md +218 -0
- package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-symmetryy.md +122 -0
- package/builtin-skills/app-skill/SKILL.md +27 -0
- package/builtin-skills/app-skill/references/data-semantics.md +44 -0
- package/builtin-skills/app-skill/references/models.md +31 -0
- package/builtin-skills/chart-visualization/SKILL.md +101 -0
- package/builtin-skills/loom/SKILL.md +168 -0
- package/builtin-skills/loom/references/README.md +128 -0
- package/builtin-skills/loom/references/dashboard.md +196 -0
- package/builtin-skills/loom/references/data-model.md +78 -0
- package/dist/adapter-base.d.ts +29 -0
- package/dist/adapter-base.d.ts.map +1 -0
- package/dist/adapter-base.js +62 -0
- package/dist/adapter-base.js.map +1 -0
- package/dist/adapter-factory.d.ts +8 -0
- package/dist/adapter-factory.d.ts.map +1 -0
- package/dist/adapter-factory.js +25 -0
- package/dist/adapter-factory.js.map +1 -0
- package/dist/adapter-filesystem.d.ts +6 -11
- package/dist/adapter-filesystem.d.ts.map +1 -1
- package/dist/adapter-filesystem.js +56 -41
- package/dist/adapter-filesystem.js.map +1 -1
- package/dist/adapter-sqlite.d.ts +6 -23
- package/dist/adapter-sqlite.d.ts.map +1 -1
- package/dist/adapter-sqlite.js +65 -50
- package/dist/adapter-sqlite.js.map +1 -1
- package/dist/backend/ai/button-resolver.d.ts +18 -0
- package/dist/backend/ai/button-resolver.d.ts.map +1 -0
- package/dist/backend/ai/button-resolver.js +58 -0
- package/dist/backend/ai/button-resolver.js.map +1 -0
- package/dist/backend/ai/engine.d.ts +52 -0
- package/dist/backend/ai/engine.d.ts.map +1 -0
- package/dist/backend/ai/engine.js +186 -0
- package/dist/backend/ai/engine.js.map +1 -0
- package/dist/backend/ai/index.d.ts +11 -0
- package/dist/backend/ai/index.d.ts.map +1 -0
- package/dist/backend/ai/index.js +8 -0
- package/dist/backend/ai/index.js.map +1 -0
- package/dist/backend/ai/output-parser.d.ts +29 -0
- package/dist/backend/ai/output-parser.d.ts.map +1 -0
- package/dist/backend/ai/output-parser.js +247 -0
- package/dist/backend/ai/output-parser.js.map +1 -0
- package/dist/backend/ai/session-manager.d.ts +103 -0
- package/dist/backend/ai/session-manager.d.ts.map +1 -0
- package/dist/backend/ai/session-manager.js +298 -0
- package/dist/backend/ai/session-manager.js.map +1 -0
- package/dist/backend/index.d.ts +61 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +161 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/observe/index.d.ts +6 -0
- package/dist/backend/observe/index.d.ts.map +1 -0
- package/dist/backend/observe/index.js +5 -0
- package/dist/backend/observe/index.js.map +1 -0
- package/dist/backend/observe/logger.d.ts +28 -0
- package/dist/backend/observe/logger.d.ts.map +1 -0
- package/dist/backend/observe/logger.js +80 -0
- package/dist/backend/observe/logger.js.map +1 -0
- package/dist/backend/observe/types.d.ts +26 -0
- package/dist/backend/observe/types.d.ts.map +1 -0
- package/dist/backend/observe/types.js +7 -0
- package/dist/backend/observe/types.js.map +1 -0
- package/dist/backend/routes/chat.d.ts +31 -0
- package/dist/backend/routes/chat.d.ts.map +1 -0
- package/dist/backend/routes/chat.js +426 -0
- package/dist/backend/routes/chat.js.map +1 -0
- package/dist/backend/routes/data.d.ts +13 -0
- package/dist/backend/routes/data.d.ts.map +1 -0
- package/dist/backend/routes/data.js +134 -0
- package/dist/backend/routes/data.js.map +1 -0
- package/dist/backend/routes/health.d.ts +7 -0
- package/dist/backend/routes/health.d.ts.map +1 -0
- package/dist/backend/routes/health.js +15 -0
- package/dist/backend/routes/health.js.map +1 -0
- package/dist/backend/routes/index.d.ts +11 -0
- package/dist/backend/routes/index.d.ts.map +1 -0
- package/dist/backend/routes/index.js +9 -0
- package/dist/backend/routes/index.js.map +1 -0
- package/dist/backend/routes/skills.d.ts +16 -0
- package/dist/backend/routes/skills.d.ts.map +1 -0
- package/dist/backend/routes/skills.js +590 -0
- package/dist/backend/routes/skills.js.map +1 -0
- package/dist/backend/routes/upload.d.ts +24 -0
- package/dist/backend/routes/upload.d.ts.map +1 -0
- package/dist/backend/routes/upload.js +67 -0
- package/dist/backend/routes/upload.js.map +1 -0
- package/dist/bin.d.ts +8 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +12 -0
- package/dist/bin.js.map +1 -0
- package/dist/capability-generator.d.ts +21 -6
- package/dist/capability-generator.d.ts.map +1 -1
- package/dist/capability-generator.js +88 -261
- package/dist/capability-generator.js.map +1 -1
- package/dist/cli/commands/build.d.ts +11 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +170 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/data.d.ts +12 -0
- package/dist/cli/commands/data.d.ts.map +1 -0
- package/dist/cli/commands/data.js +158 -0
- package/dist/cli/commands/data.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +9 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +114 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/generate-capabilities.d.ts +8 -0
- package/dist/cli/commands/generate-capabilities.d.ts.map +1 -0
- package/dist/cli/commands/generate-capabilities.js +40 -0
- package/dist/cli/commands/generate-capabilities.js.map +1 -0
- package/dist/cli/commands/generate-cli-command.d.ts +8 -0
- package/dist/cli/commands/generate-cli-command.d.ts.map +1 -0
- package/dist/cli/commands/generate-cli-command.js +64 -0
- package/dist/cli/commands/generate-cli-command.js.map +1 -0
- package/dist/cli/commands/generate-dashboard.d.ts +9 -0
- package/dist/cli/commands/generate-dashboard.d.ts.map +1 -0
- package/dist/cli/commands/generate-dashboard.js +466 -0
- package/dist/cli/commands/generate-dashboard.js.map +1 -0
- package/dist/cli/commands/generate-page.d.ts +9 -0
- package/dist/cli/commands/generate-page.d.ts.map +1 -0
- package/dist/cli/commands/generate-page.js +356 -0
- package/dist/cli/commands/generate-page.js.map +1 -0
- package/dist/cli/commands/generate-skill.d.ts +8 -0
- package/dist/cli/commands/generate-skill.d.ts.map +1 -0
- package/dist/cli/commands/generate-skill.js +75 -0
- package/dist/cli/commands/generate-skill.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +6 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +19 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +8 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +301 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/observe.d.ts +9 -0
- package/dist/cli/commands/observe.d.ts.map +1 -0
- package/dist/cli/commands/observe.js +142 -0
- package/dist/cli/commands/observe.js.map +1 -0
- package/dist/cli/commands/skill.d.ts +9 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +186 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/generators/capability-generator.d.ts +35 -0
- package/dist/cli/generators/capability-generator.d.ts.map +1 -0
- package/dist/cli/generators/capability-generator.js +115 -0
- package/dist/cli/generators/capability-generator.js.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts +19 -0
- package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -0
- package/dist/cli/helpers/app-tsx-wiring.js +143 -0
- package/dist/cli/helpers/app-tsx-wiring.js.map +1 -0
- package/dist/cli/helpers/column-template.d.ts +18 -0
- package/dist/cli/helpers/column-template.d.ts.map +1 -0
- package/dist/cli/helpers/column-template.js +151 -0
- package/dist/cli/helpers/column-template.js.map +1 -0
- package/dist/cli/helpers/duration.d.ts +5 -0
- package/dist/cli/helpers/duration.d.ts.map +1 -0
- package/dist/cli/helpers/duration.js +19 -0
- package/dist/cli/helpers/duration.js.map +1 -0
- package/dist/cli/helpers/field-template.d.ts +14 -0
- package/dist/cli/helpers/field-template.d.ts.map +1 -0
- package/dist/cli/helpers/field-template.js +101 -0
- package/dist/cli/helpers/field-template.js.map +1 -0
- package/dist/cli/helpers/naming.d.ts +12 -0
- package/dist/cli/helpers/naming.d.ts.map +1 -0
- package/dist/cli/helpers/naming.js +25 -0
- package/dist/cli/helpers/naming.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/templates/backend-entry.d.ts +5 -0
- package/dist/cli/templates/backend-entry.d.ts.map +1 -0
- package/dist/cli/templates/backend-entry.js +17 -0
- package/dist/cli/templates/backend-entry.js.map +1 -0
- package/dist/cli/templates/frontend-entry.d.ts +11 -0
- package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
- package/dist/cli/templates/frontend-entry.js +77 -0
- package/dist/cli/templates/frontend-entry.js.map +1 -0
- package/dist/cli/templates/gitignore.d.ts +5 -0
- package/dist/cli/templates/gitignore.d.ts.map +1 -0
- package/dist/cli/templates/gitignore.js +13 -0
- package/dist/cli/templates/gitignore.js.map +1 -0
- package/dist/cli/templates/index.d.ts +12 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +12 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/templates/loom-config.d.ts +10 -0
- package/dist/cli/templates/loom-config.d.ts.map +1 -0
- package/dist/cli/templates/loom-config.js +31 -0
- package/dist/cli/templates/loom-config.js.map +1 -0
- package/dist/cli/templates/package-json.d.ts +9 -0
- package/dist/cli/templates/package-json.d.ts.map +1 -0
- package/dist/cli/templates/package-json.js +40 -0
- package/dist/cli/templates/package-json.js.map +1 -0
- package/dist/cli/templates/readme.d.ts +9 -0
- package/dist/cli/templates/readme.d.ts.map +1 -0
- package/dist/cli/templates/readme.js +47 -0
- package/dist/cli/templates/readme.js.map +1 -0
- package/dist/cli/templates/tsconfig.d.ts +6 -0
- package/dist/cli/templates/tsconfig.d.ts.map +1 -0
- package/dist/cli/templates/tsconfig.js +41 -0
- package/dist/cli/templates/tsconfig.js.map +1 -0
- package/dist/cli/templates/vite-config.d.ts +5 -0
- package/dist/cli/templates/vite-config.d.ts.map +1 -0
- package/dist/cli/templates/vite-config.js +24 -0
- package/dist/cli/templates/vite-config.js.map +1 -0
- package/dist/cli/utils.d.ts +10 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +31 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/commands.d.ts +1 -5
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +0 -11
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +21 -52
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -9
- package/dist/config.js.map +1 -1
- package/dist/dashboard-config.d.ts +117 -0
- package/dist/dashboard-config.d.ts.map +1 -0
- package/dist/dashboard-config.js +59 -0
- package/dist/dashboard-config.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/server-bin.d.ts +12 -0
- package/dist/server-bin.d.ts.map +1 -0
- package/dist/server-bin.js +43 -0
- package/dist/server-bin.js.map +1 -0
- package/dist/types/adapter.d.ts +28 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/adapter.js +5 -0
- package/dist/types/adapter.js.map +1 -0
- package/dist/types/ai.d.ts +52 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/ai.js +5 -0
- package/dist/types/ai.js.map +1 -0
- package/dist/types/chat.d.ts +46 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +5 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/command.d.ts +25 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +5 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/config.d.ts +30 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dashboard.d.ts +42 -0
- package/dist/types/dashboard.d.ts.map +1 -0
- package/dist/types/dashboard.js +5 -0
- package/dist/types/dashboard.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/model.d.ts +59 -0
- package/dist/types/model.d.ts.map +1 -0
- package/dist/types/model.js +5 -0
- package/dist/types/model.js.map +1 -0
- package/dist/types.d.ts +4 -199
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -3
- package/dist/types.js.map +1 -1
- package/package.json +18 -3
|
@@ -0,0 +1,1067 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: antv-g2-chart
|
|
3
|
+
description: Generate G2 v5 chart code. Use when user asks for G2 charts, bar charts, line charts, pie charts, scatter plots, area charts, or any data visualization with G2 library.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# G2 v5 Chart Code Generator
|
|
7
|
+
|
|
8
|
+
You are an expert in AntV G2 v5 charting library. Generate accurate, runnable code following G2 v5 best practices.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Core Constraints / 核心约束 (MUST follow)
|
|
13
|
+
|
|
14
|
+
1. **`container` is mandatory**: `new Chart({ container: 'container', ... })`
|
|
15
|
+
2. **Use Spec Mode ONLY**: `chart.options({ type: 'interval', data, encode: {...} })`(V4 链式 API 见 Forbidden Patterns)
|
|
16
|
+
3. **`chart.options()` 只能调用一次**:多次调用会完整覆盖前一次配置,只有最后一次生效。多 mark 叠加必须用 `type: 'view'` + `children` 数组,而不是多次调用 `chart.options()`
|
|
17
|
+
4. **`encode` object**: `encode: { x, y }`(禁止 V4 的 `.position('x*y')`)
|
|
18
|
+
5. **`transform` must be array**: `transform: [{ type: 'stackY' }]`
|
|
19
|
+
6. **`labels` is plural**: Use `labels: [{ text: 'field' }]` not `label: {}`
|
|
20
|
+
7. **`coordinate` 规则**:
|
|
21
|
+
- 坐标系类型直接写:`coordinate: { type: 'theta' }`、`coordinate: { type: 'polar' }`
|
|
22
|
+
- transpose 是**变换**不是坐标系类型,必须写在 `transform` 数组里:`coordinate: { transform: [{ type: 'transpose' }] }`
|
|
23
|
+
- ❌ 禁止:`coordinate: { type: 'transpose' }`
|
|
24
|
+
8. **范围编码**(甘特图、candlestick 等):`encode: { y: 'start', y1: 'end' }`,禁止 `y: ['start', 'end']`
|
|
25
|
+
9. **样式原则**:用户描述中提到的样式(radius、fillOpacity、color、fontSize 等)必须完整保留;用户未提及的装饰性样式(`shadowBlur`、`shadowColor`、`shadowOffsetX/Y` 等)不要自行添加
|
|
26
|
+
10. **`animate` 规则**:用户未明确要求动画时不要添加 `animate` 配置(G2 自带默认动画),只有用户明确描述动画需求时才添加
|
|
27
|
+
11. **`scale.color.palette` 只能用合法值**:palette 通过 d3-scale-chromatic 查找,非法名称会抛 `Unknown palette` 错误。**不要推断或创造不存在的名称**(如 `'blueOrange'`、`'redGreen'`、`'hot'`、`'jet'`、`'coolwarm'` 等均非法)。合法的常用值:顺序色阶 `'blues'|'greens'|'reds'|'ylOrRd'|'viridis'|'plasma'|'turbo'`;发散色阶 `'rdBu'|'rdYlGn'|'spectral'`;不确定时用 `range: ['#startColor', '#endColor']` 自定义替代
|
|
28
|
+
12. **禁止在用户代码中使用 `d3.*`**:G2 内部使用 d3,但 `d3` 对象不会暴露到用户代码作用域,调用 `d3.sum()` 等会抛 `ReferenceError: d3 is not defined`。如需聚合,优先使用 G2 内置选项(如 `sortX` 的 `reducer: 'sum'`),不得不自定义时用原生 JS:`d3.sum(arr, d=>d.v)` → `arr.reduce((s,d)=>s+d.v,0)`;`d3.max(arr, d=>d.v)` → `Math.max(...arr.map(d=>d.v))`
|
|
29
|
+
13. **用户未指定配色时,禁止使用白色或近白色作为图形填充色**:`style: { fill: '#fff' }`、`style: { fill: 'white' }`、`style: { fill: '#ffffff' }` 等在白色背景下会让图形完全不可见。未指定配色时应依赖 G2 的 `encode.color` 自动分配主题色,或使用有明确视觉区分度的颜色(如 `'#5B8FF9'`)。以下是合法例外:label 文字 `fill: '#fff'`(深色背景内标签)、分隔线 `stroke: '#fff'`(堆叠/pack/treemap 的分隔白线)
|
|
30
|
+
15. **用户未指定容器时**: `container` 默认为 `'container'`,不要通过 `document.createElement('div')` 进行创建,代码末尾必须有 `chart.render();`
|
|
31
|
+
|
|
32
|
+
### 1.1 Forbidden Patterns / 禁止使用的写法
|
|
33
|
+
|
|
34
|
+
**禁止使用 V4 语法**,必须使用 V5 Spec 模式:
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
// ❌ 禁止:V4 createView
|
|
39
|
+
const view = chart.createView();
|
|
40
|
+
view.options({...});
|
|
41
|
+
|
|
42
|
+
// ❌ 禁止:V4 链式 API 调用
|
|
43
|
+
chart.interval()
|
|
44
|
+
.data([...])
|
|
45
|
+
.encode('x', 'genre')
|
|
46
|
+
.encode('y', 'sold')
|
|
47
|
+
.style({ radius: 4 });
|
|
48
|
+
|
|
49
|
+
// ❌ 禁止:V4 链式 encode
|
|
50
|
+
chart.line().encode('x', 'date').encode('y', 'value');
|
|
51
|
+
|
|
52
|
+
// ❌ 禁止:V4 source
|
|
53
|
+
chart.source(data);
|
|
54
|
+
|
|
55
|
+
// ❌ 禁止:V4 position
|
|
56
|
+
chart.interval().position('genre*sold');
|
|
57
|
+
|
|
58
|
+
// ✅ 正确:V5 Spec 模式
|
|
59
|
+
chart.options({
|
|
60
|
+
type: 'interval',
|
|
61
|
+
data: [...],
|
|
62
|
+
encode: { x: 'genre', y: 'sold' },
|
|
63
|
+
style: { radius: 4 },
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**原因**:V5 使用 Spec 模式,结构清晰,易于序列化、动态生成和调试。
|
|
68
|
+
|
|
69
|
+
#### `createView` 的正确 V5 替代方案
|
|
70
|
+
|
|
71
|
+
`chart.createView()` 在 V4 中用于"多视图共享容器但数据各异",V5 中对应两种场景:
|
|
72
|
+
|
|
73
|
+
**场景 A:同一坐标系内叠加多个 mark(最常见)**
|
|
74
|
+
→ 用 `type: 'view'` + `children` 数组,`children` 中不能再嵌套 `view` 或者 `children` :
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
// ✅ 多 mark 叠加(折线 + 散点)
|
|
78
|
+
chart.options({
|
|
79
|
+
type: 'view',
|
|
80
|
+
data,
|
|
81
|
+
children: [
|
|
82
|
+
{ type: 'line', encode: { x: 'date', y: 'value' } },
|
|
83
|
+
{ type: 'point', encode: { x: 'date', y: 'value' } },
|
|
84
|
+
],
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**场景 B:多个独立坐标系并排/叠加(如人口金字塔、butterfly 图)**
|
|
89
|
+
→ 用 `type: 'spaceLayer'` + `children`(各子 view 有独立数据和坐标系):
|
|
90
|
+
|
|
91
|
+
```javascript
|
|
92
|
+
// ✅ 人口金字塔:左右两侧独立视图叠加,共享 Y 轴
|
|
93
|
+
chart.options({
|
|
94
|
+
type: 'spaceLayer',
|
|
95
|
+
children: [
|
|
96
|
+
{
|
|
97
|
+
type: 'interval',
|
|
98
|
+
data: leftData, // 左侧数据(负值或翻转)
|
|
99
|
+
coordinate: { transform: [{ type: 'transpose' }, { type: 'reflectX' }] },
|
|
100
|
+
encode: { x: 'age', y: 'male' },
|
|
101
|
+
axis: { y: { position: 'right' } },
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'interval',
|
|
105
|
+
data: rightData, // 右侧数据
|
|
106
|
+
coordinate: { transform: [{ type: 'transpose' }] },
|
|
107
|
+
encode: { x: 'age', y: 'female' },
|
|
108
|
+
axis: { y: false },
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
// ✅ 更简单方案:单一视图 + 负值技巧(数据可在一个数组里)
|
|
114
|
+
chart.options({
|
|
115
|
+
type: 'interval',
|
|
116
|
+
data: combinedData, // 合并数据,用负值区分方向
|
|
117
|
+
coordinate: { transform: [{ type: 'transpose' }] },
|
|
118
|
+
encode: {
|
|
119
|
+
x: 'age',
|
|
120
|
+
y: (d) => d.sex === 'male' ? -d.population : d.population,
|
|
121
|
+
color: 'sex',
|
|
122
|
+
},
|
|
123
|
+
axis: {
|
|
124
|
+
y: { labelFormatter: (d) => Math.abs(d) }, // 显示绝对值
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**选择原则**:
|
|
130
|
+
- 两侧数据结构相同、只是方向相反 → **优先用负值技巧**(单 `interval`,代码最简洁)
|
|
131
|
+
- 两侧需要完全独立的坐标系/比例尺 → 用 `spaceLayer`
|
|
132
|
+
|
|
133
|
+
### 1.2 禁止使用的幻觉 Mark 类型 / Hallucinated Mark Types
|
|
134
|
+
|
|
135
|
+
以下类型来自其他图表库(如 ECharts、Vega),**G2 中不存在**,使用将导致运行时报错:
|
|
136
|
+
|
|
137
|
+
| ❌ 错误写法 | ✅ 正确替换 |
|
|
138
|
+
|------------|-----------|
|
|
139
|
+
| `type: 'ruleX'` | `type: 'lineX'`(垂直参考线) |
|
|
140
|
+
| `type: 'ruleY'` | `type: 'lineY'`(水平参考线) |
|
|
141
|
+
| `type: 'regionX'` | `type: 'rangeX'`(X 轴区间高亮) |
|
|
142
|
+
| `type: 'regionY'` | `type: 'rangeY'`(Y 轴区间高亮) |
|
|
143
|
+
| `type: 'venn'` | `type: 'path'` + `data.transform: [{ type: 'venn' }]` |
|
|
144
|
+
|
|
145
|
+
**G2 合法 mark 类型完整列表**(不得凭空创造其他 type):
|
|
146
|
+
- 基础:`interval`、`line`、`area`、`point`、`rect`、`cell`、`text`、`image`、`path`、`polygon`、`shape`
|
|
147
|
+
- 连接:`link`、`connector`、`vector`
|
|
148
|
+
- 参考线/区域:`lineX`、`lineY`、`rangeX`、`rangeY`;`range`(极少用,仅在 x/y 均需限定二维矩形时使用,且数据的 x/y 字段必须是 `[start,end]` 数组)
|
|
149
|
+
- 统计:`box`、`boxplot`、`density`、`heatmap`、`beeswarm`
|
|
150
|
+
- 层次/关系:`treemap`、`pack`、`partition`、`tree`、`sankey`、`chord`、`forceGraph`
|
|
151
|
+
- 特殊:`wordCloud`、`gauge`、`liquid`
|
|
152
|
+
- 需引入扩展包:`sunburst`(需 `@antv/g2-extension-plot`,见 [旭日图](references/marks/g2-mark-sunburst.md))
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 2. Common Mistakes / 常见错误
|
|
156
|
+
|
|
157
|
+
代码示例:
|
|
158
|
+
|
|
159
|
+
```javascript
|
|
160
|
+
// ❌ Wrong: missing container
|
|
161
|
+
const chart = new Chart({ width: 640, height: 480 });
|
|
162
|
+
|
|
163
|
+
// ✅ Correct: container required
|
|
164
|
+
const chart = new Chart({ container: 'container', width: 640, height: 480 });
|
|
165
|
+
|
|
166
|
+
// ❌ Wrong: transform as object
|
|
167
|
+
chart.options({ transform: { type: 'stackY' } });
|
|
168
|
+
|
|
169
|
+
// ✅ Correct: transform as array
|
|
170
|
+
chart.options({ transform: [{ type: 'stackY' }] });
|
|
171
|
+
|
|
172
|
+
// ❌ Wrong: label (singular)
|
|
173
|
+
chart.options({ label: { text: 'value' } });
|
|
174
|
+
|
|
175
|
+
// ✅ Correct: labels (plural)
|
|
176
|
+
chart.options({ labels: [{ text: 'value' }] });
|
|
177
|
+
|
|
178
|
+
// ❌ Wrong: 多次调用 chart.options() —— 每次调用完整替换前一次,只有最后一次生效
|
|
179
|
+
chart.options({ type: 'interval', data, encode: { x: 'x', y: 'y' } }); // ❌ 被覆盖,不渲染
|
|
180
|
+
chart.options({ type: 'line', data, encode: { x: 'x', y: 'y' } }); // ❌ 被覆盖,不渲染
|
|
181
|
+
chart.options({ type: 'text', data, encode: { x: 'x', y: 'y', text: 'label' } }); // 只有这个生效
|
|
182
|
+
|
|
183
|
+
// ✅ Correct: 多 mark 叠加必须用 type: 'view' + children
|
|
184
|
+
chart.options({
|
|
185
|
+
type: 'view',
|
|
186
|
+
data, // 共享数据(子 mark 可以覆盖)
|
|
187
|
+
children: [
|
|
188
|
+
{ type: 'interval', encode: { x: 'x', y: 'y' } },
|
|
189
|
+
{ type: 'line', encode: { x: 'x', y: 'y' } },
|
|
190
|
+
{ type: 'text', encode: { x: 'x', y: 'y', text: 'label' } },
|
|
191
|
+
],
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
// ✅ 子 mark 需要不同数据时,在 children 里单独指定 data
|
|
195
|
+
chart.options({
|
|
196
|
+
type: 'view',
|
|
197
|
+
data: mainData,
|
|
198
|
+
children: [
|
|
199
|
+
{ type: 'interval', encode: { x: 'x', y: 'y' } }, // 用父级 mainData
|
|
200
|
+
{ type: 'text', data: labelData, encode: { x: 'x', text: 'label' } }, // 用独立数据
|
|
201
|
+
],
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
// ⚠️ 多 mark 组合规则:
|
|
205
|
+
// 1. 只能使用 children,禁止使用 marks、layers 等配置
|
|
206
|
+
// 2. children 不能嵌套(children 内不能再有 children)
|
|
207
|
+
// 3. 复杂组合使用 spaceLayer/spaceFlex
|
|
208
|
+
|
|
209
|
+
// ❌ Wrong: 使用 marks(禁止)
|
|
210
|
+
chart.options({
|
|
211
|
+
type: 'view',
|
|
212
|
+
data,
|
|
213
|
+
marks: [...], // ❌ 禁止!
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
// ❌ Wrong: 使用 layers(禁止)
|
|
217
|
+
chart.options({
|
|
218
|
+
type: 'view',
|
|
219
|
+
data,
|
|
220
|
+
Layers: [...], // ❌ 禁止!
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
// ✅ Correct: 使用 children
|
|
224
|
+
chart.options({
|
|
225
|
+
type: 'view',
|
|
226
|
+
data,
|
|
227
|
+
children: [ // ✅ 正确
|
|
228
|
+
{ type: 'line', encode: { x: 'year', y: 'value' } },
|
|
229
|
+
{ type: 'point', encode: { x: 'year', y: 'value' } },
|
|
230
|
+
],
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// ❌ Wrong: children 嵌套(禁止)
|
|
234
|
+
chart.options({
|
|
235
|
+
type: 'view',
|
|
236
|
+
children: [
|
|
237
|
+
{
|
|
238
|
+
type: 'view',
|
|
239
|
+
children: [...], // ❌ 禁止!children 不能嵌套
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// ✅ Correct: 使用 spaceLayer/spaceFlex 处理复杂组合
|
|
245
|
+
chart.options({
|
|
246
|
+
type: 'spaceLayer',
|
|
247
|
+
children: [
|
|
248
|
+
{ type: 'view', children: [...] }, // ✅ spaceLayer 下可以有 view + children
|
|
249
|
+
{ type: 'line', ... },
|
|
250
|
+
],
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// ❌ Wrong: unnecessary scale type specification
|
|
254
|
+
chart.options({
|
|
255
|
+
scale: {
|
|
256
|
+
x: { type: 'linear' }, // ❌ 不需要,默认就是 linear
|
|
257
|
+
y: { type: 'linear' }, // ❌ 不需要
|
|
258
|
+
},
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
// ✅ Correct: let G2 infer scale type automatically
|
|
262
|
+
chart.options({
|
|
263
|
+
scale: {
|
|
264
|
+
y: { domain: [0, 100] }, // ✅ 只配置需要的属性
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## 3. Basic Structure / 基础结构
|
|
272
|
+
|
|
273
|
+
```javascript
|
|
274
|
+
import { Chart } from '@antv/g2';
|
|
275
|
+
|
|
276
|
+
const chart = new Chart({ container: 'container', width: 640, height: 480 });
|
|
277
|
+
|
|
278
|
+
chart.options({
|
|
279
|
+
type: 'interval', // Mark type
|
|
280
|
+
data: [...], // Data array
|
|
281
|
+
encode: { x: 'field', y: 'field', color: 'field' },
|
|
282
|
+
transform: [], // Data transforms
|
|
283
|
+
scale: {}, // Scale config
|
|
284
|
+
coordinate: {}, // Coordinate system
|
|
285
|
+
style: {}, // Style config
|
|
286
|
+
labels: [], // Data labels
|
|
287
|
+
tooltip: {}, // Tooltip config
|
|
288
|
+
axis: {}, // Axis config
|
|
289
|
+
legend: {}, // Legend config
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
chart.render();
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## 4. Core / 核心概念
|
|
298
|
+
|
|
299
|
+
核心概念是 G2 的基础,理解这些概念是正确使用 G2 的前提。
|
|
300
|
+
|
|
301
|
+
### 4.1 Chart 初始化
|
|
302
|
+
|
|
303
|
+
Chart 是 G2 的核心类,所有图表都从 Chart 实例开始。
|
|
304
|
+
|
|
305
|
+
```javascript
|
|
306
|
+
import { Chart } from '@antv/g2';
|
|
307
|
+
|
|
308
|
+
const chart = new Chart({
|
|
309
|
+
container: 'container', // 必填:DOM 容器 ID 或元素
|
|
310
|
+
width: 640, // 可选:宽度
|
|
311
|
+
height: 480, // 可选:高度
|
|
312
|
+
autoFit: true, // 可选:自适应容器大小
|
|
313
|
+
padding: 'auto', // 可选:内边距
|
|
314
|
+
theme: 'light', // 可选:主题
|
|
315
|
+
});
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
> **详细文档**: [Chart 初始化](references/core/g2-core-chart-init.md)
|
|
319
|
+
|
|
320
|
+
### 4.2 encode 通道系统
|
|
321
|
+
|
|
322
|
+
encode 将数据字段映射到视觉通道,是 G2 的核心概念。
|
|
323
|
+
|
|
324
|
+
| 通道 | 用途 | 示例 |
|
|
325
|
+
|------|------|------|
|
|
326
|
+
| `x` | X 轴位置 | `encode: { x: 'month' }` |
|
|
327
|
+
| `y` | Y 轴位置 | `encode: { y: 'value' }` |
|
|
328
|
+
| `color` | 颜色 | `encode: { color: 'category' }` |
|
|
329
|
+
| `size` | 大小 | `encode: { size: 'population' }` |
|
|
330
|
+
| `shape` | 形状 | `encode: { shape: 'type' }` |
|
|
331
|
+
|
|
332
|
+
> **详细文档**: [encode 通道系统](references/core/g2-core-encode-channel.md)
|
|
333
|
+
|
|
334
|
+
### 4.3 视图组合 (view + children)
|
|
335
|
+
|
|
336
|
+
使用 `view` 类型配合 `children` 数组组合多个 mark。
|
|
337
|
+
|
|
338
|
+
```javascript
|
|
339
|
+
chart.options({
|
|
340
|
+
type: 'view',
|
|
341
|
+
data,
|
|
342
|
+
children: [
|
|
343
|
+
{ type: 'line', encode: { x: 'date', y: 'value' } },
|
|
344
|
+
{ type: 'point', encode: { x: 'date', y: 'value' } },
|
|
345
|
+
],
|
|
346
|
+
});
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
> **详细文档**: [视图组合](references/core/g2-core-view-composition.md)
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## 5. Concepts / 概念指南
|
|
354
|
+
|
|
355
|
+
概念指南帮助选择正确的图表类型和配置方案。
|
|
356
|
+
|
|
357
|
+
### 5.1 图表类型选择 / Chart Selection
|
|
358
|
+
|
|
359
|
+
根据数据特征和可视化目标选择合适的图表类型:
|
|
360
|
+
|
|
361
|
+
| 数据关系 | 推荐图表 | Mark |
|
|
362
|
+
|---------|---------|------|
|
|
363
|
+
| 比较 | 柱状图、条形图 | `interval` |
|
|
364
|
+
| 趋势 | 折线图、面积图 | `line`、`area` |
|
|
365
|
+
| 占比 | 饼图、环形图 | `interval` + `theta` |
|
|
366
|
+
| 分布 | 直方图、箱线图 | `rect`、`boxplot` |
|
|
367
|
+
| 相关 | 散点图、气泡图 | `point` |
|
|
368
|
+
| 层级 | 矩形树图、旭日图 | `treemap`、`sunburst`(需扩展包) |
|
|
369
|
+
|
|
370
|
+
> **详细文档**: [图表类型选择指南](references/concepts/g2-concept-chart-selection.md)
|
|
371
|
+
|
|
372
|
+
### 5.2 视觉通道 / Visual Channels
|
|
373
|
+
|
|
374
|
+
视觉通道是数据到视觉属性的映射方式:
|
|
375
|
+
|
|
376
|
+
| 通道类型 | 适合数据 | 感知精度 |
|
|
377
|
+
|---------|---------|---------|
|
|
378
|
+
| 位置 | 连续/离散 | 最高 |
|
|
379
|
+
| 长度 | 连续 | 高 |
|
|
380
|
+
| 颜色(色相) | 离散 | 中 |
|
|
381
|
+
| 颜色(亮度) | 连续 | 中 |
|
|
382
|
+
| 大小 | 连续 | 中低 |
|
|
383
|
+
| 形状 | 离散 | 低 |
|
|
384
|
+
|
|
385
|
+
> **详细文档**: [视觉通道](references/concepts/g2-concept-visual-channels.md)
|
|
386
|
+
|
|
387
|
+
### 5.3 配色理论 / Color Theory
|
|
388
|
+
|
|
389
|
+
选择合适的配色方案提升图表可读性:
|
|
390
|
+
|
|
391
|
+
| 场景 | 推荐方案 | 示例 |
|
|
392
|
+
|------|---------|------|
|
|
393
|
+
| 分类数据 | 离散色板 | `category10`、`category20` |
|
|
394
|
+
| 连续数据 | 顺序色板 | `Blues`、`RdYlBu` |
|
|
395
|
+
| 正负对比 | 发散色板 | `RdYlGn` |
|
|
396
|
+
|
|
397
|
+
> **详细文档**: [配色理论](references/concepts/g2-concept-color-theory.md)
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## 6. Marks / 图表类型
|
|
402
|
+
|
|
403
|
+
Marks 是 G2 的核心可视化元素,决定了数据的视觉表现形式。每种 Mark 适合特定的数据类型和可视化场景。
|
|
404
|
+
|
|
405
|
+
### 6.1 柱状图系列 / Interval
|
|
406
|
+
|
|
407
|
+
柱状图用于比较分类数据的大小,是最常用的图表类型。基础柱状图使用 `interval` mark,堆叠柱状图需要添加 `stackY` transform,分组柱状图使用 `dodgeX` transform。
|
|
408
|
+
|
|
409
|
+
| 类型 | Mark | 关键配置 |
|
|
410
|
+
|------|------|----------|
|
|
411
|
+
| 基础柱状图 | `interval` | - |
|
|
412
|
+
| 堆叠柱状图 | `interval` | `transform: [{ type: 'stackY' }]` |
|
|
413
|
+
| 分组柱状图 | `interval` | `transform: [{ type: 'dodgeX' }]` |
|
|
414
|
+
| 百分比柱状图 | `interval` | `transform: [{ type: 'normalizeY' }]` |
|
|
415
|
+
| 水平柱状图 | `interval` | `coordinate: { transform: [{ type: 'transpose' }] }` |
|
|
416
|
+
|
|
417
|
+
> **详细文档**: [基础柱状图](references/marks/g2-mark-interval-basic.md) | [堆叠柱状图](references/marks/g2-mark-interval-stacked.md) | [分组柱状图](references/marks/g2-mark-interval-grouped.md) | [百分比柱状图](references/marks/g2-mark-interval-normalized.md)
|
|
418
|
+
|
|
419
|
+
### 6.2 折线图系列 / Line
|
|
420
|
+
|
|
421
|
+
折线图用于展示数据随时间或有序类别的变化趋势。支持单线、多线对比,以及不同插值方式。
|
|
422
|
+
|
|
423
|
+
| 类型 | Mark | 关键配置 |
|
|
424
|
+
|------|------|----------|
|
|
425
|
+
| 基础折线图 | `line` | - |
|
|
426
|
+
| 多系列折线 | `line` | `encode: { color: 'category' }` |
|
|
427
|
+
| 平滑曲线 | `line` | `encode: { shape: 'smooth' }` |
|
|
428
|
+
| 阶梯线 | `line` | `encode: { shape: 'step' }` |
|
|
429
|
+
|
|
430
|
+
> **详细文档**: [基础折线图](references/marks/g2-mark-line-basic.md) | [多系列折线](references/marks/g2-mark-line-multi.md) | [LineX/LineY](references/marks/g2-mark-linex-liney.md)
|
|
431
|
+
|
|
432
|
+
### 6.3 面积图系列 / Area
|
|
433
|
+
|
|
434
|
+
面积图在折线图基础上填充区域,强调数量随时间的变化程度。堆叠面积图用于展示各部分对整体的贡献。
|
|
435
|
+
|
|
436
|
+
| 类型 | Mark | 关键配置 |
|
|
437
|
+
|------|------|----------|
|
|
438
|
+
| 基础面积图 | `area` | - |
|
|
439
|
+
| 堆叠面积图 | `area` | `transform: [{ type: 'stackY' }]` |
|
|
440
|
+
|
|
441
|
+
> **详细文档**: [基础面积图](references/marks/g2-mark-area-basic.md) | [堆叠面积图](references/marks/g2-mark-area-stacked.md)
|
|
442
|
+
|
|
443
|
+
### 6.4 饼图/环形图 / Arc (Pie/Donut)
|
|
444
|
+
|
|
445
|
+
饼图用于展示各部分占整体的比例关系。使用 `theta` 坐标系配合 `interval` mark 实现。
|
|
446
|
+
|
|
447
|
+
| 类型 | Mark | 关键配置 |
|
|
448
|
+
|------|------|----------|
|
|
449
|
+
| 饼图 | `interval` | `coordinate: { type: 'theta' }` + `stackY` |
|
|
450
|
+
| 环形图 | `interval` | `coordinate: { type: 'theta', innerRadius: 0.6 }` |
|
|
451
|
+
|
|
452
|
+
> **详细文档**: [饼图](references/marks/g2-mark-arc-pie.md) | [环形图](references/marks/g2-mark-arc-donut.md)
|
|
453
|
+
|
|
454
|
+
### 6.5 散点图/气泡图 / Point
|
|
455
|
+
|
|
456
|
+
散点图用于展示两个数值变量的关系,气泡图通过点的大小展示第三个维度。
|
|
457
|
+
|
|
458
|
+
| 类型 | Mark | 关键配置 |
|
|
459
|
+
|------|------|----------|
|
|
460
|
+
| 散点图 | `point` | `encode: { x, y }` |
|
|
461
|
+
| 气泡图 | `point` | `encode: { x, y, size }` |
|
|
462
|
+
|
|
463
|
+
> **详细文档**: [散点图](references/marks/g2-mark-point-scatter.md) | [气泡图](references/marks/g2-mark-point-bubble.md)
|
|
464
|
+
|
|
465
|
+
### 6.6 直方图 / Histogram
|
|
466
|
+
|
|
467
|
+
直方图用于展示连续数值数据的分布情况,使用 `rect` 标记配合 `binX` 转换实现。与柱状图不同,直方图的柱子之间无间隔,表示数据连续。
|
|
468
|
+
|
|
469
|
+
| 类型 | Mark | 关键配置 |
|
|
470
|
+
|------|------|----------|
|
|
471
|
+
| 基础直方图 | `rect` | `transform: [{ type: 'binX', y: 'count' }]` |
|
|
472
|
+
| 多分布对比 | `rect` | `groupBy` 分组 |
|
|
473
|
+
|
|
474
|
+
> **详细文档**: [直方图](references/marks/g2-mark-histogram.md)
|
|
475
|
+
|
|
476
|
+
### 6.7 玫瑰图/玉珏图 / Polar Charts
|
|
477
|
+
|
|
478
|
+
极坐标系下的图表,通过半径或弧长表示数值大小,视觉上更加美观。
|
|
479
|
+
|
|
480
|
+
| 类型 | Mark | 关键配置 |
|
|
481
|
+
|------|------|----------|
|
|
482
|
+
| 玫瑰图 | `interval` | `coordinate: { type: 'polar' }` |
|
|
483
|
+
| 玉珏图 | `interval` | `coordinate: { type: 'radial' }` |
|
|
484
|
+
|
|
485
|
+
> **详细文档**: [玫瑰图](references/marks/g2-mark-rose.md) | [玉珏图](references/marks/g2-mark-radial-bar.md)
|
|
486
|
+
|
|
487
|
+
### 6.8 统计分布图 / Distribution
|
|
488
|
+
|
|
489
|
+
展示数据分布特征的图表,适用于统计分析和探索性数据分析。
|
|
490
|
+
|
|
491
|
+
| 类型 | Mark | 用途 |
|
|
492
|
+
|------|------|------|
|
|
493
|
+
| 箱线图 | `boxplot` | 数据分布统计 |
|
|
494
|
+
| 箱型图(Box) | `box` | 手动指定五数概括的箱线图 |
|
|
495
|
+
| 密度图 | `density` | 核密度估计曲线 |
|
|
496
|
+
| 小提琴图 | `density` + `boxplot` | 密度分布 + 统计信息 |
|
|
497
|
+
| 多边形 | `polygon` | 自定义多边形区域 |
|
|
498
|
+
|
|
499
|
+
> **详细文档**: [箱线图](references/marks/g2-mark-boxplot.md) | [箱型图(Box)](references/marks/g2-mark-box-boxplot.md) | [密度图](references/marks/g2-mark-density.md) | [小提琴图](references/marks/g2-mark-violin.md) | [多边形](references/marks/g2-mark-polygon.md)
|
|
500
|
+
|
|
501
|
+
### 6.9 关系图 / Relation
|
|
502
|
+
|
|
503
|
+
展示数据之间关系的图表,适用于网络分析和集合关系展示。
|
|
504
|
+
|
|
505
|
+
| 类型 | Mark | 用途 |
|
|
506
|
+
|------|------|------|
|
|
507
|
+
| 桑基图 | `sankey` | 流向/转移关系 |
|
|
508
|
+
| 和弦图 | `chord` | 矩阵流向关系 |
|
|
509
|
+
| 韦恩图 | `path` + venn数据变换 | 集合交集关系(venn 是 data transform,不是 mark type) |
|
|
510
|
+
| 弧长连接图 | `line` + `point` | 节点链接关系 |
|
|
511
|
+
|
|
512
|
+
> **详细文档**: [桑基图](references/marks/g2-mark-sankey.md) | [和弦图](references/marks/g2-mark-chord.md) | [韦恩图](references/marks/g2-mark-venn.md) | [弧长连接图](references/marks/g2-mark-arc-diagram.md)
|
|
513
|
+
|
|
514
|
+
### 6.10 项目管理图 / Project
|
|
515
|
+
|
|
516
|
+
适用于项目管理和进度跟踪的图表。
|
|
517
|
+
|
|
518
|
+
| 类型 | Mark | 用途 |
|
|
519
|
+
|------|------|------|
|
|
520
|
+
| 甘特图 | `interval` | 任务时间安排 |
|
|
521
|
+
| 子弹图 | `interval` + `point` | KPI 指标展示 |
|
|
522
|
+
|
|
523
|
+
> **详细文档**: [甘特图](references/marks/g2-mark-gantt.md) | [子弹图](references/marks/g2-mark-bullet.md)
|
|
524
|
+
|
|
525
|
+
### 6.11 金融图表 / Finance
|
|
526
|
+
|
|
527
|
+
适用于金融数据分析的专业图表。
|
|
528
|
+
|
|
529
|
+
| 类型 | Mark | 用途 |
|
|
530
|
+
|------|------|------|
|
|
531
|
+
| K线图 | `link` + `interval` | 股票四价数据 |
|
|
532
|
+
|
|
533
|
+
> **详细文档**: [K线图](references/marks/g2-mark-k-chart.md)
|
|
534
|
+
|
|
535
|
+
### 6.12 多维数据图 / Multivariate
|
|
536
|
+
|
|
537
|
+
展示多维数据关系的图表。
|
|
538
|
+
|
|
539
|
+
| 类型 | Mark | 用途 |
|
|
540
|
+
|------|------|------|
|
|
541
|
+
| 平行坐标系 | `line` | 多维数据关系分析 |
|
|
542
|
+
| 雷达图 | `line` | 多维数据对比 |
|
|
543
|
+
|
|
544
|
+
> **详细文档**: [平行坐标系](references/marks/g2-mark-parallel.md) | [雷达图](references/marks/g2-mark-radar.md)
|
|
545
|
+
|
|
546
|
+
### 6.13 对比图 / Comparison
|
|
547
|
+
|
|
548
|
+
适用于数据对比的图表。
|
|
549
|
+
|
|
550
|
+
| 类型 | Mark | 用途 |
|
|
551
|
+
|------|------|------|
|
|
552
|
+
| 双向柱状图 | `interval` | 正负数据对比 |
|
|
553
|
+
|
|
554
|
+
> **详细文档**: [双向柱状图](references/marks/g2-mark-bi-directional-bar.md)
|
|
555
|
+
|
|
556
|
+
### 6.14 基础标记 / Basic Marks
|
|
557
|
+
|
|
558
|
+
基础标记是 G2 的底层构建块,可独立使用或组合构建复杂图表。
|
|
559
|
+
|
|
560
|
+
| 类型 | Mark | 用途 |
|
|
561
|
+
|------|------|------|
|
|
562
|
+
| 矩形 | `rect` | 矩形区域,直方图/热力图基础 |
|
|
563
|
+
| 文本 | `text` | 文本标注和标签 |
|
|
564
|
+
| 图片 | `image` | 图片标记,数据点用图片表示 |
|
|
565
|
+
| 路径 | `path` | 自定义路径绘制 |
|
|
566
|
+
| 链接 | `link` | 两点之间的连线 |
|
|
567
|
+
| 连接器 | `connector` | 数据点之间的连接线 |
|
|
568
|
+
| 形状 | `shape` | 自定义形状绘制 |
|
|
569
|
+
| 向量 | `vector` | 向量/箭头标记,风场图等 |
|
|
570
|
+
|
|
571
|
+
> **详细文档**: [rect](references/marks/g2-mark-rect.md) | [text](references/marks/g2-mark-text.md) | [image](references/marks/g2-mark-image.md) | [path](references/marks/g2-mark-path.md) | [link](references/marks/g2-mark-link.md) | [connector](references/marks/g2-mark-connector.md) | [shape](references/marks/g2-mark-shape.md) | [vector](references/marks/g2-mark-vector.md)
|
|
572
|
+
|
|
573
|
+
### 6.15 范围标记 / Range
|
|
574
|
+
|
|
575
|
+
范围标记用于展示数据的区间范围。
|
|
576
|
+
|
|
577
|
+
| 类型 | Mark | 用途 |
|
|
578
|
+
|------|------|------|
|
|
579
|
+
| 时间段/区间高亮(X 方向) | `rangeX` | X 轴区间,`encode: { x: 'start', x1: 'end' }` |
|
|
580
|
+
| 数值范围高亮(Y 方向) | `rangeY` | Y 轴区间,`encode: { y: 'min', y1: 'max' }` |
|
|
581
|
+
| 二维矩形区域 | `range` | x/y 字段为 `[start,end]` 数组,`encode: { x:'x', y:'y' }`,极少使用 |
|
|
582
|
+
|
|
583
|
+
> **详细文档**: [range/rangeY](references/marks/g2-mark-range-rangey.md) | [rangeX](references/marks/g2-mark-rangex.md)
|
|
584
|
+
|
|
585
|
+
### 6.16 分布与打包图 / Distribution & Pack
|
|
586
|
+
|
|
587
|
+
| 类型 | Mark | 用途 |
|
|
588
|
+
|------|------|------|
|
|
589
|
+
| 蜂群图 | `point` + `pack` | 数据点紧密排列展示分布 |
|
|
590
|
+
| 打包图 | `pack` | 层级数据的圆形打包 |
|
|
591
|
+
|
|
592
|
+
> **详细文档**: [蜂群图](references/marks/g2-mark-beeswarm.md) | [打包图](references/marks/g2-mark-pack.md)
|
|
593
|
+
|
|
594
|
+
### 6.17 层次结构图 / Hierarchy
|
|
595
|
+
|
|
596
|
+
展示层级数据的图表,通过面积或半径表示数值占比。
|
|
597
|
+
|
|
598
|
+
| 类型 | Mark | 用途 |
|
|
599
|
+
|------|------|------|
|
|
600
|
+
| 矩形树图 | `treemap` | 层级数据占比 |
|
|
601
|
+
| 旭日图 | `sunburst`⚠️ | 多层级同心圆展示(需引入 @antv/g2-extension-plot) |
|
|
602
|
+
| 分区图 | `partition` | 层级数据分区展示 |
|
|
603
|
+
| 树图 | `tree` | 树形层级结构 |
|
|
604
|
+
|
|
605
|
+
> **详细文档**: [矩形树图](references/marks/g2-mark-treemap.md) | [旭日图](references/marks/g2-mark-sunburst.md) | [分区图](references/marks/g2-mark-partition.md) | [树图](references/marks/g2-mark-tree.md)
|
|
606
|
+
|
|
607
|
+
### 6.18 其他图表 / Others
|
|
608
|
+
|
|
609
|
+
| 类型 | Mark | 用途 |
|
|
610
|
+
|------|------|------|
|
|
611
|
+
| 热力图 | `cell` | 二维矩阵数据可视化 |
|
|
612
|
+
| 密度热力图 | `heatmap` | 连续密度热力图 |
|
|
613
|
+
| 仪表盘 | `gauge` | 指标进度展示 |
|
|
614
|
+
| 词云 | `wordCloud` | 文本频率可视化 |
|
|
615
|
+
| 水波图 | `liquid` | 百分比进度 |
|
|
616
|
+
|
|
617
|
+
> **详细文档**: [热力图](references/marks/g2-mark-cell-heatmap.md) | [密度热力图](references/marks/g2-mark-heatmap.md) | [仪表盘](references/marks/g2-mark-gauge.md) | [词云](references/marks/g2-mark-wordcloud.md) | [水波图](references/marks/g2-mark-liquid.md)
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
## 7. Data / 数据变换
|
|
622
|
+
|
|
623
|
+
数据变换在数据加载阶段执行,配置在 `data.transform` 中,影响所有使用该数据的标记。
|
|
624
|
+
|
|
625
|
+
### 7.1 Data Transform 类型(配置在 `data.transform`)
|
|
626
|
+
|
|
627
|
+
| 变换 | 类型 | 用途 | 示例场景 |
|
|
628
|
+
|------|------|------|---------|
|
|
629
|
+
| **fold** | `fold` | 宽表转长表 | 多列数据转多系列 |
|
|
630
|
+
| **filter** | `filter` | 条件过滤数据 | 过滤无效数据 |
|
|
631
|
+
| **sort** | `sort` | 使用回调函数排序 | 自定义排序逻辑 |
|
|
632
|
+
| **sortBy** | `sortBy` | 按字段排序 | 按字段值排序 |
|
|
633
|
+
| **map** | `map` | 数据映射转换 | 添加计算字段 |
|
|
634
|
+
| **join** | `join` | 合并数据表 | 关联外部数据 |
|
|
635
|
+
| **pick** | `pick` | 选择指定字段 | 精简字段 |
|
|
636
|
+
| **rename** | `rename` | 重命名字段 | 字段重命名 |
|
|
637
|
+
| **slice** | `slice` | 截取数据范围 | 分页/截取 |
|
|
638
|
+
| **ema** | `ema` | 指数移动平均 | 时间序列平滑 |
|
|
639
|
+
| **kde** | `kde` | 核密度估计 | 密度图/小提琴图 |
|
|
640
|
+
| **log** | `log` | 打印数据到控制台 | 调试 |
|
|
641
|
+
| **custom** | `custom` | 自定义数据处理 | 复杂转换 |
|
|
642
|
+
|
|
643
|
+
### 7.2 数据格式与模式
|
|
644
|
+
|
|
645
|
+
| 类型 | 用途 |
|
|
646
|
+
|------|------|
|
|
647
|
+
| 表格数据格式 | G2 接受的标准表格数据格式说明 |
|
|
648
|
+
| 数据变换模式 | Data Transform 和 Mark Transform 的组合使用模式 |
|
|
649
|
+
|
|
650
|
+
> **详细文档**: [filter](references/data/g2-data-filter.md) | [sort](references/data/g2-data-sort.md) | [sortBy](references/data/g2-data-sortby.md) | [fold](references/data/g2-data-fold.md) | [slice](references/data/g2-data-slice.md) | [ema](references/data/g2-data-ema.md) | [kde](references/data/g2-data-kde.md) | [log](references/data/g2-data-log.md) | [fetch](references/data/g2-data-fetch.md) | [表格数据格式](references/data/g2-data-format-tabular.md) | [数据变换模式](references/data/g2-data-transform-patterns.md)
|
|
651
|
+
|
|
652
|
+
### 7.3 常见错误:Data Transform 放错位置
|
|
653
|
+
|
|
654
|
+
```javascript
|
|
655
|
+
// ❌ 错误:fold 是数据变换,不能放在 mark transform
|
|
656
|
+
chart.options({
|
|
657
|
+
type: 'interval',
|
|
658
|
+
data: wideData,
|
|
659
|
+
transform: [{ type: 'fold', fields: ['a', 'b'] }], // ❌ 错误!
|
|
660
|
+
});
|
|
661
|
+
|
|
662
|
+
// ✅ 正确:fold 放在 data.transform
|
|
663
|
+
chart.options({
|
|
664
|
+
type: 'interval',
|
|
665
|
+
data: {
|
|
666
|
+
type: 'inline',
|
|
667
|
+
value: wideData,
|
|
668
|
+
transform: [{ type: 'fold', fields: ['a', 'b'] }], // ✅ 正确
|
|
669
|
+
},
|
|
670
|
+
transform: [{ type: 'stackY' }], // mark transform
|
|
671
|
+
});
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
### 7.4 组合示例:宽表数据 + 堆叠图
|
|
675
|
+
|
|
676
|
+
```javascript
|
|
677
|
+
// 宽表数据:每个月有多个类型的数据列
|
|
678
|
+
const wideData = [
|
|
679
|
+
{ year: '2000', '类型 A': 21, '类型 B': 16, '类型 C': 8 },
|
|
680
|
+
{ year: '2001', '类型 A': 25, '类型 B': 16, '类型 C': 8 },
|
|
681
|
+
// ...
|
|
682
|
+
];
|
|
683
|
+
|
|
684
|
+
chart.options({
|
|
685
|
+
type: 'interval',
|
|
686
|
+
data: {
|
|
687
|
+
type: 'inline',
|
|
688
|
+
value: wideData,
|
|
689
|
+
transform: [
|
|
690
|
+
// ✅ Data Transform:宽表转长表
|
|
691
|
+
{ type: 'fold', fields: ['类型 A', '类型 B', '类型 C'], key: 'type', value: 'value' },
|
|
692
|
+
],
|
|
693
|
+
},
|
|
694
|
+
encode: { x: 'year', y: 'value', color: 'type' },
|
|
695
|
+
transform: [
|
|
696
|
+
// ✅ Mark Transform:堆叠
|
|
697
|
+
{ type: 'stackY' },
|
|
698
|
+
],
|
|
699
|
+
coordinate: { type: 'polar' }, // 极坐标系
|
|
700
|
+
});
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
705
|
+
## 8. Transforms / 标记变换
|
|
706
|
+
|
|
707
|
+
标记变换在绑定视觉通道时执行,配置在 mark 的 `transform` 数组中,用于数据聚合、防重叠等。
|
|
708
|
+
|
|
709
|
+
**配置位置**:`transform` 数组,与 `data`、`encode` 同级,**不是**在 `data.transform` 中。
|
|
710
|
+
|
|
711
|
+
```javascript
|
|
712
|
+
chart.options({
|
|
713
|
+
type: 'interval',
|
|
714
|
+
data,
|
|
715
|
+
encode: { x: 'category', y: 'value', color: 'type' },
|
|
716
|
+
transform: [ // ✅ Mark Transform:与 data/encode 同级
|
|
717
|
+
{ type: 'stackY' },
|
|
718
|
+
{ type: 'sortX', by: 'y' },
|
|
719
|
+
],
|
|
720
|
+
});
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
### 8.1 防重叠变换 / Anti-overlap
|
|
724
|
+
|
|
725
|
+
| 变换 | 类型 | 用途 |
|
|
726
|
+
|------|------|------|
|
|
727
|
+
| 堆叠 | `stackY` | 数据堆叠,用于堆叠图 |
|
|
728
|
+
| 分组 | `dodgeX` | 数据分组,用于分组图 |
|
|
729
|
+
| 抖动 | `jitter` | 散点抖动避免重叠 |
|
|
730
|
+
| X轴抖动 | `jitterX` | X 方向抖动 |
|
|
731
|
+
| Y轴抖动 | `jitterY` | Y 方向抖动 |
|
|
732
|
+
| 打包 | `pack` | 紧密排列数据点 |
|
|
733
|
+
|
|
734
|
+
> **详细文档**: [stackY](references/transforms/g2-transform-stacky.md) | [dodgeX](references/transforms/g2-transform-dodgex.md) | [jitter](references/transforms/g2-transform-jitter.md) | [jitterX](references/transforms/g2-transform-jitterx.md) | [jitterY](references/transforms/g2-transform-jittery.md) | [pack](references/transforms/g2-transform-pack.md)
|
|
735
|
+
|
|
736
|
+
### 8.2 聚合变换 / Aggregation
|
|
737
|
+
|
|
738
|
+
| 变换 | 类型 | 用途 |
|
|
739
|
+
|------|------|------|
|
|
740
|
+
| 通用分组 | `group` | 通用分组聚合 |
|
|
741
|
+
| 分组聚合 | `groupX` / `groupY` | 按维度分组并聚合 |
|
|
742
|
+
| 分组颜色 | `groupColor` | 按颜色分组聚合 |
|
|
743
|
+
| 分箱 | `bin` | 二维分箱 |
|
|
744
|
+
| X轴分箱 | `binX` | X 轴方向分箱 |
|
|
745
|
+
| 采样 | `sample` | 数据采样 |
|
|
746
|
+
|
|
747
|
+
> **详细文档**: [group](references/transforms/g2-transform-group.md) | [groupX](references/transforms/g2-transform-groupx.md) | [groupY](references/transforms/g2-transform-groupy.md) | [groupColor](references/transforms/g2-transform-groupcolor.md) | [bin](references/transforms/g2-transform-bin.md) | [binX](references/transforms/g2-transform-binx.md) | [sample](references/transforms/g2-transform-sample.md)
|
|
748
|
+
|
|
749
|
+
### 8.3 排序变换 / Sorting
|
|
750
|
+
|
|
751
|
+
| 变换 | 类型 | 用途 |
|
|
752
|
+
|------|------|------|
|
|
753
|
+
| X轴排序 | `sortX` | 按 X 通道排序 |
|
|
754
|
+
| Y轴排序 | `sortY` | 按 Y 通道排序 |
|
|
755
|
+
| 颜色排序 | `sortColor` | 按颜色通道排序 |
|
|
756
|
+
|
|
757
|
+
> **详细文档**: [sortX](references/transforms/g2-transform-sortx.md) | [sortY](references/transforms/g2-transform-sorty.md) | [sortColor](references/transforms/g2-transform-sort-color.md)
|
|
758
|
+
|
|
759
|
+
### 8.4 选取变换 / Selection
|
|
760
|
+
|
|
761
|
+
| 变换 | 类型 | 用途 |
|
|
762
|
+
|------|------|------|
|
|
763
|
+
| 选取 | `select` | 全局选取数据 |
|
|
764
|
+
| X轴选取 | `selectX` | 按 X 分组选取 |
|
|
765
|
+
| Y轴选取 | `selectY` | 按 Y 分组选取 |
|
|
766
|
+
|
|
767
|
+
> **详细文档**: [select](references/transforms/g2-transform-select.md) | [selectX](references/transforms/g2-transform-selectx.md) | [selectY](references/transforms/g2-transform-selecty.md)
|
|
768
|
+
|
|
769
|
+
### 8.5 其他变换 / Others
|
|
770
|
+
|
|
771
|
+
| 变换 | 类型 | 用途 |
|
|
772
|
+
|------|------|------|
|
|
773
|
+
| 归一化 | `normalizeY` | Y 轴归一化 |
|
|
774
|
+
| 差值 | `diffY` | 计算差值 |
|
|
775
|
+
| 对称 | `symmetryY` | Y 轴对称 |
|
|
776
|
+
| 弹性X | `flexX` | X 轴弹性布局 |
|
|
777
|
+
| 堆叠入场 | `stackEnter` | 入场动画堆叠 |
|
|
778
|
+
|
|
779
|
+
> **详细文档**: [normalizeY](references/transforms/g2-transform-normalizey.md) | [diffY](references/transforms/g2-transform-diffy.md) | [symmetryY](references/transforms/g2-transform-symmetryy.md) | [flexX](references/transforms/g2-transform-flexx.md) | [stackEnter](references/transforms/g2-transform-stack-enter.md)
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
|
|
783
|
+
## 9. Interactions / 交互
|
|
784
|
+
|
|
785
|
+
G2 提供丰富的内置交互,用于数据探索和图表操作。
|
|
786
|
+
|
|
787
|
+
### 9.1 选择类交互 / Selection
|
|
788
|
+
|
|
789
|
+
| 交互 | 类型 | 用途 |
|
|
790
|
+
|------|------|------|
|
|
791
|
+
| 元素选择 | `elementSelect` | 点击选择数据元素 |
|
|
792
|
+
| 按条件选择 | `elementSelectBy` | 按条件批量选择元素 |
|
|
793
|
+
| 框选 | `brush` / `brushX` / `brushY` | 矩形区域选择 |
|
|
794
|
+
| 二维框选 | `brushXY` | XY 同时框选 |
|
|
795
|
+
| 轴框选 | `brushAxis` | 坐标轴范围选择 |
|
|
796
|
+
| 图例过滤 | `legendFilter` | 点击图例筛选数据 |
|
|
797
|
+
|
|
798
|
+
> **详细文档**: [elementSelect](references/interactions/g2-interaction-element-select.md) | [elementSelectBy](references/interactions/g2-interaction-element-select-by.md) | [brush](references/interactions/g2-interaction-brush.md) | [brushXY](references/interactions/g2-interaction-brush-xy.md) | [brushAxis](references/interactions/g2-interaction-brush-axis.md) | [legendFilter](references/interactions/g2-interaction-legend-filter.md)
|
|
799
|
+
|
|
800
|
+
### 9.2 高亮类交互 / Highlight
|
|
801
|
+
|
|
802
|
+
| 交互 | 类型 | 用途 |
|
|
803
|
+
|------|------|------|
|
|
804
|
+
| 元素高亮 | `elementHighlight` | 悬停高亮元素 |
|
|
805
|
+
| 按条件高亮 | `elementHighlightBy` | 按条件批量高亮元素 |
|
|
806
|
+
| 悬停缩放 | `elementHoverScale` | 悬停时元素放大 |
|
|
807
|
+
| 图例高亮 | `legendHighlight` | 悬停图例高亮对应元素 |
|
|
808
|
+
| 框选高亮 | `brushXHighlight` / `brushYHighlight` | 框选区域高亮 |
|
|
809
|
+
|
|
810
|
+
> **详细文档**: [elementHighlight](references/interactions/g2-interaction-element-highlight.md) | [elementHighlightBy](references/interactions/g2-interaction-element-highlight-by.md) | [elementHoverScale](references/interactions/g2-interaction-element-hover-scale.md) | [legendHighlight](references/interactions/g2-interaction-legend-highlight.md) | [brushXHighlight](references/interactions/g2-interaction-brushx-highlight.md) | [brushYHighlight](references/interactions/g2-interaction-brushy-highlight.md) | [单轴框选高亮](references/interactions/g2-interaction-brush-x-y-highlight.md)
|
|
811
|
+
|
|
812
|
+
### 9.3 过滤类交互 / Filter
|
|
813
|
+
|
|
814
|
+
| 交互 | 类型 | 用途 |
|
|
815
|
+
|------|------|------|
|
|
816
|
+
| 滑动条过滤 | `sliderFilter` | 滑动条筛选数据范围 |
|
|
817
|
+
| 滚动条过滤 | `scrollbarFilter` | 滚动条筛选数据 |
|
|
818
|
+
| 框选过滤 | `brushFilter` | 框选区域过滤数据 |
|
|
819
|
+
| X轴框选过滤 | `brushXFilter` | X 轴方向框选过滤 |
|
|
820
|
+
| Y轴框选过滤 | `brushYFilter` | Y 轴方向框选过滤 |
|
|
821
|
+
| 自适应过滤 | `adaptiveFilter` | 自适应数据过滤 |
|
|
822
|
+
|
|
823
|
+
> **详细文档**: [sliderFilter](references/interactions/g2-interaction-slider-filter.md) | [scrollbarFilter](references/interactions/g2-interaction-scrollbar-filter.md) | [brushFilter](references/interactions/g2-interaction-brush-filter.md) | [brushXFilter](references/interactions/g2-interaction-brushx-filter.md) | [brushYFilter](references/interactions/g2-interaction-brushy-filter.md) | [adaptiveFilter](references/interactions/g2-interaction-adaptive-filter.md)
|
|
824
|
+
|
|
825
|
+
### 9.4 其他交互 / Others
|
|
826
|
+
|
|
827
|
+
| 交互 | 类型 | 用途 |
|
|
828
|
+
|------|------|------|
|
|
829
|
+
| 提示信息 | `tooltip` | 悬停显示数据详情 |
|
|
830
|
+
| 气泡提示 | `poptip` | 简洁气泡提示 |
|
|
831
|
+
| 下钻 | `drilldown` | 层级数据下钻 |
|
|
832
|
+
| 矩形树图下钻 | `treemapDrilldown` | 矩形树图层级下钻 |
|
|
833
|
+
| 缩放 | `fisheye` | 鱼眼放大镜效果 |
|
|
834
|
+
| 滚轮滑动 | `sliderWheel` | 鼠标滚轮控制滑动条 |
|
|
835
|
+
| 拖拽移动 | `elementPointMove` | 拖拽数据点移动 |
|
|
836
|
+
| 图表索引 | `chartIndex` | 多图表联动索引线 |
|
|
837
|
+
|
|
838
|
+
> **详细文档**: [tooltip](references/interactions/g2-interaction-tooltip.md) | [poptip](references/interactions/g2-interaction-poptip.md) | [drilldown](references/interactions/g2-interaction-drilldown.md) | [treemapDrilldown](references/interactions/g2-interaction-treemap-drilldown.md) | [fisheye](references/interactions/g2-interaction-fisheye.md) | [sliderWheel](references/interactions/g2-interaction-slider-wheel.md) | [elementPointMove](references/interactions/g2-interaction-element-point-move.md) | [chartIndex](references/interactions/g2-interaction-chart-index.md)
|
|
839
|
+
|
|
840
|
+
---
|
|
841
|
+
|
|
842
|
+
## 10. Components / 组件
|
|
843
|
+
|
|
844
|
+
组件是图表的辅助元素,如坐标轴、图例、提示信息等。
|
|
845
|
+
|
|
846
|
+
### 10.1 坐标轴 / Axis
|
|
847
|
+
|
|
848
|
+
坐标轴展示数据维度,支持丰富的样式配置。
|
|
849
|
+
|
|
850
|
+
> **详细文档**: [坐标轴配置](references/components/g2-comp-axis-config.md) | [雷达图坐标轴](references/components/g2-comp-axis-radar.md)
|
|
851
|
+
|
|
852
|
+
### 10.2 图例 / Legend
|
|
853
|
+
|
|
854
|
+
图例展示数据分类或连续数值映射,支持分类图例和连续图例(色带)。
|
|
855
|
+
|
|
856
|
+
| 类型 | 用途 |
|
|
857
|
+
|------|------|
|
|
858
|
+
| 分类图例 | 离散分类数据的颜色映射说明 |
|
|
859
|
+
| 连续图例 | 连续数值的颜色/大小映射说明(色带) |
|
|
860
|
+
|
|
861
|
+
> **详细文档**: [图例配置](references/components/g2-comp-legend-config.md) | [分类图例](references/components/g2-comp-legend-category.md) | [连续图例](references/components/g2-comp-legend-continuous.md)
|
|
862
|
+
|
|
863
|
+
### 10.3 提示信息 / Tooltip
|
|
864
|
+
|
|
865
|
+
Tooltip 在悬停时显示数据详情,支持自定义模板和格式化。
|
|
866
|
+
|
|
867
|
+
> **详细文档**: [Tooltip 配置](references/components/g2-comp-tooltip-config.md)
|
|
868
|
+
|
|
869
|
+
### 10.4 其他组件 / Others
|
|
870
|
+
|
|
871
|
+
| 组件 | 用途 |
|
|
872
|
+
|------|------|
|
|
873
|
+
| 标题 | 图表标题 |
|
|
874
|
+
| 标签 | 数据标签 |
|
|
875
|
+
| 滚动条 | 数据滚动浏览 |
|
|
876
|
+
| 滑动条 | 数据范围选择 |
|
|
877
|
+
| 标注 | 数据标注和辅助线 |
|
|
878
|
+
|
|
879
|
+
> **详细文档**: [标题](references/components/g2-comp-title.md) | [标签](references/components/g2-comp-label-config.md) | [滚动条](references/components/g2-comp-scrollbar.md) | [滑动条](references/components/g2-comp-slider.md) | [标注](references/components/g2-comp-annotation.md)
|
|
880
|
+
|
|
881
|
+
---
|
|
882
|
+
|
|
883
|
+
## 11. Scales / 比例尺
|
|
884
|
+
|
|
885
|
+
比例尺将数据值映射到视觉通道,如位置、颜色、大小等。
|
|
886
|
+
|
|
887
|
+
### 11.1 ⚠️ 默认行为(不要过度指定 type)
|
|
888
|
+
|
|
889
|
+
**G2 会根据数据类型自动推断 scale 类型,非特殊情况下不要手动指定 type:**
|
|
890
|
+
|
|
891
|
+
| 数据类型 | 自动推断的 scale | 示例 |
|
|
892
|
+
|---------|-----------------|------|
|
|
893
|
+
| 数值字段 | `linear` | `{ value: 100 }` → linear |
|
|
894
|
+
| 分类字段 | `band` | `{ category: 'A' }` → band |
|
|
895
|
+
| Date 对象 | `time` | `{ date: new Date() }` → time |
|
|
896
|
+
|
|
897
|
+
```javascript
|
|
898
|
+
// ❌ 错误:不必要的 type 指定,可能导致渲染异常
|
|
899
|
+
chart.options({
|
|
900
|
+
scale: {
|
|
901
|
+
x: { type: 'linear' }, // ❌ 数值字段默认就是 linear
|
|
902
|
+
y: { type: 'linear' }, // ❌ 不需要指定
|
|
903
|
+
},
|
|
904
|
+
});
|
|
905
|
+
|
|
906
|
+
// ✅ 正确:让 G2 自动推断,只在需要时配置 domain/range
|
|
907
|
+
chart.options({
|
|
908
|
+
scale: {
|
|
909
|
+
y: { domain: [0, 100] }, // ✅ 只配置需要的属性
|
|
910
|
+
color: { range: ['#1890ff', '#52c41a'] },
|
|
911
|
+
},
|
|
912
|
+
});
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
**需要手动指定 type 的特殊情况:**
|
|
916
|
+
|
|
917
|
+
| 场景 | type | 说明 |
|
|
918
|
+
|------|------|------|
|
|
919
|
+
| 对数刻度 | `log` | 跨数量级数据 |
|
|
920
|
+
| 幂函数刻度 | `pow` | 非线性数据映射 |
|
|
921
|
+
| 平方根刻度 | `sqrt` | 非负数据的压缩 |
|
|
922
|
+
| 字符串日期 | `time` | 日期字段是字符串而非 Date 对象时 |
|
|
923
|
+
| 自定义映射 | `ordinal` | 离散值到离散值 |
|
|
924
|
+
| 渐变色 | `sequential` | 连续数值到颜色渐变 |
|
|
925
|
+
| 分段映射 | `threshold` | 按阈值分段映射到颜色 |
|
|
926
|
+
| 等量分段 | `quantize` / `quantile` | 连续数据离散化 |
|
|
927
|
+
|
|
928
|
+
### 11.2 比例尺类型
|
|
929
|
+
|
|
930
|
+
| 比例尺 | 类型 | 用途 |
|
|
931
|
+
|--------|------|------|
|
|
932
|
+
| 线性 | `linear` | 连续数值映射(默认) |
|
|
933
|
+
| 分类 | `band` | 离散分类映射(默认) |
|
|
934
|
+
| 点 | `point` | 离散点位置映射 |
|
|
935
|
+
| 时间 | `time` | 时间数据映射 |
|
|
936
|
+
| 对数 | `log` | 对数刻度 |
|
|
937
|
+
| 幂/平方根 | `pow` / `sqrt` | 幂函数/平方根映射 |
|
|
938
|
+
| 序数 | `ordinal` | 离散值到离散值映射 |
|
|
939
|
+
| 顺序 | `sequential` | 连续值到颜色渐变 |
|
|
940
|
+
| 分位数/量化 | `quantile` / `quantize` | 连续数据离散化映射 |
|
|
941
|
+
| 阈值 | `threshold` | 按阈值分段映射 |
|
|
942
|
+
|
|
943
|
+
> **详细文档**: [linear](references/scales/g2-scale-linear.md) | [band](references/scales/g2-scale-band.md) | [point](references/scales/g2-scale-point.md) | [time](references/scales/g2-scale-time.md) | [log](references/scales/g2-scale-log.md) | [pow/sqrt](references/scales/g2-scale-pow-sqrt.md) | [ordinal](references/scales/g2-scale-ordinal.md) | [sequential](references/scales/g2-scale-sequential.md) | [quantile/quantize](references/scales/g2-scale-quantile-quantize.md) | [threshold](references/scales/g2-scale-threshold.md)
|
|
944
|
+
|
|
945
|
+
---
|
|
946
|
+
|
|
947
|
+
## 12. Coordinates / 坐标系
|
|
948
|
+
|
|
949
|
+
坐标系定义数据到画布位置的映射方式,不同坐标系产生不同图表形态。
|
|
950
|
+
|
|
951
|
+
| 坐标系 | 类型 | 用途 |
|
|
952
|
+
|--------|------|------|
|
|
953
|
+
| 笛卡尔 | `cartesian` | 直角坐标系(默认) |
|
|
954
|
+
| 极坐标 | `polar` | 雷达图、玫瑰图 |
|
|
955
|
+
| Theta | `theta` | 饼图、环形图 |
|
|
956
|
+
| 径向 | `radial` | 径向坐标系,玉珏图 |
|
|
957
|
+
| 转置 | `transpose` | X/Y 轴交换 |
|
|
958
|
+
| 平行 | `parallel` | 平行坐标系 |
|
|
959
|
+
| 螺旋 | `helix` | 螺旋坐标系 |
|
|
960
|
+
| 鱼眼 | `fisheye` | 局部放大效果 |
|
|
961
|
+
|
|
962
|
+
> **详细文档**: [cartesian](references/coordinates/g2-coord-cartesian.md) | [polar](references/coordinates/g2-coord-polar.md) | [theta](references/coordinates/g2-coord-theta.md) | [radial](references/coordinates/g2-coord-radial.md) | [transpose](references/coordinates/g2-coord-transpose.md) | [parallel](references/coordinates/g2-coord-parallel.md) | [helix](references/coordinates/g2-coord-helix.md) | [fisheye](references/coordinates/g2-coord-fisheye.md)
|
|
963
|
+
|
|
964
|
+
---
|
|
965
|
+
|
|
966
|
+
## 13. Compositions / 组合视图
|
|
967
|
+
|
|
968
|
+
组合视图用于创建多图表布局,如分面、多视图叠加等。
|
|
969
|
+
|
|
970
|
+
| 组合 | 类型 | 用途 |
|
|
971
|
+
|------|------|------|
|
|
972
|
+
| 基础视图 | `view` | 单视图容器,组合多个 mark |
|
|
973
|
+
| 分面图 | `facetRect` | 按维度拆分矩形网格多图 |
|
|
974
|
+
| 圆形分面 | `facetCircle` | 按维度拆分环形多图 |
|
|
975
|
+
| 重复矩阵 | `repeatMatrix` | 多变量组合矩阵图 |
|
|
976
|
+
| 空间层叠 | `spaceLayer` | 多图层叠加 |
|
|
977
|
+
| 空间弹性 | `spaceFlex` | 弹性布局 |
|
|
978
|
+
| 时间关键帧 | `timingKeyframe` | 动画序列 |
|
|
979
|
+
| 地理视图 | `geoView` | 地理坐标系视图 |
|
|
980
|
+
| 地图 | `geoPath` | 地理路径绘制 |
|
|
981
|
+
|
|
982
|
+
> **详细文档**: [view](references/compositions/g2-comp-view.md) | [facetRect](references/compositions/g2-comp-facet-rect.md) | [facetCircle](references/compositions/g2-comp-facet-circle.md) | [repeatMatrix](references/compositions/g2-comp-repeat-matrix.md) | [spaceLayer](references/compositions/g2-comp-space-layer.md) | [spaceFlex](references/compositions/g2-comp-space-flex.md) | [timingKeyframe](references/compositions/g2-comp-timing-keyframe.md) | [geoView](references/compositions/g2-comp-geoview.md) | [地图](references/compositions/g2-comp-geo-map.md)
|
|
983
|
+
|
|
984
|
+
---
|
|
985
|
+
|
|
986
|
+
## 14. Themes / 主题
|
|
987
|
+
|
|
988
|
+
主题定义图表的整体视觉风格,包括颜色、字体、间距等。
|
|
989
|
+
|
|
990
|
+
> **详细文档**: [内置主题](references/themes/g2-theme-builtin.md) | [自定义主题](references/themes/g2-theme-custom.md)
|
|
991
|
+
|
|
992
|
+
---
|
|
993
|
+
|
|
994
|
+
## 15. Palettes / 调色板
|
|
995
|
+
|
|
996
|
+
调色板定义颜色序列,用于分类数据或连续数据的颜色映射。
|
|
997
|
+
|
|
998
|
+
> **详细文档**: [category10](references/palette/g2-palette-category10.md) | [category20](references/palette/g2-palette-category20.md)
|
|
999
|
+
|
|
1000
|
+
---
|
|
1001
|
+
|
|
1002
|
+
## 16. Animations / 动画
|
|
1003
|
+
|
|
1004
|
+
动画增强图表的表现力,支持入场、更新、退场动画配置。
|
|
1005
|
+
|
|
1006
|
+
**⚠️ 重要规则**:G2 底层自带默认动画效果,用户没有明确要求动画时**不要**添加 `animate` 配置。只有用户明确描述了动画需求(如"渐入动画"、"波浪入场"等)时,才查阅参考文档添加对应的 animate 配置。
|
|
1007
|
+
|
|
1008
|
+
> **详细文档**: [动画介绍](references/animations/g2-animation-intro.md) | [动画类型](references/animations/g2-animation-types.md) | [关键帧动画](references/animations/g2-animation-keyframe.md)
|
|
1009
|
+
|
|
1010
|
+
---
|
|
1011
|
+
|
|
1012
|
+
## 17. Label Transforms / 标签变换
|
|
1013
|
+
|
|
1014
|
+
标签变换用于处理标签重叠、溢出等问题,提升标签可读性。
|
|
1015
|
+
|
|
1016
|
+
| 变换 | 类型 | 用途 |
|
|
1017
|
+
|------|------|------|
|
|
1018
|
+
| 溢出隐藏 | `overflowHide` | 超出区域的标签隐藏 |
|
|
1019
|
+
| 重叠隐藏 | `overlapHide` | 重叠标签自动隐藏 |
|
|
1020
|
+
| 重叠偏移 | `overlapDodgeY` | 重叠标签 Y 方向偏移 |
|
|
1021
|
+
| 对比反转 | `contrastReverse` | 标签颜色自动反转以保证对比度 |
|
|
1022
|
+
| 溢出调整 | `exceedAdjust` | 超出画布边界的标签位置调整 |
|
|
1023
|
+
| 溢出描边 | `overflowStroke` | 溢出区域添加描边标记 |
|
|
1024
|
+
|
|
1025
|
+
> **详细文档**: [overflowHide](references/label-transform/g2-label-transform-overflow-hide.md) | [overlapHide](references/label-transform/g2-label-transform-overlap-hide.md) | [overlapDodgeY](references/label-transform/g2-label-transform-overlap-dodge-y.md) | [contrastReverse](references/label-transform/g2-label-transform-contrast-reverse.md) | [exceedAdjust](references/label-transform/g2-label-transform-exceed-adjust.md) | [overflowStroke](references/label-transform/g2-label-transform-overflow-stroke.md)
|
|
1026
|
+
|
|
1027
|
+
---
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
## 18. Patterns / 模式
|
|
1031
|
+
|
|
1032
|
+
模式是常见场景的最佳实践,包含迁移指南、性能优化、响应式适配等。
|
|
1033
|
+
|
|
1034
|
+
### 18.1 迁移指南 / Migration (v4 → v5)
|
|
1035
|
+
|
|
1036
|
+
| v4 (Deprecated) | v5 (Correct) |
|
|
1037
|
+
|-----------------|--------------|
|
|
1038
|
+
| `chart.source(data)` | `chart.options({ data })` |
|
|
1039
|
+
| `.position('x*y')` | `encode: { x: 'x', y: 'y' }` |
|
|
1040
|
+
| `.color('field')` | `encode: { color: 'field' }` |
|
|
1041
|
+
| `.adjust('stack')` | `transform: [{ type: 'stackY' }]` |
|
|
1042
|
+
| `.adjust('dodge')` | `transform: [{ type: 'dodgeX' }]` |
|
|
1043
|
+
| `label: {}` | `labels: [{}]` |
|
|
1044
|
+
|
|
1045
|
+
> **详细文档**: [v4 → v5 迁移](references/patterns/g2-pattern-v4-to-v5.md)
|
|
1046
|
+
|
|
1047
|
+
### 18.2 性能优化 / Performance
|
|
1048
|
+
|
|
1049
|
+
数据预聚合、LTTB 降采样、Canvas 渲染器确认、高频实时数据节流更新。
|
|
1050
|
+
|
|
1051
|
+
| 场景 | 数据量 | 建议方案 |
|
|
1052
|
+
|------|--------|---------|
|
|
1053
|
+
| 折线图 | < 1,000 点 | 直接渲染 |
|
|
1054
|
+
| 折线图 | 1,000 ~ 10,000 点 | 降采样到 500 点以内 |
|
|
1055
|
+
| 折线图 | > 10,000 点 | 后端聚合 + 时间范围过滤 |
|
|
1056
|
+
| 散点图 | < 5,000 点 | 直接渲染 |
|
|
1057
|
+
| 散点图 | 5,000 ~ 50,000 点 | Canvas 渲染 + 降采样 |
|
|
1058
|
+
|
|
1059
|
+
> **详细文档**: [性能优化](references/patterns/g2-pattern-performance.md)
|
|
1060
|
+
|
|
1061
|
+
### 18.3 响应式适配 / Responsive
|
|
1062
|
+
|
|
1063
|
+
autoFit 自适应、ResizeObserver 动态调整、移动端字体/边距适配。
|
|
1064
|
+
|
|
1065
|
+
> **详细文档**: [响应式适配](references/patterns/g2-pattern-responsive.md)
|
|
1066
|
+
|
|
1067
|
+
---
|