跳至内容

什么是 D3?

D3(或 D3.js)是一个用于数据可视化的免费开源 JavaScript 库。它基于 Web 标准的低级方法提供了无与伦比的灵活性,可以创作动态的、数据驱动的图形。十多年来,D3 推动了突破性和屡获殊荣的可视化,成为更高级图表库的基础构建模块,并培养了全球数据从业者的充满活力的社区。

D3 “将该领域推向了前所未有的增长、多元化和创造力”,并“改变了新闻机构、网站和个人作品集中数百万数据可视化的创建方式”,信息是美丽 2022 年时间考验奖如是评论。IEEE VIS 2021 年时间考验奖指出,“通过创建一个让 Web 开发人员能够轻松地创作交互式可视化的框架,作者毫无疑问地帮助将数据可视化带入了主流。[D3] 是对本会议的基石贡献,更广泛地说,也是我们领域整体成功的基石。”

D3 由 Mike Bostock 于 2011 年创建。Mike 与斯坦福大学的 Jeff Heer 和 Vadim Ogievetsky 共同撰写了 D3 论文。Jason Davies 从 2011 年到 2013 年对 D3 做出了重大贡献,最值得注意的是对 D3 的地理投影系统的贡献。Philippe Rivière 从 2016 年起一直是 D3 及其文档的主要贡献者。多年来,无数善良的人通过分享代码和想法、通过教学和解答问题,以及通过将人们聚集在一起以促进可视化实践来为 D3 做出了贡献。Mike 和 Philippe 现在在 Observable 上维护 D3 和 Observable Plot

D3 是一个低级工具箱

D3 不是传统意义上的图表库。它没有“图表”的概念。当您使用 D3 可视化数据时,您会组合各种基元。

要制作一个 堆叠面积图,您可能会使用

有很多东西要学习,对吧?但深呼吸——您不必一次学习所有内容。每个部分都可以独立使用,因此您可以在将它们组合在一起之前单独学习它们。D3 不是一个单一的整体,而是一套 30 个独立的库(或“模块”)。我们出于方便而不是必要性将这些模块捆绑在一起,这样您在迭代设计时就可以触手可及。

D3 工具箱里都有些什么?我们建议您浏览文档和示例,以了解哪些与您相关。

