跳至內容

D3 是什麼?

D3(或 D3.js)是一個免費的開放原始碼 JavaScript 函式庫,用於資料視覺化。它基於網路標準的低階方法,在撰寫動態、資料驅動的圖形時提供了無與倫比的靈活性。十多年來,D3 一直推動著突破性和屢獲殊榮的視覺化,成為高級圖表函式庫的基本組成部分,並在全球培養了一個充滿活力的資料從業人員社群。

Information is Beautiful 2022 年時間考驗獎 評論道,D3「將該領域推向前所未有的成長、多元化和創造力」,並「改變了數百萬個資料視覺化在新聞編輯室、網站和個人作品集中的建立方式」。IEEE VIS 2021 年時間考驗獎 指出,「透過建立一個引人入勝且易於網路開發人員用來撰寫互動式視覺化的架構,作者們無可否認地幫助將資料視覺化帶入主流。[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/Introduction/D3/Visualization/D3/Animation/D3/Interaction/D3/Data/D3/API index/D3/API index/D3/Introduction/What is D3?/D3/Introduction/What is D3?/D3/Introduction/Getting started/D3/Introduction/Getting started/D3/Visualization/d3-axis/D3/Visualization/d3-axis/D3/Visualization/d3-chord/D3/Visualization/d3-chord/D3/Visualization/d3-color/D3/Visualization/d3-color/D3/Visualization/d3-interpolate/D3/Visualization/d3-interpolate/D3/Visualization/d3-contour/D3/Visualization/d3-contour/D3/Visualization/d3-delaunay/D3/Visualization/d3-delaunay/D3/Visualization/d3-force/D3/Visualization/d3-force/D3/Visualization/d3-geo/D3/Visualization/d3-geo/D3/Visualization/d3-hierarchy/D3/Visualization/d3-hierarchy/D3/Visualization/d3-path/D3/Visualization/d3-path/D3/Visualization/d3-polygon/D3/Visualization/d3-polygon/D3/Visualization/d3-quadtree/D3/Visualization/d3-quadtree/D3/Visualization/d3-scale/D3/Visualization/d3-scale/D3/Visualization/d3-scale-chromatic/D3/Visualization/d3-scale-chromatic/D3/Visualization/d3-selection/D3/Visualization/d3-selection/D3/Visualization/d3-shape/D3/Visualization/d3-shape/D3/Animation/d3-ease/D3/Animation/d3-ease/D3/Animation/d3-timer/D3/Animation/d3-timer/D3/Animation/d3-transition/D3/Animation/d3-transition/D3/Interaction/d3-brush/D3/Interaction/d3-brush/D3/Interaction/d3-dispatch/D3/Interaction/d3-dispatch/D3/Interaction/d3-drag/D3/Interaction/d3-drag/D3/Interaction/d3-zoom/D3/Interaction/d3-zoom/D3/Data/d3-array/D3/Data/d3-array/D3/Data/d3-dsv/D3/Data/d3-dsv/D3/Data/d3-fetch/D3/Data/d3-fetch/D3/Data/d3-format/D3/Data/d3-format/D3/Data/d3-random/D3/Data/d3-random/D3/Data/d3-time/D3/Data/d3-time/D3/Data/d3-time-format/D3/Data/d3-time-format/D3/Visualization/d3-chord/Chords/D3/Visualization/d3-chord/Chords/D3/Visualization/d3-chord/Ribbons/D3/Visualization/d3-chord/Ribbons/D3/Visualization/d3-interpolate/Value interpolation/D3/Visualization/d3-interpolate/Value interpolation/D3/Visualization/d3-interpolate/Color interpolation/D3/Visualization/d3-interpolate/Color interpolation/D3/Visualization/d3-interpolate/Transform interpolation/D3/Visualization/d3-interpolate/Transform interpolation/D3/Visualization/d3-interpolate/Zoom interpolation/D3/Visualization/d3-interpolate/Zoom interpolation/D3/Visualization/d3-contour/Contour polygons/D3/Visualization/d3-contour/Contour polygons/D3/Visualization/d3-contour/Density estimation/D3/Visualization/d3-contour/Density estimation/D3/Visualization/d3-delaunay/Delaunay triangulations/D3/Visualization/d3-delaunay/Delaunay triangulations/D3/Visualization/d3-delaunay/Voronoi diagrams/D3/Visualization/d3-delaunay/Voronoi diagrams/D3/Visualization/d3-force/Force simulations/D3/Visualization/d3-force/Force simulations/D3/Visualization/d3-force/Center force/D3/Visualization/d3-force/Center force/D3/Visualization/d3-force/Collide force/D3/Visualization/d3-force/Collide force/D3/Visualization/d3-force/Link force/D3/Visualization/d3-force/Link force/D3/Visualization/d3-force/Many-body force/D3/Visualization/d3-force/Many-body force/D3/Visualization/d3-force/Position forces/D3/Visualization/d3-force/Position forces/D3/Visualization/d3-geo/Paths/D3/Visualization/d3-geo/Paths/D3/Visualization/d3-geo/Projections/D3/Visualization/d3-geo/Projections/D3/Visualization/d3-geo/Streams/D3/Visualization/d3-geo/Streams/D3/Visualization/d3-geo/Spherical shapes/D3/Visualization/d3-geo/Spherical shapes/D3/Visualization/d3-geo/Spherical math/D3/Visualization/d3-geo/Spherical math/D3/Visualization/d3-hierarchy/Hierarchies/D3/Visualization/d3-hierarchy/Hierarchies/D3/Visualization/d3-hierarchy/Stratify/D3/Visualization/d3-hierarchy/Stratify/D3/Visualization/d3-hierarchy/Tree/D3/Visualization/d3-hierarchy/Tree/D3/Visualization/d3-hierarchy/Cluster/D3/Visualization/d3-hierarchy/Cluster/D3/Visualization/d3-hierarchy/Partition/D3/Visualization/d3-hierarchy/Partition/D3/Visualization/d3-hierarchy/Pack/D3/Visualization/d3-hierarchy/Pack/D3/Visualization/d3-hierarchy/Treemap/D3/Visualization/d3-hierarchy/Treemap/D3/Visualization/d3-scale/Linear scales/D3/Visualization/d3-scale/Linear scales/D3/Visualization/d3-scale/Time scales/D3/Visualization/d3-scale/Time scales/D3/Visualization/d3-scale/Pow scales/D3/Visualization/d3-scale/Pow scales/D3/Visualization/d3-scale/Log scales/D3/Visualization/d3-scale/Log scales/D3/Visualization/d3-scale/Symlog scales/D3/Visualization/d3-scale/Symlog scales/D3/Visualization/d3-scale/Ordinal scales/D3/Visualization/d3-scale/Ordinal scales/D3/Visualization/d3-scale/Band scales/D3/Visualization/d3-scale/Band scales/D3/Visualization/d3-scale/Point scales/D3/Visualization/d3-scale/Point scales/D3/Visualization/d3-scale/Sequential scales/D3/Visualization/d3-scale/Sequential scales/D3/Visualization/d3-scale/Diverging scales/D3/Visualization/d3-scale/Diverging scales/D3/Visualization/d3-scale/Quantile scales/D3/Visualization/d3-scale/Quantile scales/D3/Visualization/d3-scale/Quantize scales/D3/Visualization/d3-scale/Quantize scales/D3/Visualization/d3-scale/Threshold scales/D3/Visualization/d3-scale/Threshold scales/D3/Visualization/d3-scale-chromatic/Categorical schemes/D3/Visualization/d3-scale-chromatic/Categorical schemes/D3/Visualization/d3-scale-chromatic/Cyclical schemes/D3/Visualization/d3-scale-chromatic/Cyclical schemes/D3/Visualization/d3-scale-chromatic/Diverging schemes/D3/Visualization/d3-scale-chromatic/Diverging schemes/D3/Visualization/d3-scale-chromatic/Sequential schemes/D3/Visualization/d3-scale-chromatic/Sequential schemes/D3/Visualization/d3-selection/Selecting elements/D3/Visualization/d3-selection/Selecting elements/D3/Visualization/d3-selection/Modifying elements/D3/Visualization/d3-selection/Modifying elements/D3/Visualization/d3-selection/Joining data/D3/Visualization/d3-selection/Joining data/D3/Visualization/d3-selection/Handling events/D3/Visualization/d3-selection/Handling events/D3/Visualization/d3-selection/Control flow/D3/Visualization/d3-selection/Control flow/D3/Visualization/d3-selection/Local variables/D3/Visualization/d3-selection/Local variables/D3/Visualization/d3-selection/Namespaces/D3/Visualization/d3-selection/Namespaces/D3/Visualization/d3-shape/Arcs/D3/Visualization/d3-shape/Arcs/D3/Visualization/d3-shape/Areas/D3/Visualization/d3-shape/Areas/D3/Visualization/d3-shape/Curves/D3/Visualization/d3-shape/Curves/D3/Visualization/d3-shape/Lines/D3/Visualization/d3-shape/Lines/D3/Visualization/d3-shape/Links/D3/Visualization/d3-shape/Links/D3/Visualization/d3-shape/Pies/D3/Visualization/d3-shape/Pies/D3/Visualization/d3-shape/Stacks/D3/Visualization/d3-shape/Stacks/D3/Visualization/d3-shape/Symbols/D3/Visualization/d3-shape/Symbols/D3/Visualization/d3-shape/Radial areas/D3/Visualization/d3-shape/Radial areas/D3/Visualization/d3-shape/Radial lines/D3/Visualization/d3-shape/Radial lines/D3/Visualization/d3-shape/Radial links/D3/Visualization/d3-shape/Radial links/D3/Animation/d3-transition/Selecting elements/D3/Animation/d3-transition/Selecting elements/D3/Animation/d3-transition/Modifying elements/D3/Animation/d3-transition/Modifying elements/D3/Animation/d3-transition/Timing/D3/Animation/d3-transition/Timing/D3/Animation/d3-transition/Control flow/D3/Animation/d3-transition/Control flow/D3/Data/d3-array/Adding numbers/D3/Data/d3-array/Adding numbers/D3/Data/d3-array/Binning data/D3/Data/d3-array/Binning data/D3/Data/d3-array/Bisecting data/D3/Data/d3-array/Bisecting data/D3/Data/d3-array/Blurring data/D3/Data/d3-array/Blurring data/D3/Data/d3-array/Grouping data/D3/Data/d3-array/Grouping data/D3/Data/d3-array/Interning values/D3/Data/d3-array/Interning values/D3/Data/d3-array/Set operations/D3/Data/d3-array/Set operations/D3/Data/d3-array/Sorting data/D3/Data/d3-array/Sorting data/D3/Data/d3-array/Summarizing data/D3/Data/d3-array/Summarizing data/D3/Data/d3-array/Ticks/D3/Data/d3-array/Ticks/D3/Data/d3-array/Transforming data/D3/Data/d3-array/Transforming data/D3/Visualization/d3-geo/Projections/Azimuthal projections/D3/Visualization/d3-geo/Projections/Azimuthal projections/D3/Visualization/d3-geo/Projections/Conic projections/D3/Visualization/d3-geo/Projections/Conic projections/D3/Visualization/d3-geo/Projections/Cylindrical projections/D3/Visualization/d3-geo/Projections/Cylindrical projectionsAPI index/D3/API indexAPI index/D3/API indexWhat is D3?/D3/Introduction/What is D3?What is D3?/D3/Introduction/What is D3?Getting started/D3/Introduction/Getting startedGetting started/D3/Introduction/Getting startedd3-axis/D3/Visualization/d3-axisd3-axis/D3/Visualization/d3-axisd3-color/D3/Visualization/d3-colord3-color/D3/Visualization/d3-colord3-path/D3/Visualization/d3-pathd3-path/D3/Visualization/d3-pathd3-polygon/D3/Visualization/d3-polygond3-polygon/D3/Visualization/d3-polygond3-quadtree/D3/Visualization/d3-quadtreed3-quadtree/D3/Visualization/d3-quadtreed3-ease/D3/Animation/d3-eased3-ease/D3/Animation/d3-eased3-timer/D3/Animation/d3-timerd3-timer/D3/Animation/d3-timerd3-brush/D3/Interaction/d3-brushd3-brush/D3/Interaction/d3-brushd3-dispatch/D3/Interaction/d3-dispatchd3-dispatch/D3/Interaction/d3-dispatchd3-drag/D3/Interaction/d3-dragd3-drag/D3/Interaction/d3-dragd3-zoom/D3/Interaction/d3-zoomd3-zoom/D3/Interaction/d3-zoomd3-dsv/D3/Data/d3-dsvd3-dsv/D3/Data/d3-dsvd3-fetch/D3/Data/d3-fetchd3-fetch/D3/Data/d3-fetchd3-format/D3/Data/d3-formatd3-format/D3/Data/d3-formatd3-random/D3/Data/d3-randomd3-random/D3/Data/d3-randomd3-time/D3/Data/d3-timed3-time/D3/Data/d3-timed3-time-format/D3/Data/d3-time-formatd3-time-format/D3/Data/d3-time-formatChords/D3/Visualization/d3-chord/ChordsChords/D3/Visualization/d3-chord/ChordsRibbons/D3/Visualization/d3-chord/RibbonsRibbons/D3/Visualization/d3-chord/RibbonsValue interpolation/D3/Visualization/d3-interpolate/Value interpolationValue interpolation/D3/Visualization/d3-interpolate/Value interpolationColor interpolation/D3/Visualization/d3-interpolate/Color interpolationColor interpolation/D3/Visualization/d3-interpolate/Color interpolationTransform interpolation/D3/Visualization/d3-interpolate/Transform interpolationTransform interpolation/D3/Visualization/d3-interpolate/Transform interpolationZoom interpolation/D3/Visualization/d3-interpolate/Zoom interpolationZoom interpolation/D3/Visualization/d3-interpolate/Zoom interpolationContour polygons/D3/Visualization/d3-contour/Contour polygonsContour polygons/D3/Visualization/d3-contour/Contour polygonsDensity estimation/D3/Visualization/d3-contour/Density estimationDensity estimation/D3/Visualization/d3-contour/Density estimationDelaunay triangulations/D3/Visualization/d3-delaunay/Delaunay triangulationsDelaunay triangulations/D3/Visualization/d3-delaunay/Delaunay triangulationsVoronoi diagrams/D3/Visualization/d3-delaunay/Voronoi diagramsVoronoi diagrams/D3/Visualization/d3-delaunay/Voronoi diagramsForce simulations/D3/Visualization/d3-force/Force simulationsForce simulations/D3/Visualization/d3-force/Force simulationsCenter force/D3/Visualization/d3-force/Center forceCenter force/D3/Visualization/d3-force/Center forceCollide force/D3/Visualization/d3-force/Collide forceCollide force/D3/Visualization/d3-force/Collide forceLink force/D3/Visualization/d3-force/Link forceLink force/D3/Visualization/d3-force/Link forceMany-body force/D3/Visualization/d3-force/Many-body forceMany-body force/D3/Visualization/d3-force/Many-body forcePosition forces/D3/Visualization/d3-force/Position forcesPosition forces/D3/Visualization/d3-force/Position forcesPaths/D3/Visualization/d3-geo/PathsPaths/D3/Visualization/d3-geo/PathsStreams/D3/Visualization/d3-geo/StreamsStreams/D3/Visualization/d3-geo/StreamsSpherical shapes/D3/Visualization/d3-geo/Spherical shapesSpherical shapes/D3/Visualization/d3-geo/Spherical shapesSpherical math/D3/Visualization/d3-geo/Spherical mathSpherical math/D3/Visualization/d3-geo/Spherical mathHierarchies/D3/Visualization/d3-hierarchy/HierarchiesHierarchies/D3/Visualization/d3-hierarchy/HierarchiesStratify/D3/Visualization/d3-hierarchy/StratifyStratify/D3/Visualization/d3-hierarchy/StratifyTree/D3/Visualization/d3-hierarchy/TreeTree/D3/Visualization/d3-hierarchy/TreeCluster/D3/Visualization/d3-hierarchy/ClusterCluster/D3/Visualization/d3-hierarchy/ClusterPartition/D3/Visualization/d3-hierarchy/PartitionPartition/D3/Visualization/d3-hierarchy/PartitionPack/D3/Visualization/d3-hierarchy/PackPack/D3/Visualization/d3-hierarchy/PackTreemap/D3/Visualization/d3-hierarchy/TreemapTreemap/D3/Visualization/d3-hierarchy/TreemapLinear scales/D3/Visualization/d3-scale/Linear scalesLinear scales/D3/Visualization/d3-scale/Linear scalesTime scales/D3/Visualization/d3-scale/Time scalesTime scales/D3/Visualization/d3-scale/Time scalesPow scales/D3/Visualization/d3-scale/Pow scalesPow scales/D3/Visualization/d3-scale/Pow scalesLog scales/D3/Visualization/d3-scale/Log scalesLog scales/D3/Visualization/d3-scale/Log scalesSymlog scales/D3/Visualization/d3-scale/Symlog scalesSymlog scales/D3/Visualization/d3-scale/Symlog scalesOrdinal scales/D3/Visualization/d3-scale/Ordinal scalesOrdinal scales/D3/Visualization/d3-scale/Ordinal scalesBand scales/D3/Visualization/d3-scale/Band scalesBand scales/D3/Visualization/d3-scale/Band scalesPoint scales/D3/Visualization/d3-scale/Point scalesPoint scales/D3/Visualization/d3-scale/Point scalesSequential scales/D3/Visualization/d3-scale/Sequential scalesSequential scales/D3/Visualization/d3-scale/Sequential scalesDiverging scales/D3/Visualization/d3-scale/Diverging scalesDiverging scales/D3/Visualization/d3-scale/Diverging scalesQuantile scales/D3/Visualization/d3-scale/Quantile scalesQuantile scales/D3/Visualization/d3-scale/Quantile scalesQuantize scales/D3/Visualization/d3-scale/Quantize scalesQuantize scales/D3/Visualization/d3-scale/Quantize scalesThreshold scales/D3/Visualization/d3-scale/Threshold scalesThreshold scales/D3/Visualization/d3-scale/Threshold scalesCategorical schemes/D3/Visualization/d3-scale-chromatic/Categorical schemesCategorical schemes/D3/Visualization/d3-scale-chromatic/Categorical schemesCyclical schemes/D3/Visualization/d3-scale-chromatic/Cyclical schemesCyclical schemes/D3/Visualization/d3-scale-chromatic/Cyclical schemesDiverging schemes/D3/Visualization/d3-scale-chromatic/Diverging schemesDiverging schemes/D3/Visualization/d3-scale-chromatic/Diverging schemesSequential schemes/D3/Visualization/d3-scale-chromatic/Sequential schemesSequential schemes/D3/Visualization/d3-scale-chromatic/Sequential schemesSelecting elements/D3/Visualization/d3-selection/Selecting elementsSelecting elements/D3/Visualization/d3-selection/Selecting elementsModifying elements/D3/Visualization/d3-selection/Modifying elementsModifying elements/D3/Visualization/d3-selection/Modifying elementsJoining data/D3/Visualization/d3-selection/Joining dataJoining data/D3/Visualization/d3-selection/Joining dataHandling events/D3/Visualization/d3-selection/Handling eventsHandling events/D3/Visualization/d3-selection/Handling eventsControl flow/D3/Visualization/d3-selection/Control flowControl flow/D3/Visualization/d3-selection/Control flowLocal variables/D3/Visualization/d3-selection/Local variablesLocal variables/D3/Visualization/d3-selection/Local variablesNamespaces/D3/Visualization/d3-selection/NamespacesNamespaces/D3/Visualization/d3-selection/NamespacesArcs/D3/Visualization/d3-shape/ArcsArcs/D3/Visualization/d3-shape/ArcsAreas/D3/Visualization/d3-shape/AreasAreas/D3/Visualization/d3-shape/AreasCurves/D3/Visualization/d3-shape/CurvesCurves/D3/Visualization/d3-shape/CurvesLines/D3/Visualization/d3-shape/LinesLines/D3/Visualization/d3-shape/LinesLinks/D3/Visualization/d3-shape/LinksLinks/D3/Visualization/d3-shape/LinksPies/D3/Visualization/d3-shape/PiesPies/D3/Visualization/d3-shape/PiesStacks/D3/Visualization/d3-shape/StacksStacks/D3/Visualization/d3-shape/StacksSymbols/D3/Visualization/d3-shape/SymbolsSymbols/D3/Visualization/d3-shape/SymbolsRadial areas/D3/Visualization/d3-shape/Radial areasRadial areas/D3/Visualization/d3-shape/Radial areasRadial lines/D3/Visualization/d3-shape/Radial linesRadial lines/D3/Visualization/d3-shape/Radial linesRadial links/D3/Visualization/d3-shape/Radial linksRadial links/D3/Visualization/d3-shape/Radial linksSelecting elements/D3/Animation/d3-transition/Selecting elementsSelecting elements/D3/Animation/d3-transition/Selecting elementsModifying elements/D3/Animation/d3-transition/Modifying elementsModifying elements/D3/Animation/d3-transition/Modifying elementsTiming/D3/Animation/d3-transition/TimingTiming/D3/Animation/d3-transition/TimingControl flow/D3/Animation/d3-transition/Control flowControl flow/D3/Animation/d3-transition/Control flowAdding numbers/D3/Data/d3-array/Adding numbersAdding numbers/D3/Data/d3-array/Adding numbersBinning data/D3/Data/d3-array/Binning dataBinning data/D3/Data/d3-array/Binning dataBisecting data/D3/Data/d3-array/Bisecting dataBisecting data/D3/Data/d3-array/Bisecting dataBlurring data/D3/Data/d3-array/Blurring dataBlurring data/D3/Data/d3-array/Blurring dataGrouping data/D3/Data/d3-array/Grouping dataGrouping data/D3/Data/d3-array/Grouping dataInterning values/D3/Data/d3-array/Interning valuesInterning values/D3/Data/d3-array/Interning valuesSet operations/D3/Data/d3-array/Set operationsSet operations/D3/Data/d3-array/Set operationsSorting data/D3/Data/d3-array/Sorting dataSorting data/D3/Data/d3-array/Sorting dataSummarizing data/D3/Data/d3-array/Summarizing dataSummarizing data/D3/Data/d3-array/Summarizing dataTicks/D3/Data/d3-array/TicksTicks/D3/Data/d3-array/TicksTransforming data/D3/Data/d3-array/Transforming dataTransforming data/D3/Data/d3-array/Transforming dataAzimuthal projections/D3/Visualization/d3-geo/Projections/Azimuthal projectionsAzimuthal projections/D3/Visualization/d3-geo/Projections/Azimuthal projectionsConic projections/D3/Visualization/d3-geo/Projections/Conic projectionsConic projections/D3/Visualization/d3-geo/Projections/Conic projectionsCylindrical projections/D3/Visualization/d3-geo/Projections/Cylindrical projectionsCylindrical projections/D3/Visualization/d3-geo/Projections/Cylindrical projectionsD3/D3Introduction/D3/IntroductionVisualization/D3/VisualizationAnimation/D3/AnimationInteraction/D3/InteractionData/D3/Datad3-chord/D3/Visualization/d3-chordd3-chord/D3/Visualization/d3-chordd3-interpolate/D3/Visualization/d3-interpolated3-interpolate/D3/Visualization/d3-interpolated3-contour/D3/Visualization/d3-contourd3-contour/D3/Visualization/d3-contourd3-delaunay/D3/Visualization/d3-delaunayd3-delaunay/D3/Visualization/d3-delaunayd3-force/D3/Visualization/d3-forced3-force/D3/Visualization/d3-forced3-geo/D3/Visualization/d3-geod3-geo/D3/Visualization/d3-geod3-hierarchy/D3/Visualization/d3-hierarchyd3-hierarchy/D3/Visualization/d3-hierarchyd3-scale/D3/Visualization/d3-scaled3-scale/D3/Visualization/d3-scaled3-scale-chromatic/D3/Visualization/d3-scale-chromaticd3-scale-chromatic/D3/Visualization/d3-scale-chromaticd3-selection/D3/Visualization/d3-selectiond3-selection/D3/Visualization/d3-selectiond3-shape/D3/Visualization/d3-shaped3-shape/D3/Visualization/d3-shaped3-transition/D3/Animation/d3-transitiond3-transition/D3/Animation/d3-transitiond3-array/D3/Data/d3-arrayd3-array/D3/Data/d3-arrayProjections/D3/Visualization/d3-geo/ProjectionsProjections/D3/Visualization/d3-geo/Projections

提示

除非你需要 D3 的低階控制,否則我們建議你使用我們的高階姊妹函式庫:Observable Plot。在 D3 中,一個直方圖可能需要 50 行程式碼,但 Plot 可以用一行完成!Plot 簡潔但功能強大的 API 讓你更專注於分析和視覺化資料,而不是網頁開發。你甚至可以結合 Plot 和 D3,發揮兩者的優點。

D3 很靈活

由於 D3 沒有整體的「圖表」抽象化,因此即使是一個基本的圖表也可能需要幾十行程式碼。好處是,所有部分都擺在你面前,你可以完全控制發生的事情。你可以客製化視覺化,以達成你想要的效果。D3 沒有資料的預設呈現方式,只有你自己編寫的程式碼。(或從範例中複製。)

將 D3 視為「自己動手做」的替代方案,而不是高階繪圖函式庫的替代方案。如果你不滿意其他工具,而且正在考慮使用 SVG 或 Canvas(甚至 WebGL)建立自己的圖表,你最好瀏覽一下 D3 的工具箱!這裡幾乎肯定有東西可以幫助你建立你夢想的圖表,而且不會限制你的創意。

D3 與網路協同運作

D3 沒有引入新的圖形表示法;相反地,您可以直接將 D3 與 SVG 和 Canvas 等網路標準搭配使用。

「D3」這個名稱是資料驅動文件的縮寫,其中文件指的是 文件物件模型 (DOM) 標準,用於表示網頁的內容。雖然 D3 的某些模組(例如 選取轉場)會接觸 DOM,但其他模組(包括 比例尺形狀)只會對資料進行運算。D3 也可以與 React、Vue 和 Svelte 等網路框架配對使用;請參閱 入門指南 以取得建議。

D3 採用網路標準帶來許多好處。例如,您可以使用外部樣式表來變更圖表的樣式(甚至可以回應媒體查詢,例如用於回應式圖表或深色模式);您可以使用偵錯程式和元素檢查器來檢閱您的程式碼在做什麼;而 D3 的同步、命令式評估模型(呼叫 選取.attr 會立即變異 DOM)可以比具有複雜非同步執行時期的框架更容易偵錯。

D3 適用於客製化視覺化

D3 讓事情變得可行,但不一定容易;即使是應該很簡單的事情,也常常不是如此。套用 Amanda Cox 的話來說:「如果你認為為長條圖寫一百行程式碼是很正常的事,那就使用 D3 吧。」

如果您需要為您的客製化視覺化取得最大的表現力,您應該考慮使用 D3。對於紐約時報The Pudding 等媒體組織來說,D3 很合理,因為單一圖表可能會被數百萬讀者看到,而且編輯團隊可以共同努力推進視覺傳播的最新技術。

另一方面,對於拼湊私人儀表板或一次性分析來說,D3 則是過於強大。不要被炫目的範例所誘惑:其中許多範例都需要大量的實作工作!如果您受到時間限制(誰沒有呢?),您很可能會使用 Observable Plot 產生更好的視覺化或分析。

D3 適用於動態視覺化

D3 最新穎的概念是它的 資料聯結:給定一組資料和一組 DOM 元素,資料聯結允許您對進入更新離開元素套用不同的運算。如果您只建立靜態圖表(不會動態化或回應使用者輸入的圖表),您可能會覺得這個概念不直觀甚至很奇怪,因為它不是必要的。

資料連接存在,以便您可以控制資料變更時確切發生的情況,並更新顯示以作為回應。這種直接控制允許極高效能的更新 — 您只觸及需要變更的元素和屬性,而無需對 DOM 進行差異化 — 以及狀態之間的平滑動畫過渡。D3 適用於動態、互動式視覺化。(在 2012 年的 “512 條通往白宮的道路” 中,按住選項鍵並按一下狀態切換按鈕,試試看。真的。)