用途:该技能面向使用 D3.js(Data-Driven Documents)创建动态、交互式数据可视化的场景。D3.js 通过 HTML、SVG、CSS 标准将数据绑定到 DOM 并进行数据驱动变换,适合标准图表库无法满足的自定义可视化、对每个视觉元素的精细控制、复杂交互与动画,以及大数据集(配合 Canvas)场景。若只需常规图表可考虑 Chart.js/Plotly,快速原型可用 Observable/Vega-Lite,3D 用 Three.js。
主要能力:数据绑定(.data()、enter/update/exit、.join()、key 函数);比例尺(linear、time、band、ordinal 等,含 .nice() 与倒置 y 轴 range);SVG 坐标系统与 margin 约定;路径与形状生成器(line、area、arc、力导向模拟);交互(工具提示、过渡动画 300-500ms、缩放/平移);响应式设计(viewBox、preserveAspectRatio、resize 加防抖);性能建议(少于 1000 元素用 SVG,超过用 Canvas;聚合或采样大数据)。
使用方式:可通过 CDN 引入 https://d3js.org/d3.v7.min.js 快速开始,或 npm install d3 后按模块导入。典型流程为设置尺寸与边距、创建 SVG、用 d3.csv 等加载并转换数据、创建比例尺与坐标轴、绘制图形并添加交互与响应式处理。技能附带 data-helpers.js、chart-templates.js 等脚本及 line-chart.html、bar-chart.html、network-graph.html 示例,另有 d3-fundamentals、scales-and-axes、paths-and-shapes、data-transformation、chart-types、advanced-patterns、common-pitfalls、integration-patterns 等参考文档。
适用场景与限制:适合时间序列、分类比较、关系、部分与整体、网络、分布等可视化,并强调无障碍(ARIA、键盘导航、色盲友好配色、对比度)与代码质量。限制:学习曲线陡峭;不适用于简单标准图表、快速原型、静态印刷图表与 3D 图形。具体收费、价格与平台支持情况暂未提供。