/D3 - D3.js 数据可视化库/D3/Introduction - D3.js 数据可视化库/D3/Visualization - D3.js 数据可视化库/D3/Animation - D3.js 数据可视化库/D3/Interaction - D3.js 数据可视化库/D3/Data - D3.js 数据可视化库/D3/API index - D3.js 数据可视化库/D3/API index - D3.js 数据可视化库/D3/Introduction/What is D3? - D3.js 数据可视化库/D3/Introduction/What is D3? - D3.js 数据可视化库/D3/Introduction/Getting started - D3.js 数据可视化库/D3/Introduction/Getting started - D3.js 数据可视化库/D3/Visualization/d3-axis - D3.js 数据可视化库/D3/Visualization/d3-axis - D3.js 数据可视化库/D3/Visualization/d3-chord - D3.js 数据可视化库/D3/Visualization/d3-chord - D3.js 数据可视化库/D3/Visualization/d3-color - D3.js 数据可视化库/D3/Visualization/d3-color - D3.js 数据可视化库/D3/Visualization/d3-interpolate - D3.js 数据可视化库/D3/Visualization/d3-interpolate - D3.js 数据可视化库/D3/Visualization/d3-contour - D3.js 数据可视化库/D3/Visualization/d3-contour - D3.js 数据可视化库/D3/Visualization/d3-delaunay - D3.js 数据可视化库/D3/Visualization/d3-delaunay - D3.js 数据可视化库/D3/Visualization/d3-force - D3.js 数据可视化库/D3/Visualization/d3-force - D3.js 数据可视化库/D3/Visualization/d3-geo - D3.js 数据可视化库/D3/Visualization/d3-geo - D3.js 数据可视化库/D3/Visualization/d3-hierarchy - D3.js 数据可视化库/D3/Visualization/d3-hierarchy - D3.js 数据可视化库/D3/Visualization/d3-path - D3.js 数据可视化库/D3/Visualization/d3-path - D3.js 数据可视化库/D3/Visualization/d3-polygon - D3.js 数据可视化库/D3/Visualization/d3-polygon - D3.js 数据可视化库/D3/Visualization/d3-quadtree - D3.js 数据可视化库/D3/Visualization/d3-quadtree - D3.js 数据可视化库/D3/Visualization/d3-scale - D3.js 数据可视化库/D3/Visualization/d3-scale - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic - D3.js 数据可视化库/D3/Visualization/d3-selection - D3.js 数据可视化库/D3/Visualization/d3-selection - D3.js 数据可视化库/D3/Visualization/d3-shape - D3.js 数据可视化库/D3/Visualization/d3-shape - D3.js 数据可视化库/D3/Animation/d3-ease - D3.js 数据可视化库/D3/Animation/d3-ease - D3.js 数据可视化库/D3/Animation/d3-timer - D3.js 数据可视化库/D3/Animation/d3-timer - D3.js 数据可视化库/D3/Animation/d3-transition - D3.js 数据可视化库/D3/Animation/d3-transition - D3.js 数据可视化库/D3/Interaction/d3-brush - D3.js 数据可视化库/D3/Interaction/d3-brush - D3.js 数据可视化库/D3/Interaction/d3-dispatch - D3.js 数据可视化库/D3/Interaction/d3-dispatch - D3.js 数据可视化库/D3/Interaction/d3-drag - D3.js 数据可视化库/D3/Interaction/d3-drag - D3.js 数据可视化库/D3/Interaction/d3-zoom - D3.js 数据可视化库/D3/Interaction/d3-zoom - D3.js 数据可视化库/D3/Data/d3-array - D3.js 数据可视化库/D3/Data/d3-array - D3.js 数据可视化库/D3/Data/d3-dsv - D3.js 数据可视化库/D3/Data/d3-dsv - D3.js 数据可视化库/D3/Data/d3-fetch - D3.js 数据可视化库/D3/Data/d3-fetch - D3.js 数据可视化库/D3/Data/d3-format - D3.js 数据可视化库/D3/Data/d3-format - D3.js 数据可视化库/D3/Data/d3-random - D3.js 数据可视化库/D3/Data/d3-random - D3.js 数据可视化库/D3/Data/d3-time - D3.js 数据可视化库/D3/Data/d3-time - D3.js 数据可视化库/D3/Data/d3-time-format - D3.js 数据可视化库/D3/Data/d3-time-format - D3.js 数据可视化库/D3/Visualization/d3-chord/Chords - D3.js 数据可视化库/D3/Visualization/d3-chord/Chords - D3.js 数据可视化库/D3/Visualization/d3-chord/Ribbons - D3.js 数据可视化库/D3/Visualization/d3-chord/Ribbons - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Value interpolation - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Value interpolation - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Color interpolation - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Color interpolation - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Transform interpolation - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Transform interpolation - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Zoom interpolation - D3.js 数据可视化库/D3/Visualization/d3-interpolate/Zoom interpolation - D3.js 数据可视化库/D3/Visualization/d3-contour/Contour polygons - D3.js 数据可视化库/D3/Visualization/d3-contour/Contour polygons - D3.js 数据可视化库/D3/Visualization/d3-contour/Density estimation - D3.js 数据可视化库/D3/Visualization/d3-contour/Density estimation - D3.js 数据可视化库/D3/Visualization/d3-delaunay/Delaunay triangulations - D3.js 数据可视化库/D3/Visualization/d3-delaunay/Delaunay triangulations - D3.js 数据可视化库/D3/Visualization/d3-delaunay/Voronoi diagrams - D3.js 数据可视化库/D3/Visualization/d3-delaunay/Voronoi diagrams - D3.js 数据可视化库/D3/Visualization/d3-force/Force simulations - D3.js 数据可视化库/D3/Visualization/d3-force/Force simulations - D3.js 数据可视化库/D3/Visualization/d3-force/Center force - D3.js 数据可视化库/D3/Visualization/d3-force/Center force - D3.js 数据可视化库/D3/Visualization/d3-force/Collide force - D3.js 数据可视化库/D3/Visualization/d3-force/Collide force - D3.js 数据可视化库/D3/Visualization/d3-force/Link force - D3.js 数据可视化库/D3/Visualization/d3-force/Link force - D3.js 数据可视化库/D3/Visualization/d3-force/Many-body force - D3.js 数据可视化库/D3/Visualization/d3-force/Many-body force - D3.js 数据可视化库/D3/Visualization/d3-force/Position forces - D3.js 数据可视化库/D3/Visualization/d3-force/Position forces - D3.js 数据可视化库/D3/Visualization/d3-geo/Paths - D3.js 数据可视化库/D3/Visualization/d3-geo/Paths - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections - D3.js 数据可视化库/D3/Visualization/d3-geo/Streams - D3.js 数据可视化库/D3/Visualization/d3-geo/Streams - D3.js 数据可视化库/D3/Visualization/d3-geo/Spherical shapes - D3.js 数据可视化库/D3/Visualization/d3-geo/Spherical shapes - D3.js 数据可视化库/D3/Visualization/d3-geo/Spherical math - D3.js 数据可视化库/D3/Visualization/d3-geo/Spherical math - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Hierarchies - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Hierarchies - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Stratify - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Stratify - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Tree - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Tree - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Cluster - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Cluster - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Partition - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Partition - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Pack - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Pack - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Treemap - D3.js 数据可视化库/D3/Visualization/d3-hierarchy/Treemap - D3.js 数据可视化库/D3/Visualization/d3-scale/Linear scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Linear scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Time scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Time scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Pow scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Pow scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Log scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Log scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Symlog scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Symlog scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Ordinal scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Ordinal scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Band scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Band scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Point scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Point scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Sequential scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Sequential scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Diverging scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Diverging scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Quantile scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Quantile scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Quantize scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Quantize scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Threshold scales - D3.js 数据可视化库/D3/Visualization/d3-scale/Threshold scales - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Categorical schemes - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Categorical schemes - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Cyclical schemes - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Cyclical schemes - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Diverging schemes - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Diverging schemes - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Sequential schemes - D3.js 数据可视化库/D3/Visualization/d3-scale-chromatic/Sequential schemes - D3.js 数据可视化库/D3/Visualization/d3-selection/Selecting elements - D3.js 数据可视化库/D3/Visualization/d3-selection/Selecting elements - D3.js 数据可视化库/D3/Visualization/d3-selection/Modifying elements - D3.js 数据可视化库/D3/Visualization/d3-selection/Modifying elements - D3.js 数据可视化库/D3/Visualization/d3-selection/Joining data - D3.js 数据可视化库/D3/Visualization/d3-selection/Joining data - D3.js 数据可视化库/D3/Visualization/d3-selection/Handling events - D3.js 数据可视化库/D3/Visualization/d3-selection/Handling events - D3.js 数据可视化库/D3/Visualization/d3-selection/Control flow - D3.js 数据可视化库/D3/Visualization/d3-selection/Control flow - D3.js 数据可视化库/D3/Visualization/d3-selection/Local variables - D3.js 数据可视化库/D3/Visualization/d3-selection/Local variables - D3.js 数据可视化库/D3/Visualization/d3-selection/Namespaces - D3.js 数据可视化库/D3/Visualization/d3-selection/Namespaces - D3.js 数据可视化库/D3/Visualization/d3-shape/Arcs - D3.js 数据可视化库/D3/Visualization/d3-shape/Arcs - D3.js 数据可视化库/D3/Visualization/d3-shape/Areas - D3.js 数据可视化库/D3/Visualization/d3-shape/Areas - D3.js 数据可视化库/D3/Visualization/d3-shape/Curves - D3.js 数据可视化库/D3/Visualization/d3-shape/Curves - D3.js 数据可视化库/D3/Visualization/d3-shape/Lines - D3.js 数据可视化库/D3/Visualization/d3-shape/Lines - D3.js 数据可视化库/D3/Visualization/d3-shape/Links - D3.js 数据可视化库/D3/Visualization/d3-shape/Links - D3.js 数据可视化库/D3/Visualization/d3-shape/Pies - D3.js 数据可视化库/D3/Visualization/d3-shape/Pies - D3.js 数据可视化库/D3/Visualization/d3-shape/Stacks - D3.js 数据可视化库/D3/Visualization/d3-shape/Stacks - D3.js 数据可视化库/D3/Visualization/d3-shape/Symbols - D3.js 数据可视化库/D3/Visualization/d3-shape/Symbols - D3.js 数据可视化库/D3/Visualization/d3-shape/Radial areas - D3.js 数据可视化库/D3/Visualization/d3-shape/Radial areas - D3.js 数据可视化库/D3/Visualization/d3-shape/Radial lines - D3.js 数据可视化库/D3/Visualization/d3-shape/Radial lines - D3.js 数据可视化库/D3/Visualization/d3-shape/Radial links - D3.js 数据可视化库/D3/Visualization/d3-shape/Radial links - D3.js 数据可视化库/D3/Animation/d3-transition/Selecting elements - D3.js 数据可视化库/D3/Animation/d3-transition/Selecting elements - D3.js 数据可视化库/D3/Animation/d3-transition/Modifying elements - D3.js 数据可视化库/D3/Animation/d3-transition/Modifying elements - D3.js 数据可视化库/D3/Animation/d3-transition/Timing - D3.js 数据可视化库/D3/Animation/d3-transition/Timing - D3.js 数据可视化库/D3/Animation/d3-transition/Control flow - D3.js 数据可视化库/D3/Animation/d3-transition/Control flow - D3.js 数据可视化库/D3/Data/d3-array/Adding numbers - D3.js 数据可视化库/D3/Data/d3-array/Adding numbers - D3.js 数据可视化库/D3/Data/d3-array/Binning data - D3.js 数据可视化库/D3/Data/d3-array/Binning data - D3.js 数据可视化库/D3/Data/d3-array/Bisecting data - D3.js 数据可视化库/D3/Data/d3-array/Bisecting data - D3.js 数据可视化库/D3/Data/d3-array/Blurring data - D3.js 数据可视化库/D3/Data/d3-array/Blurring data - D3.js 数据可视化库/D3/Data/d3-array/Grouping data - D3.js 数据可视化库/D3/Data/d3-array/Grouping data - D3.js 数据可视化库/D3/Data/d3-array/Interning values - D3.js 数据可视化库/D3/Data/d3-array/Interning values - D3.js 数据可视化库/D3/Data/d3-array/Set operations - D3.js 数据可视化库/D3/Data/d3-array/Set operations - D3.js 数据可视化库/D3/Data/d3-array/Sorting data - D3.js 数据可视化库/D3/Data/d3-array/Sorting data - D3.js 数据可视化库/D3/Data/d3-array/Summarizing data - D3.js 数据可视化库/D3/Data/d3-array/Summarizing data - D3.js 数据可视化库/D3/Data/d3-array/Ticks - D3.js 数据可视化库/D3/Data/d3-array/Ticks - D3.js 数据可视化库/D3/Data/d3-array/Transforming data - D3.js 数据可视化库/D3/Data/d3-array/Transforming data - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections/Azimuthal projections - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections/Azimuthal projections - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections/Conic projections - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections/Conic projections - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections/Cylindrical projections - D3.js 数据可视化库/D3/Visualization/d3-geo/Projections/Cylindrical projections - D3.js 数据可视化库API index/D3/API index - D3.js 数据可视化库API index/D3/API index - D3.js 数据可视化库What is D3?/D3/Introduction/What is D3? - D3.js 数据可视化库What is D3?/D3/Introduction/What is D3? - D3.js 数据可视化库Getting started/D3/Introduction/Getting started - D3.js 数据可视化库Getting started/D3/Introduction/Getting started - D3.js 数据可视化库d3-axis/D3/Visualization/d3-axis - D3.js 数据可视化库d3-axis/D3/Visualization/d3-axis - D3.js 数据可视化库d3-color/D3/Visualization/d3-color - D3.js 数据可视化库d3-color/D3/Visualization/d3-color - D3.js 数据可视化库d3-path/D3/Visualization/d3-path - D3.js 数据可视化库d3-path/D3/Visualization/d3-path - D3.js 数据可视化库d3-polygon/D3/Visualization/d3-polygon - D3.js 数据可视化库d3-polygon/D3/Visualization/d3-polygon - D3.js 数据可视化库d3-quadtree/D3/Visualization/d3-quadtree - D3.js 数据可视化库d3-quadtree/D3/Visualization/d3-quadtree - D3.js 数据可视化库d3-ease/D3/Animation/d3-ease - D3.js 数据可视化库d3-ease/D3/Animation/d3-ease - D3.js 数据可视化库d3-timer/D3/Animation/d3-timer - D3.js 数据可视化库d3-timer/D3/Animation/d3-timer - D3.js 数据可视化库d3-brush/D3/Interaction/d3-brush - D3.js 数据可视化库d3-brush/D3/Interaction/d3-brush - D3.js 数据可视化库d3-dispatch/D3/Interaction/d3-dispatch - D3.js 数据可视化库d3-dispatch/D3/Interaction/d3-dispatch - D3.js 数据可视化库d3-drag/D3/Interaction/d3-drag - D3.js 数据可视化库d3-drag/D3/Interaction/d3-drag - D3.js 数据可视化库d3-zoom/D3/Interaction/d3-zoom - D3.js 数据可视化库d3-zoom/D3/Interaction/d3-zoom - D3.js 数据可视化库d3-dsv/D3/Data/d3-dsv - D3.js 数据可视化库d3-dsv/D3/Data/d3-dsv - D3.js 数据可视化库d3-fetch/D3/Data/d3-fetch - D3.js 数据可视化库d3-fetch/D3/Data/d3-fetch - D3.js 数据可视化库d3-format/D3/Data/d3-format - D3.js 数据可视化库d3-format/D3/Data/d3-format - D3.js 数据可视化库d3-random/D3/Data/d3-random - D3.js 数据可视化库d3-random/D3/Data/d3-random - D3.js 数据可视化库d3-time/D3/Data/d3-time - D3.js 数据可视化库d3-time/D3/Data/d3-time - D3.js 数据可视化库d3-time-format/D3/Data/d3-time-format - D3.js 数据可视化库d3-time-format/D3/Data/d3-time-format - D3.js 数据可视化库Chords/D3/Visualization/d3-chord/Chords - D3.js 数据可视化库Chords/D3/Visualization/d3-chord/Chords - D3.js 数据可视化库Ribbons/D3/Visualization/d3-chord/Ribbons - D3.js 数据可视化库Ribbons/D3/Visualization/d3-chord/Ribbons - D3.js 数据可视化库Value interpolation/D3/Visualization/d3-interpolate/Value interpolation - D3.js 数据可视化库Value interpolation/D3/Visualization/d3-interpolate/Value interpolation - D3.js 数据可视化库Color interpolation/D3/Visualization/d3-interpolate/Color interpolation - D3.js 数据可视化库Color interpolation/D3/Visualization/d3-interpolate/Color interpolation - D3.js 数据可视化库Transform interpolation/D3/Visualization/d3-interpolate/Transform interpolation - D3.js 数据可视化库Transform interpolation/D3/Visualization/d3-interpolate/Transform interpolation - D3.js 数据可视化库Zoom interpolation/D3/Visualization/d3-interpolate/Zoom interpolation - D3.js 数据可视化库Zoom interpolation/D3/Visualization/d3-interpolate/Zoom interpolation - D3.js 数据可视化库Contour polygons/D3/Visualization/d3-contour/Contour polygons - D3.js 数据可视化库Contour polygons/D3/Visualization/d3-contour/Contour polygons - D3.js 数据可视化库Density estimation/D3/Visualization/d3-contour/Density estimation - D3.js 数据可视化库Density estimation/D3/Visualization/d3-contour/Density estimation - D3.js 数据可视化库Delaunay triangulations/D3/Visualization/d3-delaunay/Delaunay triangulations - D3.js 数据可视化库Delaunay triangulations/D3/Visualization/d3-delaunay/Delaunay triangulations - D3.js 数据可视化库Voronoi diagrams/D3/Visualization/d3-delaunay/Voronoi diagrams - D3.js 数据可视化库Voronoi diagrams/D3/Visualization/d3-delaunay/Voronoi diagrams - D3.js 数据可视化库Force simulations/D3/Visualization/d3-force/Force simulations - D3.js 数据可视化库Force simulations/D3/Visualization/d3-force/Force simulations - D3.js 数据可视化库Center force/D3/Visualization/d3-force/Center force - D3.js 数据可视化库Center force/D3/Visualization/d3-force/Center force - D3.js 数据可视化库Collide force/D3/Visualization/d3-force/Collide force - D3.js 数据可视化库Collide force/D3/Visualization/d3-force/Collide force - D3.js 数据可视化库Link force/D3/Visualization/d3-force/Link force - D3.js 数据可视化库Link force/D3/Visualization/d3-force/Link force - D3.js 数据可视化库Many-body force/D3/Visualization/d3-force/Many-body force - D3.js 数据可视化库Many-body force/D3/Visualization/d3-force/Many-body force - D3.js 数据可视化库Position forces/D3/Visualization/d3-force/Position forces - D3.js 数据可视化库Position forces/D3/Visualization/d3-force/Position forces - D3.js 数据可视化库Paths/D3/Visualization/d3-geo/Paths - D3.js 数据可视化库Paths/D3/Visualization/d3-geo/Paths - D3.js 数据可视化库Streams/D3/Visualization/d3-geo/Streams - D3.js 数据可视化库Streams/D3/Visualization/d3-geo/Streams - D3.js 数据可视化库Spherical shapes/D3/Visualization/d3-geo/Spherical shapes - D3.js 数据可视化库Spherical shapes/D3/Visualization/d3-geo/Spherical shapes - D3.js 数据可视化库Spherical math/D3/Visualization/d3-geo/Spherical math - D3.js 数据可视化库Spherical math/D3/Visualization/d3-geo/Spherical math - D3.js 数据可视化库Hierarchies/D3/Visualization/d3-hierarchy/Hierarchies - D3.js 数据可视化库Hierarchies/D3/Visualization/d3-hierarchy/Hierarchies - D3.js 数据可视化库Stratify/D3/Visualization/d3-hierarchy/Stratify - D3.js 数据可视化库Stratify/D3/Visualization/d3-hierarchy/Stratify - D3.js 数据可视化库Tree/D3/Visualization/d3-hierarchy/Tree - D3.js 数据可视化库Tree/D3/Visualization/d3-hierarchy/Tree - D3.js 数据可视化库Cluster/D3/Visualization/d3-hierarchy/Cluster - D3.js 数据可视化库Cluster/D3/Visualization/d3-hierarchy/Cluster - D3.js 数据可视化库Partition/D3/Visualization/d3-hierarchy/Partition - D3.js 数据可视化库Partition/D3/Visualization/d3-hierarchy/Partition - D3.js 数据可视化库Pack/D3/Visualization/d3-hierarchy/Pack - D3.js 数据可视化库Pack/D3/Visualization/d3-hierarchy/Pack - D3.js 数据可视化库Treemap/D3/Visualization/d3-hierarchy/Treemap - D3.js 数据可视化库Treemap/D3/Visualization/d3-hierarchy/Treemap - D3.js 数据可视化库Linear scales/D3/Visualization/d3-scale/Linear scales - D3.js 数据可视化库Linear scales/D3/Visualization/d3-scale/Linear scales - D3.js 数据可视化库Time scales/D3/Visualization/d3-scale/Time scales - D3.js 数据可视化库Time scales/D3/Visualization/d3-scale/Time scales - D3.js 数据可视化库Pow scales/D3/Visualization/d3-scale/Pow scales - D3.js 数据可视化库Pow scales/D3/Visualization/d3-scale/Pow scales - D3.js 数据可视化库Log scales/D3/Visualization/d3-scale/Log scales - D3.js 数据可视化库Log scales/D3/Visualization/d3-scale/Log scales - D3.js 数据可视化库Symlog scales/D3/Visualization/d3-scale/Symlog scales - D3.js 数据可视化库Symlog scales/D3/Visualization/d3-scale/Symlog scales - D3.js 数据可视化库Ordinal scales/D3/Visualization/d3-scale/Ordinal scales - D3.js 数据可视化库Ordinal scales/D3/Visualization/d3-scale/Ordinal scales - D3.js 数据可视化库Band scales/D3/Visualization/d3-scale/Band scales - D3.js 数据可视化库Band scales/D3/Visualization/d3-scale/Band scales - D3.js 数据可视化库Point scales/D3/Visualization/d3-scale/Point scales - D3.js 数据可视化库Point scales/D3/Visualization/d3-scale/Point scales - D3.js 数据可视化库Sequential scales/D3/Visualization/d3-scale/Sequential scales - D3.js 数据可视化库Sequential scales/D3/Visualization/d3-scale/Sequential scales - D3.js 数据可视化库Diverging scales/D3/Visualization/d3-scale/Diverging scales - D3.js 数据可视化库Diverging scales/D3/Visualization/d3-scale/Diverging scales - D3.js 数据可视化库Quantile scales/D3/Visualization/d3-scale/Quantile scales - D3.js 数据可视化库Quantile scales/D3/Visualization/d3-scale/Quantile scales - D3.js 数据可视化库Quantize scales/D3/Visualization/d3-scale/Quantize scales - D3.js 数据可视化库Quantize scales/D3/Visualization/d3-scale/Quantize scales - D3.js 数据可视化库Threshold scales/D3/Visualization/d3-scale/Threshold scales - D3.js 数据可视化库Threshold scales/D3/Visualization/d3-scale/Threshold scales - D3.js 数据可视化库Categorical schemes/D3/Visualization/d3-scale-chromatic/Categorical schemes - D3.js 数据可视化库Categorical schemes/D3/Visualization/d3-scale-chromatic/Categorical schemes - D3.js 数据可视化库Cyclical schemes/D3/Visualization/d3-scale-chromatic/Cyclical schemes - D3.js 数据可视化库Cyclical schemes/D3/Visualization/d3-scale-chromatic/Cyclical schemes - D3.js 数据可视化库Diverging schemes/D3/Visualization/d3-scale-chromatic/Diverging schemes - D3.js 数据可视化库Diverging schemes/D3/Visualization/d3-scale-chromatic/Diverging schemes - D3.js 数据可视化库Sequential schemes/D3/Visualization/d3-scale-chromatic/Sequential schemes - D3.js 数据可视化库Sequential schemes/D3/Visualization/d3-scale-chromatic/Sequential schemes - D3.js 数据可视化库Selecting elements/D3/Visualization/d3-selection/Selecting elements - D3.js 数据可视化库Selecting elements/D3/Visualization/d3-selection/Selecting elements - D3.js 数据可视化库Modifying elements/D3/Visualization/d3-selection/Modifying elements - D3.js 数据可视化库Modifying elements/D3/Visualization/d3-selection/Modifying elements - D3.js 数据可视化库Joining data/D3/Visualization/d3-selection/Joining data - D3.js 数据可视化库Joining data/D3/Visualization/d3-selection/Joining data - D3.js 数据可视化库Handling events/D3/Visualization/d3-selection/Handling events - D3.js 数据可视化库Handling events/D3/Visualization/d3-selection/Handling events - D3.js 数据可视化库Control flow/D3/Visualization/d3-selection/Control flow - D3.js 数据可视化库Control flow/D3/Visualization/d3-selection/Control flow - D3.js 数据可视化库Local variables/D3/Visualization/d3-selection/Local variables - D3.js 数据可视化库Local variables/D3/Visualization/d3-selection/Local variables - D3.js 数据可视化库Namespaces/D3/Visualization/d3-selection/Namespaces - D3.js 数据可视化库Namespaces/D3/Visualization/d3-selection/Namespaces - D3.js 数据可视化库Arcs/D3/Visualization/d3-shape/Arcs - D3.js 数据可视化库Arcs/D3/Visualization/d3-shape/Arcs - D3.js 数据可视化库Areas/D3/Visualization/d3-shape/Areas - D3.js 数据可视化库Areas/D3/Visualization/d3-shape/Areas - D3.js 数据可视化库Curves/D3/Visualization/d3-shape/Curves - D3.js 数据可视化库Curves/D3/Visualization/d3-shape/Curves - D3.js 数据可视化库Lines/D3/Visualization/d3-shape/Lines - D3.js 数据可视化库Lines/D3/Visualization/d3-shape/Lines - D3.js 数据可视化库Links/D3/Visualization/d3-shape/Links - D3.js 数据可视化库Links/D3/Visualization/d3-shape/Links - D3.js 数据可视化库Pies/D3/Visualization/d3-shape/Pies - D3.js 数据可视化库Pies/D3/Visualization/d3-shape/Pies - D3.js 数据可视化库Stacks/D3/Visualization/d3-shape/Stacks - D3.js 数据可视化库Stacks/D3/Visualization/d3-shape/Stacks - D3.js 数据可视化库Symbols/D3/Visualization/d3-shape/Symbols - D3.js 数据可视化库Symbols/D3/Visualization/d3-shape/Symbols - D3.js 数据可视化库Radial areas/D3/Visualization/d3-shape/Radial areas - D3.js 数据可视化库Radial areas/D3/Visualization/d3-shape/Radial areas - D3.js 数据可视化库Radial lines/D3/Visualization/d3-shape/Radial lines - D3.js 数据可视化库Radial lines/D3/Visualization/d3-shape/Radial lines - D3.js 数据可视化库Radial links/D3/Visualization/d3-shape/Radial links - D3.js 数据可视化库Radial links/D3/Visualization/d3-shape/Radial links - D3.js 数据可视化库Selecting elements/D3/Animation/d3-transition/Selecting elements - D3.js 数据可视化库Selecting elements/D3/Animation/d3-transition/Selecting elements - D3.js 数据可视化库Modifying elements/D3/Animation/d3-transition/Modifying elements - D3.js 数据可视化库Modifying elements/D3/Animation/d3-transition/Modifying elements - D3.js 数据可视化库Timing/D3/Animation/d3-transition/Timing - D3.js 数据可视化库Timing/D3/Animation/d3-transition/Timing - D3.js 数据可视化库Control flow/D3/Animation/d3-transition/Control flow - D3.js 数据可视化库Control flow/D3/Animation/d3-transition/Control flow - D3.js 数据可视化库Adding numbers/D3/Data/d3-array/Adding numbers - D3.js 数据可视化库Adding numbers/D3/Data/d3-array/Adding numbers - D3.js 数据可视化库Binning data/D3/Data/d3-array/Binning data - D3.js 数据可视化库Binning data/D3/Data/d3-array/Binning data - D3.js 数据可视化库Bisecting data/D3/Data/d3-array/Bisecting data - D3.js 数据可视化库Bisecting data/D3/Data/d3-array/Bisecting data - D3.js 数据可视化库Blurring data/D3/Data/d3-array/Blurring data - D3.js 数据可视化库Blurring data/D3/Data/d3-array/Blurring data - D3.js 数据可视化库Grouping data/D3/Data/d3-array/Grouping data - D3.js 数据可视化库Grouping data/D3/Data/d3-array/Grouping data - D3.js 数据可视化库Interning values/D3/Data/d3-array/Interning values - D3.js 数据可视化库Interning values/D3/Data/d3-array/Interning values - D3.js 数据可视化库Set operations/D3/Data/d3-array/Set operations - D3.js 数据可视化库Set operations/D3/Data/d3-array/Set operations - D3.js 数据可视化库Sorting data/D3/Data/d3-array/Sorting data - D3.js 数据可视化库Sorting data/D3/Data/d3-array/Sorting data - D3.js 数据可视化库Summarizing data/D3/Data/d3-array/Summarizing data - D3.js 数据可视化库Summarizing data/D3/Data/d3-array/Summarizing data - D3.js 数据可视化库Ticks/D3/Data/d3-array/Ticks - D3.js 数据可视化库Ticks/D3/Data/d3-array/Ticks - D3.js 数据可视化库Transforming data/D3/Data/d3-array/Transforming data - D3.js 数据可视化库Transforming data/D3/Data/d3-array/Transforming data - D3.js 数据可视化库Azimuthal projections/D3/Visualization/d3-geo/Projections/Azimuthal projections - D3.js 数据可视化库Azimuthal projections/D3/Visualization/d3-geo/Projections/Azimuthal projections - D3.js 数据可视化库Conic projections/D3/Visualization/d3-geo/Projections/Conic projections - D3.js 数据可视化库Conic projections/D3/Visualization/d3-geo/Projections/Conic projections - D3.js 数据可视化库Cylindrical projections/D3/Visualization/d3-geo/Projections/Cylindrical projections - D3.js 数据可视化库Cylindrical projections/D3/Visualization/d3-geo/Projections/Cylindrical projections - D3.js 数据可视化库D3/D3 - D3.js 数据可视化库Introduction/D3/Introduction - D3.js 数据可视化库Visualization/D3/Visualization - D3.js 数据可视化库Animation/D3/Animation - D3.js 数据可视化库Interaction/D3/Interaction - D3.js 数据可视化库Data/D3/Data - D3.js 数据可视化库d3-chord/D3/Visualization/d3-chord - D3.js 数据可视化库d3-chord/D3/Visualization/d3-chord - D3.js 数据可视化库d3-interpolate/D3/Visualization/d3-interpolate - D3.js 数据可视化库d3-interpolate/D3/Visualization/d3-interpolate - D3.js 数据可视化库d3-contour/D3/Visualization/d3-contour - D3.js 数据可视化库d3-contour/D3/Visualization/d3-contour - D3.js 数据可视化库d3-delaunay/D3/Visualization/d3-delaunay - D3.js 数据可视化库d3-delaunay/D3/Visualization/d3-delaunay - D3.js 数据可视化库d3-force/D3/Visualization/d3-force - D3.js 数据可视化库d3-force/D3/Visualization/d3-force - D3.js 数据可视化库d3-geo/D3/Visualization/d3-geo - D3.js 数据可视化库d3-geo/D3/Visualization/d3-geo - D3.js 数据可视化库d3-hierarchy/D3/Visualization/d3-hierarchy - D3.js 数据可视化库d3-hierarchy/D3/Visualization/d3-hierarchy - D3.js 数据可视化库d3-scale/D3/Visualization/d3-scale - D3.js 数据可视化库d3-scale/D3/Visualization/d3-scale - D3.js 数据可视化库d3-scale-chromatic/D3/Visualization/d3-scale-chromatic - D3.js 数据可视化库d3-scale-chromatic/D3/Visualization/d3-scale-chromatic - D3.js 数据可视化库d3-selection/D3/Visualization/d3-selection - D3.js 数据可视化库d3-selection/D3/Visualization/d3-selection - D3.js 数据可视化库d3-shape/D3/Visualization/d3-shape - D3.js 数据可视化库d3-shape/D3/Visualization/d3-shape - D3.js 数据可视化库d3-transition/D3/Animation/d3-transition - D3.js 数据可视化库d3-transition/D3/Animation/d3-transition - D3.js 数据可视化库d3-array/D3/Data/d3-array - D3.js 数据可视化库d3-array/D3/Data/d3-array - D3.js 数据可视化库Projections/D3/Visualization/d3-geo/Projections - D3.js 数据可视化库Projections/D3/Visualization/d3-geo/Projections - D3.js 数据可视化库

