コンテンツへスキップ

D3とは?

D3(またはD3.js)は、データを可視化するための無料のオープンソースJavaScriptライブラリです。ウェブ標準に基づいて構築されたその低レベルのアプローチは、動的なデータ駆動型グラフィックスを作成する上で比類のない柔軟性を提供します。10年以上にわたり、D3は画期的で受賞歴のある可視化を支え、より高レベルのグラフライブラリの基礎となる構成要素となり、世界中のデータ実務家の活気のあるコミュニティを育成してきました。

D3は「この分野を前例のない成長、多様化、創造性へと一気に押し上げ」、「ニュースルーム、ウェブサイト、個人のポートフォリオで作成される何百万ものデータ可視化の方法を変えた」と、Information is Beautifulの2022年のTest of Time Awardで評されました。IEEE VISの2021年のTest of Time Awardでは、「ウェブ開発者がインタラクティブな可視化を作成するために魅力的で使いやすいフレームワークを作成することで、著者たちは間違いなくデータ可視化を主流にするのに貢献した。[D3]はこの会議、そしてより一般的には私たちの分野全体の成功に対する基礎的な貢献である」と述べました。

D3は2011年にMike Bostockによって作成されました。Mikeは、スタンフォード大学でJeff HeerとVadim Ogievetskyと共にD3に関する論文を共著しました。Jason Daviesは、2011年から2013年にかけてD3に大きな貢献をし、特にD3の地理的投影システムに貢献しました。Philippe Rivièreは、2016年以来、D3とそのドキュメントに大きく貢献しています。長年にわたり、数え切れないほど多くの親切な人々がコードやアイデアを共有したり、教えたり質問に答えたり、可視化の実践をさらに進めるために人々を結びつけたりすることで、D3に貢献してきました。MikeとPhilippeは現在、D3とObservable PlotObservableで管理しています。

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では1行で済みます。Plotの簡潔で表現力豊かなAPIを使用すると、ウェブ開発の代わりにデータの分析と可視化に集中できます。PlotとD3を組み合わせて両方の利点を活用することもできます。

D3は柔軟です

D3には包括的な「グラフ」の抽象化がないため、基本的なグラフでも数十行のコードが必要になる場合があります。良い点としては、すべての要素が目の前に配置されており、何が起こるかを完全に制御できることです。可視化を調整して、目的を正確に達成できます。D3にはデータのデフォルトの表示はありません。自分で記述したコード(または例からコピーしたコード)があるだけです。

D3を「すべてを自分で行う」ことの代替手段として考え、高レベルのグラフ作成ライブラリの代替手段として考えないでください。他のツールに満足できず、SVGやCanvas(あるいはWebGL)を使用して独自のグラフを作成しようとしている場合は、D3のツールボックスを調べてみるのも良いでしょう。創造性を損なうことなく、夢のグラフを作成するのに役立つものがほぼ確実にあります。

D3はウェブで機能します

D3は新しいグラフィカルな表現を導入するのではなく、SVGやCanvasなどのウェブ標準を直接使用します。

「D3」という名前は、データ駆動型ドキュメントの略で、ここでドキュメントは、ウェブページの内容を表すドキュメントオブジェクトモデル(DOM)標準を指します。D3のモジュールの一部(セレクショントランジションなど)はDOMに触れますが、他のモジュール(スケールシェイプなど)はデータに対してのみ動作します。D3は、React、Vue、Svelteなどのウェブフレームワークと組み合わせることもできます。推奨事項については、入門ガイドを参照してください。

D3がウェブ標準を採用していることには多くのメリットがあります。たとえば、外部スタイルシートを使用してグラフの外観を変更したり(レスポンシブグラフやダークモードなどのメディアクエリに対応する場合でも)、デバッガーと要素インスペクターを使用してコードの動作を確認したりできます。また、D3の同期的な命令型評価モデル(selection.attrを呼び出すとDOMがすぐに変更される)により、複雑な非同期ランタイムを備えたフレームワークよりもデバッグが容易になる場合があります。

D3はオーダーメイドの可視化向けです

D3は物事を可能にするものであり、必ずしも簡単にするものではありません。簡単であるべき単純なことでも、多くの場合そうではありません。Amanda Coxの言葉を言い換えれば、「D3は、棒グラフのために100行のコードを書くのがごく普通のことだと思う場合に使うべきです。」

オーダーメイドの可視化で最大の表現力が必要な場合は、D3を検討する必要があります。D3は、The New York TimesThe Puddingのようなメディア組織に適しています。そこでは、1つのグラフィックが100万人の読者に見られる可能性があり、編集者のチームが協力して視覚コミュニケーションの最先端を進めることができます。

一方、D3は、プライベートダッシュボードや単発の分析をまとめるには過剰です。魅惑的な例に惑わされないでください。それらの多くは実装に多大な労力を費やしています。時間に制約がある場合(誰でもそうですが)、Observable Plotを使用すると、より優れた可視化や分析を作成できる可能性が高くなります。

D3は動的な可視化向けです

D3の最も斬新な概念は、データ結合です。データのセットとDOM要素のセットが与えられた場合、データ結合を使用すると、enteringupdating、およびexiting要素に対して個別の操作を適用できます。静的なグラフ(アニメーションやユーザー入力に応答しないグラフ)のみを作成する場合、この概念は直感的でない、または不必要であるため、奇妙に感じるかもしれません。

データ結合は、データが変更されたときに正確に何が起こるかを制御し、それに応じて表示を更新できるように存在します。この直接的な制御により、非常にパフォーマンスの高い更新(DOMを差分することなく、変更する必要のある要素と属性のみを変更する)と、状態間のスムーズなアニメーション遷移が可能になります。D3は、動的なインタラクティブな可視化に最適です。(2012年の「512 Paths to the White House」の州の切り替えをoptionキーを押しながらクリックしてみてください。本当に。)