提示

除非您需要 D3 的低级控制,否则我们建议使用我们高级的姐妹库:Observable Plot。在 D3 中,直方图可能需要 50 行代码,而 Plot 只需要一行代码!Plot 简洁但表达力强的 API 使您能够更多地专注于分析和可视化数据,而不是 Web 开发。您甚至可以将 Plot 和 D3 结合使用,以获得两者的优势。

D3 很灵活

由于 D3 没有“图表”的抽象概念,因此即使是最基本的图表也可能需要几十行代码。好处是,所有部分都摆在你面前,你可以完全控制发生的事情。您可以调整可视化效果以精确地实现您想要的效果。D3 没有您数据的默认演示——只有您自己编写的代码。(或从示例中复制。)

将 D3 视为“自己做所有事情”的替代方案,而不是高级图表库的替代方案。如果您对其他工具不满意,并且正在考虑使用 SVG 或 Canvas(甚至 WebGL)滚动自己的图表,那么您不妨浏览一下 D3 的工具箱!这里几乎肯定会有东西可以帮助您构建梦寐以求的图表,而不会影响您的创造力。

D3 与 Web 配合使用

D3 不会引入新的图形表示形式;相反,您可以直接使用 D3 与 Web 标准(例如 SVG 和 Canvas)配合使用。

名称“D3”是数据驱动的文档的缩写,其中文档指的是 文档对象模型 (DOM) 标准,它表示网页的内容。虽然 D3 的一些模块(例如 选择转换)涉及 DOM,但其他模块(包括 刻度形状)只对数据进行操作。D3 也可以与 React、Vue 和 Svelte 等 Web 框架配对;有关建议,请参阅 入门指南

D3 对 Web 标准的采用带来了许多好处。例如,您可以使用外部样式表来更改图表的外观(即使是响应媒体查询,例如响应式图表或深色模式);您可以使用调试器和元素检查器来查看您的代码在做什么;而 D3 的同步、命令式评估模型——立即调用 选择.attr 会修改 DOM——可以使其比具有复杂异步运行时的框架更容易调试。

D3 用于定制可视化

D3 使事情成为可能,但不一定容易;即使是一些应该很容易的事情,通常也不容易。用 Amanda Cox 的话说:“如果您认为为一个条形图编写一百行代码是完全正常的,那么就使用 D3。”

如果您需要为定制可视化提供最大的表现力,则应考虑使用 D3。D3 对像纽约时报The Pudding 等媒体机构很有意义,他们的单幅图形可能被一百万读者看到,并且编辑团队可以共同努力来推进视觉传达的艺术水平。

另一方面,对于拼凑私有仪表板或一次性分析而言,D3 过于复杂。不要被炫目的示例所吸引:它们中的许多都是经过巨大努力才实现的!如果您受到时间的限制(谁没有?),那么您更有可能使用 Observable Plot 制作出更好的可视化或分析结果。

D3 用于动态可视化

D3 最新颖的概念是它的 数据连接:给定一组数据和一组 DOM 元素,数据连接允许您对进入更新退出元素应用单独的操作。如果您只创建静态图表(不会动画化或响应用户输入的图表),您可能会发现这个概念不直观甚至很奇怪,因为它不需要。

数据连接存在是为了让您能够完全控制数据发生变化时会发生什么,并相应地更新显示。这种直接控制允许极其高效的更新——您只触碰需要更改的元素和属性,而不会对 DOM 进行差异化——以及状态之间平滑的动画转换。D3 非常适合动态、交互式可视化。(尝试在 “通往白宫的 512 条道路”(2012 年)中点击选项卡状态切换按钮。真的。)