CINXE.COM
D3 by Observable | The JavaScript library for bespoke data visualization
<!DOCTYPE html> <html lang="en-US" dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>D3 by Observable | The JavaScript library for bespoke data visualization</title> <meta name="description" content="The JavaScript library for bespoke data visualization"> <meta name="generator" content="VitePress v1.4.0"> <link rel="preload stylesheet" href="/assets/style.CeCMf97_.css" as="style"> <script type="module" src="/assets/app.Bvb3sqOl.js"></script> <link rel="modulepreload" href="/assets/chunks/theme.ZX_7HlxI.js"> <link rel="modulepreload" href="/assets/chunks/framework.BBlBmbNy.js"> <link rel="modulepreload" href="/assets/index.md.3XnaYLYe.lean.js"> <link rel="apple-touch-icon" href="/logo.png"> <link rel="icon" type="image/png" href="/logo.png"> <script async defer src="https://static.observablehq.com/assets/components/observable-made-by.js"></script> <script id="check-dark-mode">window.matchMedia("(prefers-color-scheme: dark)").matches&&document.documentElement.classList.add("dark");</script> <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script> <link rel="canonical" href="https://d3js.org"> <meta name="title" content="D3"> </head> <body> <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/" data-v-ab179fa1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo.svg" alt data-v-8426fc1a><!--]--><span data-v-ab179fa1>D3</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><!----><!----><!----><!----><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--]--></div></div></div><!--[--><!--[--><!--[--><div style="display:flex;gap:1rem;"><!--[--><a target="_blank" title="7.9.0 release notes" href="https://github.com/d3/d3/releases" data-v-4244fc58><span data-v-4244fc58>7.9.0</span></a><a target="_blank" data-decoration="★" title="109,585 GitHub stars" href="https://github.com/d3/d3" data-v-4244fc58><span data-v-4244fc58>GitHub️ 109.6k</span></a><a class="mobile" target="_blank" title="109,585 GitHub stars" href="https://github.com/d3/d3" data-v-4244fc58><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21" fill="none" data-v-4244fc58><path d="M19.625 5.60534C18.7083 4.03477 17.4649 2.79135 15.8945 1.87479C14.3238 0.958185 12.6091 0.5 10.7492 0.5C8.88947 0.5 7.17422 0.958325 5.60388 1.87479C4.0333 2.7913 2.78997 4.03477 1.87332 5.60534C0.956814 7.17587 0.498535 8.89089 0.498535 10.7504C0.498535 12.984 1.15021 14.9926 2.4539 16.7766C3.75744 18.5607 5.44142 19.7952 7.50571 20.4803C7.746 20.5249 7.92388 20.4936 8.03954 20.387C8.15524 20.2804 8.21302 20.1467 8.21302 19.9868C8.21302 19.9601 8.21073 19.7199 8.20629 19.266C8.20171 18.8122 8.19956 18.4162 8.19956 18.0783L7.89256 18.1315C7.69682 18.1673 7.44989 18.1825 7.15178 18.1782C6.8538 18.174 6.54446 18.1428 6.22419 18.0847C5.90377 18.0272 5.60575 17.8937 5.32988 17.6846C5.05416 17.4755 4.85842 17.2018 4.74272 16.8639L4.60925 16.5568C4.52029 16.3523 4.38023 16.1251 4.18888 15.8761C3.99754 15.6269 3.80405 15.458 3.60831 15.369L3.51486 15.3021C3.45259 15.2577 3.39481 15.204 3.34138 15.1418C3.28799 15.0796 3.24802 15.0173 3.22132 14.955C3.19458 14.8926 3.21674 14.8414 3.28804 14.8012C3.35933 14.761 3.48817 14.7416 3.67512 14.7416L3.94196 14.7814C4.11993 14.8171 4.34007 14.9236 4.60266 15.1017C4.86511 15.2796 5.08085 15.5109 5.24994 15.7956C5.4547 16.1605 5.7014 16.4385 5.99072 16.6299C6.27982 16.8212 6.5713 16.9167 6.86488 16.9167C7.15846 16.9167 7.41203 16.8945 7.62567 16.8502C7.83908 16.8057 8.0393 16.7388 8.22625 16.6499C8.30633 16.0535 8.52437 15.5953 8.88017 15.275C8.37304 15.2217 7.9171 15.1414 7.51212 15.0347C7.10736 14.9278 6.6891 14.7544 6.25761 14.5139C5.82589 14.2738 5.46774 13.9756 5.18309 13.6198C4.89839 13.2639 4.66474 12.7966 4.48247 12.2183C4.3001 11.6399 4.20889 10.9726 4.20889 10.2163C4.20889 9.13941 4.56044 8.22304 5.26341 7.46665C4.93411 6.65705 4.96519 5.74947 5.35676 4.744C5.61482 4.66382 5.9975 4.72399 6.50463 4.92412C7.01186 5.12434 7.38323 5.29587 7.61912 5.43808C7.85502 5.58024 8.04402 5.70071 8.18642 5.79842C9.01411 5.56715 9.86825 5.45149 10.7491 5.45149C11.6299 5.45149 12.4843 5.56715 13.312 5.79842L13.8192 5.47823C14.166 5.26459 14.5756 5.06881 15.0469 4.89083C15.5185 4.71295 15.8791 4.66396 16.1284 4.74414C16.5286 5.74966 16.5643 6.65719 16.2349 7.46679C16.9378 8.22318 17.2895 9.13978 17.2895 10.2164C17.2895 10.9727 17.198 11.6421 17.0159 12.225C16.8336 12.808 16.5979 13.2749 16.3088 13.6265C16.0194 13.9781 15.659 14.274 15.2275 14.5141C14.7959 14.7544 14.3775 14.9278 13.9728 15.0347C13.5678 15.1415 13.1119 15.2219 12.6047 15.2752C13.0673 15.6755 13.2986 16.3073 13.2986 17.1704V19.9864C13.2986 20.1464 13.3542 20.2799 13.4656 20.3867C13.5768 20.4932 13.7524 20.5246 13.9927 20.4799C16.0573 19.7949 17.7413 18.5603 19.0448 16.7762C20.3481 14.9922 21 12.9837 21 10.75C20.9996 8.89075 20.541 7.17587 19.625 5.60534Z" fill="currentColor" data-v-4244fc58></path></svg></a><!--]--><observable-made-by></observable-made-by></div><!--]--><!--]--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPHome" data-v-1428d186 data-v-686f80a6><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-686f80a6 data-v-303bb580><div class="container" data-v-303bb580><div class="main" data-v-303bb580><!--[--><!--]--><!--[--><h1 class="name" data-v-303bb580><span class="clip" data-v-303bb580>D3</span></h1><p class="text" data-v-303bb580>The JavaScript library for bespoke data visualization</p><p class="tagline" data-v-303bb580>Create custom dynamic visualizations with unparalleled flexibility</p><!--]--><!--[--><!--]--><div class="actions" data-v-303bb580><!--[--><div class="action" data-v-303bb580><a class="VPButton medium brand" href="/getting-started" data-v-303bb580 data-v-fa7799d5>Get started</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="/what-is-d3" data-v-303bb580 data-v-fa7799d5>What is D3?</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://observablehq.com/@d3/gallery?utm_source=d3js-org&utm_medium=hero&utm_campaign=try-observable" target="_blank" rel="external" data-v-303bb580 data-v-fa7799d5>Examples</a></div><!--]--></div><!--[--><!--]--></div><div class="image" data-v-303bb580><div class="image-container" data-v-303bb580><div class="image-bg" data-v-303bb580></div><!--[--><!--[--><img class="VPImage image-src" src="/logo.svg" alt="D3" data-v-8426fc1a><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--[--><!--[--><div class="_examples_mkmxd_3" style="transform:translate(55vw, 33%);"><!--[--><div style="--delay: -0.16393202715553346s;"><a href="https://observablehq.com/@d3/area-chart/2" title="Area chart D3" target="_blank" style="--x: -5; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/621c926e03757f3473aa2d0257e7eb0666ee01b22c73a658ce7357fea1d91afe.jpg" width="640" height="400"></a></div><div style="--delay: -0.06354447472840552s;"><a href="https://observablehq.com/@d3/projection-comparison" title="Projection comparison D3" target="_blank" style="--x: -4; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/9596c59b75461eab2e17f406c7caa6b0574e64e74aacab392167bf7eb469f6d1.jpg" width="640" height="400"></a></div><div style="--delay: 0.5360679728444665s;"><a href="https://observablehq.com/@d3/index-chart/2" title="Index chart D3" target="_blank" style="--x: -3; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/87220c31b9e2456687bc19579ff96d5dc8b7707be21de5a380df79a9176ffd94.jpg" width="640" height="400"></a></div><div style="--delay: 0.8026054553687573s;"><a href="https://observablehq.com/@d3/radial-cluster/2" title="Radial dendrogram D3" target="_blank" style="--x: -2; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/2dc4b6a2731a7216b2e5e555ba6d21b045aae900c022724e20c14833294380ed.jpg" width="640" height="400"></a></div><div style="--delay: 0.48606797284446657s;"><a href="https://observablehq.com/@d3/u-s-population-by-state-1790-1990" title="U.S. population by state, 1790–1990 D3" target="_blank" style="--x: -1; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/c703635d744ecf5e09203afb3e96cf6668364e5029a85c41a6b891178764a3ae.jpg" width="640" height="400"></a></div><div style="--delay: 0.33599046235904095s;"><a href="https://observablehq.com/@d3/graticule-labels-stereographic" title="Graticule labels D3" target="_blank" style="--x: 0; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/fd1336d8ced580b05a49499ca1b2d7a271762b7f9cd39dcc72345d7ff12b9f2c.jpg" width="640" height="400"></a></div><div style="--delay: 0.2691429378930479s;"><a href="https://observablehq.com/@d3/hierarchical-edge-bundling/2" title="Hierarchical edge bundling D3" target="_blank" style="--x: 1; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/9728eea74c9ba504efb2f2f7e34a9f6921b01f926e037b093d6ec5c9d6bde617.jpg" width="640" height="400"></a></div><div style="--delay: 0.8215608000289648s;"><a href="https://observablehq.com/@d3/variable-color-line" title="Variable-color line D3" target="_blank" style="--x: 2; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/ee7b5f671a5879ba6b1560fdc2c68a4b1aafa966014b6880a6a41057443fc02a.jpg" width="640" height="400"></a></div><div style="--delay: 1.2610679728444665s;"><a href="https://observablehq.com/@d3/donut-chart/2" title="Donut chart D3" target="_blank" style="--x: 3; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/6ba65a23ffa3326d3679a66e6b1a9a17af61a1512d1f17258695fe5decfa6039.jpg" width="640" height="400"></a></div><div style="--delay: 0.9581179495435207s;"><a href="https://observablehq.com/@kerryrodden/sequences-sunburst" title="Sequences sunburst Kerry Rodden" target="_blank" style="--x: 4; --y: -2.5;"><img src="https://static.observableusercontent.com/thumbnail/9a73001277807e217a710e37ffcd7912e9ec13dba0ba11aff65420d09b3edaad.jpg" width="640" height="400"></a></div><div style="--delay: 0.33583544138818977s;"><a href="https://observablehq.com/@d3/tissots-indicatrix" title="Tissot’s indicatrix D3" target="_blank" style="--x: -4.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/7713017d7d8ab67f3a03050f9fe57cefbcd7e078be65980f0b8d7e1446a0efb0.jpg" width="640" height="400"></a></div><div style="--delay: 0.3904724992346018s;"><a href="https://observablehq.com/@d3/grouped-bar-chart/2" title="Grouped bar chart D3" target="_blank" style="--x: -3.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/b37c165ba0794636e10d79e6126d469dfd7182f50cd01b70b8208c4457eedfc3.jpg" width="640" height="400"></a></div><div style="--delay: 0.4526054553687572s;"><a href="https://observablehq.com/@d3/versor-dragging" title="Versor dragging D3" target="_blank" style="--x: -2.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/79a43b8d1ba72926ee8efb9bdfe24ed20611184e081ed3c892eb32e1bb805397.jpg" width="640" height="400"></a></div><div style="--delay: 0.520415051933378s;"><a href="https://observablehq.com/@d3/spilhaus-shoreline-map" title="Spilhaus shoreline map D3" target="_blank" style="--x: -1.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/66a87355e205d820c4556bd80531c497229b8fa69bc2edcc04ad8366824be486.jpg" width="640" height="400"></a></div><div style="--delay: 0.8788143864367156s;"><a href="https://observablehq.com/@d3/scatterplot/2" title="Scatterplot D3" target="_blank" style="--x: -0.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/9c4990bd174ca8781013b045fadb3b7c13e7f9e5540480eb20ceaa44d00b1bed.jpg" width="640" height="400"></a></div><div style="--delay: 0.6693754693493247s;"><a href="https://observablehq.com/@d3/change-line-chart/2" title="Change line chart D3" target="_blank" style="--x: 0.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/c19b0ac83a3b4a8ba4b54cc2347322336f0f161b1f72034634d3bbda366124b0.jpg" width="640" height="400"></a></div><div style="--delay: 0.24856797284446652s;"><a href="https://observablehq.com/@d3/zoomable-area-chart" title="Zoomable area chart D3" target="_blank" style="--x: 1.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/de7799c54a2a6f500dcea71072bce7895ba5985fd10542b25cc5fb75a981efab.jpg" width="640" height="400"></a></div><div style="--delay: 0.7713392932899296s;"><a href="https://observablehq.com/@d3/solar-terminator" title="Solar terminator D3" target="_blank" style="--x: 2.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/a9f1dea4d6925972d23a3984812d2ba7822a189ebead2d1cb90c0a8162b9e1cf.jpg" width="640" height="400"></a></div><div style="--delay: 1.2470929611939936s;"><a href="https://observablehq.com/@d3/beeswarm-mirrored/2" title="Mirrored beeswarm D3" target="_blank" style="--x: 3.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/d89afe7d4715896b0377c5d88b097997496017c0c6cad25e5b3bcd9ffd86a5ef.jpg" width="640" height="400"></a></div><div style="--delay: 1.3148929562885314s;"><a href="https://observablehq.com/@d3/brushable-scatterplot" title="Brushable scatterplot D3" target="_blank" style="--x: 4.5; --y: -1.5;"><img src="https://static.observableusercontent.com/thumbnail/2da3ae8fda5623d50b14ce86f380b4efdf6b4025671505f46c5184e18b354330.jpg" width="640" height="400"></a></div><div style="--delay: 0.08575793090276418s;"><a href="https://observablehq.com/@d3/realtime-horizon-chart" title="Realtime horizon chart D3" target="_blank" style="--x: -5; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/969982ef06b8b9ef724799a2c6824301d0cbb3152eb4b2d5e506305123fd5b9a.jpg" width="640" height="400"></a></div><div style="--delay: 0.031232248572632626s;"><a href="https://observablehq.com/@d3/raster-tiles" title="Raster tiles D3" target="_blank" style="--x: -4; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/1f31ef7b286738354537ad9d892af7cd1163d6e26bb554f7ec43c0376b535949.jpg" width="640" height="400"></a></div><div style="--delay: 0.26327023603953414s;"><a href="https://observablehq.com/@d3/bar-chart/2" title="Bar chart D3" target="_blank" style="--x: -3; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/0e8f394a9b90622bf4b422d264f3a199a0d9ec3a4c414b2e6f33788681cc486f.jpg" width="640" height="400"></a></div><div style="--delay: 0.7880396846216172s;"><a href="https://observablehq.com/@harrystevens/directly-labelling-lines" title="Directly labelling lines Harry Stevens" target="_blank" style="--x: -2; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/1fb683721dc358ccecf55e84386d5025a69d176517270f71a5143f5734a71c18.jpg" width="640" height="400"></a></div><div style="--delay: 0.44414293789304793s;"><a href="https://observablehq.com/@d3/diverging-bar-chart/2" title="Diverging bar chart D3" target="_blank" style="--x: -1; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/774026a8d6b737d6411e576b1ff1c46c2f928afd1e21ac6786c9d65f4dd83979.jpg" width="640" height="400"></a></div><div style="--delay: 0.33574242880567906s;"><a href="https://observablehq.com/@d3/horizontal-bar-chart/2" title="Horizontal bar chart D3" target="_blank" style="--x: 0; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/e716222d556bbf3fc942f7a177cf657481e051c65eca95505a8b1e37f62e9d95.jpg" width="640" height="400"></a></div><div style="--delay: 0.6280477361753584s;"><a href="https://observablehq.com/@d3/collapsible-tree" title="Collapsible tree D3" target="_blank" style="--x: 1; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/d7fb434ff8508726495d62191283cd9584d599fb42756eb6dcb924563cb11b50.jpg" width="640" height="400"></a></div><div style="--delay: 0.6098262634593993s;"><a href="https://observablehq.com/@d3/q-q-plot" title="Q–Q plot D3" target="_blank" style="--x: 2; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/c657b616efca47883c776c810d080af24ff941b66ba4dfd80613048badeaee7d.jpg" width="640" height="400"></a></div><div style="--delay: 0.9574411796405912s;"><a href="https://observablehq.com/@d3/chord-diagram" title="Chord diagram D3" target="_blank" style="--x: 3; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/5ac8896fbde55a40eeaec6f2008d635e14c16e2dd2c6373f69d287597a5b475b.jpg" width="640" height="400"></a></div><div style="--delay: 1.1496472542639822s;"><a href="https://observablehq.com/@d3/color-schemes" title="Color schemes D3" target="_blank" style="--x: 4; --y: -0.5;"><img src="https://static.observableusercontent.com/thumbnail/c680595bf8b26e4cb6bf2306c222a2ba9146f41dc0549c54e0b709a57d94cc87.jpg" width="640" height="400"></a></div><div style="--delay: 0.0025279448833316343s;"><a href="https://observablehq.com/@d3/radial-tree/2" title="Radial tidy tree D3" target="_blank" style="--x: -4.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/1a0c15e714b00915cbd845b57731fd6286a97e4e95a7ec2ce289682f39a0ce96.jpg" width="640" height="400"></a></div><div style="--delay: 0.2908566757570952s;"><a href="https://observablehq.com/@d3/zoom-to-bounding-box" title="Zoom to bounding box D3" target="_blank" style="--x: -3.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/a31e0c327014bc52aafa52f46aa58595917279c31895cc6d3097679693182759.jpg" width="640" height="400"></a></div><div style="--delay: 0.4423179728444665s;"><a href="https://observablehq.com/@d3/connected-scatterplot/2" title="Connected scatterplot D3" target="_blank" style="--x: -2.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/c4c3780815c8e3cc1370d67f1596101cbde2d420125db73d33600e249c382e51.jpg" width="640" height="400"></a></div><div style="--delay: 0.287536148307845s;"><a href="https://observablehq.com/@mbostock/methods-of-comparison-compared" title="Methods of comparison, compared Mike Bostock" target="_blank" style="--x: -1.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/a2e3592ee45761fbab31ea5bdb2457cc6ef4c45818992a9373baa6f933ec02ac.jpg" width="640" height="400"></a></div><div style="--delay: 0.853509856853634s;"><a href="https://observablehq.com/@mbostock/voronoi-stippling" title="Voronoi stippling Mike Bostock" target="_blank" style="--x: -0.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/b5ecef3d7a9bd01ebf80bbd388f92b0b93dae6c12c69ac18138f8c0da1da2fac.jpg" width="640" height="400"></a></div><div style="--delay: 0.19308902779594062s;"><a href="https://observablehq.com/@d3/normal-quantile-plot" title="Normal quantile plot D3" target="_blank" style="--x: 0.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/4f5ad4d8f5d19810c36e332d83eb2d0ed307bdedd4a65071d8e2480c88da8ec4.jpg" width="640" height="400"></a></div><div style="--delay: 0.24158046701923008s;"><a href="https://observablehq.com/@d3/hexbin-map" title="Hexbin map D3" target="_blank" style="--x: 1.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/aa10cb91e3c7b30519994def10e0ba7f0371062aebed9152ad59a55099889646.jpg" width="640" height="400"></a></div><div style="--delay: 0.698156814277172s;"><a href="https://observablehq.com/@d3/voronoi-labels" title="Voronoi labels D3" target="_blank" style="--x: 2.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/c1a6c5cbd331ff43b0aec5d5dbc7294dc95b9d5880bec11d97ca40ac6bb8067e.jpg" width="640" height="400"></a></div><div style="--delay: 0.925480464566499s;"><a href="https://observablehq.com/@d3/pack/2" title="Circle packing D3" target="_blank" style="--x: 3.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/0e48e60d7963b38acb83f73875b6b00b1520504c92de8b4aa1419b1727fcedb2.jpg" width="640" height="400"></a></div><div style="--delay: 0.8640544817317276s;"><a href="https://observablehq.com/@d3/scatterplot-with-shapes" title="Scatterplot with shapes D3" target="_blank" style="--x: 4.5; --y: 0.5;"><img src="https://static.observableusercontent.com/thumbnail/240a416712b73a02bf6515ef3086ff8c19dd870339d307d0029e4bceb70aa631.jpg" width="640" height="400"></a></div><div style="--delay: -0.03908704812638464s;"><a href="https://observablehq.com/@d3/antimeridian-cutting" title="Antimeridian cutting D3" target="_blank" style="--x: -5; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/332c8573b5608ef4a98be3127ac52a40796dd18d601547fe71fb3eeaf0c04833.jpg" width="640" height="400"></a></div><div style="--delay: 0.10644993772730227s;"><a href="https://observablehq.com/@mbostock/stern-brocot-tree" title="Stern–brocot tree Mike Bostock" target="_blank" style="--x: -4; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/3bb04e5fdf6e458fc557a3c840fedb0ad3cc8b8d22d7761f0c34446ec329d702.jpg" width="640" height="400"></a></div><div style="--delay: 0.5836501107085496s;"><a href="https://observablehq.com/@tezzutezzu/world-history-timeline" title="World history timeline Danilo Di Cuia" target="_blank" style="--x: -3; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/3a98164ca1a4a34a0fb805c771155dcab585a436ff99401ab827d23b2a49d841.jpg" width="640" height="400"></a></div><div style="--delay: 0.019644697522744503s;"><a href="https://observablehq.com/@d3/zoomable-treemap" title="Zoomable treemap D3" target="_blank" style="--x: -2; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/7a9c4803cc094ed0788600ad38fecbd0b57e1c5d6c39ce6af4346f9330fa3b1b.jpg" width="640" height="400"></a></div><div style="--delay: 0.3496691044420004s;"><a href="https://observablehq.com/@d3/candlestick-chart/2" title="Candlestick chart D3" target="_blank" style="--x: -1; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/d545d9ba7c68765e54e4ed144496c9fa26822f3b5bcdc9bcf4fbdab5c3dc2ac0.jpg" width="640" height="400"></a></div><div style="--delay: 0.7802454367280006s;"><a href="https://observablehq.com/@d3/splom/2" title="Scatterplot matrix D3" target="_blank" style="--x: 0; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/5e34c69987146d69e893eb5d44549c14e456252464186c389218937ece7b8d28.jpg" width="640" height="400"></a></div><div style="--delay: 0.762053828733042s;"><a href="https://observablehq.com/@d3/box-plot/2" title="Box plot D3" target="_blank" style="--x: 1; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/bd4c5d003300d7c20d0a3af1055085deb043bbd2505c20acc1f95332f0591164.jpg" width="640" height="400"></a></div><div style="--delay: 0.9612535642925649s;"><a href="https://observablehq.com/@d3/cascaded-treemap" title="Cascaded treemap D3" target="_blank" style="--x: 2; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/b9bed4be41769129826de1c775ee5676bd3769c509348389014baaabc30f0530.jpg" width="640" height="400"></a></div><div style="--delay: 1.2401054553687572s;"><a href="https://observablehq.com/@d3/bubble-chart/2" title="Bubble chart D3" target="_blank" style="--x: 3; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/ca4f7b52273224989f1ecec193f6c9a1b11b85456d2ad78efcf6a54267839b78.jpg" width="640" height="400"></a></div><div style="--delay: 0.6337186964228748s;"><a href="https://observablehq.com/@d3/radial-stacked-bar-chart/2" title="Radial stacked bar chart D3" target="_blank" style="--x: 4; --y: 1.5;"><img src="https://static.observableusercontent.com/thumbnail/af9451150f95ca7913c380d74e10e9e2fe699976d41cdf981eb19b30412702d1.jpg" width="640" height="400"></a></div><div style="--delay: 0.3357114246115088s;"><a href="https://observablehq.com/@d3/line-with-tooltip/2" title="Line chart with tooltip D3" target="_blank" style="--x: -4.5; --y: 2.5;"><img src="https://static.observableusercontent.com/thumbnail/e4e99ec69cb0edeb2eae11cd855439ddf6f1da0cd6181a222c6d3b2ffa8841a9.jpg" width="640" height="400"></a></div><div style="--delay: 0.6811584129929543s;"><a href="https://observablehq.com/@d3/dot-plot/2" title="Dot plot D3" target="_blank" style="--x: -3.5; --y: 2.5;"><img src="https://static.observableusercontent.com/thumbnail/bc17217415bc4e5f5510294076bb1022b97792ab67a7d1c4725e144787f1e8da.jpg" width="640" height="400"></a></div><div style="--delay: 0.13186407829634839s;"><a href="https://observablehq.com/@d3/clipped-map-tiles" title="Clipped map tiles D3" target="_blank" style="--x: -2.5; --y: 2.5;"><img src="https://static.observableusercontent.com/thumbnail/a40fc610857773f580618614dfee6e9802a3fce7338d936e3e275cec666dfcae.jpg" width="640" height="400"></a></div><div style="--delay: 0.26783632752485576s;"><a href="https://observablehq.com/@d3/horizon-chart/2" title="Horizon chart D3" target="_blank" style="--x: -1.5; --y: 2.5;"><img src="https://static.observableusercontent.com/thumbnail/4674f92f3076649b97b5f833d80ae43df494be11370d79cf15d9a051685c197c.jpg" width="640" height="400"></a></div><div style="--delay: 0.7729471181519328s;"><a href="https://observablehq.com/@mbostock/phases-of-the-moon" title="Phases of the moon Mike Bostock" target="_blank" style="--x: -0.5; --y: 2.5;"><img src="https://static.observableusercontent.com/thumbnail/0f81c94e11eb10b00c5d8d82cde88bd81e584c628a2862d45e2057289b6622fa.jpg" width="640" height="400"></a></div><!--]--></div><!--]--><!--]--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-686f80a6 data-v-a6181336><div class="container" data-v-a6181336><div class="items" data-v-a6181336><!--[--><div class="grid-6 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/d3-selection" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Selections and transitions</h2><p class="details" data-v-a3976bdc>Create, update, and animate the DOM based on data without the overhead of a virtual DOM.</p><!----></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/d3-scale" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Scales and axes</h2><p class="details" data-v-a3976bdc>Encode abstract data into visual values such as position, size, and color. Explain position encodings with axes.</p><!----></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/d3-shape" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Shapes</h2><p class="details" data-v-a3976bdc>Render arcs, areas, curves, lines, links, pies, stacks, symbols… and any geometric primitive you might need to visualize data.</p><!----></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/d3-brush" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Interactions</h2><p class="details" data-v-a3976bdc>Facilitate exploration with reusable interactive behaviors, including panning, zooming, brushing, and dragging.</p><!----></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/d3-hierarchy" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Layouts</h2><p class="details" data-v-a3976bdc>Treemaps, trees, force-directed graphs, Voronoi, contours, chords, circle-packing… a library of layout algorithms at the ready.</p><!----></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/d3-geo" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Geographic maps</h2><p class="details" data-v-a3976bdc>More spherical projections than you can shake a stick at, with arbitrary aspects, adaptive sampling, and flexible clipping.</p><!----></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/d3-array" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>… and much more!</h2><p class="details" data-v-a3976bdc>CSV parsing, localized date parsing and formatting, color spaces, calendar math, statistics, and can I stop listing features now?</p><!----></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link vp-external-link-icon no-icon VPFeature" href="https://observablehq.com/plot?utm_source=d3js-org&utm_medium=features&utm_campaign=try-observable" target="_blank" rel="external" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Powering Observable Plot</h2><p class="details" data-v-a3976bdc>The D3 team also builds Observable Plot, a high-level API for quick charts built on top of D3.</p><div class="link-text" data-v-a3976bdc><p class="link-text-value" data-v-a3976bdc>Try Observable Plot <span class="vpi-arrow-right link-text-icon" data-v-a3976bdc></span></p></div></article><!--]--></a></div><div class="grid-6 item" data-v-a6181336><a class="VPLink link vp-external-link-icon no-icon VPFeature" href="https://observablehq.com?utm_source=d3js-org&utm_medium=features&utm_campaign=try-observable" target="_blank" rel="external" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Built by Observable</h2><p class="details" data-v-a3976bdc>D3 is developed by Observable, the platform for collaborative data analysis.</p><div class="link-text" data-v-a3976bdc><p class="link-text-value" data-v-a3976bdc>Visit Observable <span class="vpi-arrow-right link-text-icon" data-v-a3976bdc></span></p></div></article><!--]--></a></div><!--]--></div></div></div><!--[--><!--[--><!--[--><div class="vp-doc _promo_1njiz_3" data-v-e8b9d677><h1 class="_hed_1njiz_18" data-v-e8b9d677>Build your best work with D3 on Observable</h1><div class="_subhed_1njiz_19" data-v-e8b9d677>The only data workflow platform capable of supporting the full power of D3</div><div class="_columns_1njiz_73" data-v-e8b9d677><div class="_column_1njiz_10" data-v-e8b9d677><span class="_column-header_1njiz_14" data-v-e8b9d677>Connect to your data instantly</span><span class="_column-body_1njiz_96" data-v-e8b9d677>Pull live data from the cloud, files, and databases into one secure place — without installing anything, ever.</span></div><div class="_column_1njiz_10" data-v-e8b9d677><span class="_column-header_1njiz_14" data-v-e8b9d677>Code faster than you thought possible</span><span class="_column-body_1njiz_96" data-v-e8b9d677>Get everything you need and none of what you don’t with lightweight automatic versioning, instant sharing, and real-time multiplayer editing.</span></div><div class="_column_1njiz_10" data-v-e8b9d677><span class="_column-header_1njiz_14" data-v-e8b9d677>Accelerate your team’s analysis</span><span class="_column-body_1njiz_96" data-v-e8b9d677>Create a home for your team’s data analysis where you can spin up charts, maps, and data apps to explore, analyze, and iterate on together.</span></div></div><a class="_button_1njiz_35" href="https://observablehq.com?utm_source=d3js-org&utm_medium=promo&utm_campaign=try-observable" target="_blank" data-v-e8b9d677>Build with D3 on Observable →</a></div><!--]--><!--]--><!--]--><div class="vp-doc container" style="" data-v-686f80a6 data-v-8e2d4988><!--[--><div style="position:relative;" data-v-686f80a6><div><template><div id="hero-text">The JavaScript library for <span style="display:inline-block;position:relative;">bespoke<svg style="color:var(--vp-c-brand);position:absolute;z-index:-1;top:1em;left:0.2em;width:calc(100% - 0.7em);height:auto;" width="240" height="11" viewBox="0 0 240 11" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.766 10.187c.939-.024.386-.885.552-1.401 1.105-.301.553.626.962 1.061.685-.263 1.171-1.1 1.696-1.085.044.144.15.191.044.378.697-.736 2.21-.134 2.995-1.052a.55.55 0 0 1 .127.215 3.35 3.35 0 0 1-.204-1.204c.42-.034.751-.593.94 0-.255 0-.266.23-.377.416l.426-.273c.448.813-.586.316-.553.927.84-.306 1.802-1.037 2.476-.831.182.803-1.525.339-.608 1.023l-1.033-.268c.85 1.248-.625-.057.171 1.276 1.348.177 1.47-.478 2.818-.3.276-.479-.132-.66.144-1.124 1.857-.885 1.602 1.984 2.94.846.337-.555.42-1.582 1.442-1.08l-.276.889c1.298.038.668-1.348 2.06-.784-.226.368-1.005.344-.8.444.917.689.59-.545 1.27-.569l.16.827c1.371-.181 2.863-.827 4.388-1.037-.072.249-.326.512.044.746 1.912-.478 4.123-.058 6.007.368l.68-.727c.05.015.095.04.132.074a.275.275 0 0 1 .077.118c.014.044.015.091.004.136a.27.27 0 0 1-.07.122c.74.243 0-.445.354-.732.414-.062.552.383.315.603 1.248-.636 3.586-1.401 4.973-.694l-.254.22c1.06.249 1.105-1.477 2.127-.855l-.182.129c2.293.23 4.785-.478 6.564.52.293-1.017 2.272.393 2.365-1.022 1.327.664.967.927 2.813 1.348.492.052.702-.899 1.299-1.061l.044.731.79-.794.47.87.552-.205a.66.66 0 0 1-.332-.2.517.517 0 0 1-.132-.33c.873-.354 2.177.477 2.21.831l2.078-.679c-.039.301-.387.411-.657.607 1.105-.779.226.77 1.232.053-.144-.163.06-.44.077-.588.553.435 1.691.416 2.547.205l-.149.512c1.558.1 3.271-.31 5.018-.335-.636-.224-.514-1.109 0-1.204l.226.774c.32-.478-.552-.282.122-.884.652.076.464.875.094 1.138l.784-.287c.056.23-.127.358-.165.655.309-.478 1.387.75 1.834-.096l.05.23c1.746-.03 2.53-.316 3.95-.383 0-.674.553-.535.984-1.085 1.05.196 2.21.707 3.482.63.878-.343.243-.568.635-.955.077.612 1.332.535.69.985a15.353 15.353 0 0 0 3.83-.68c-.21-.243-.447-.353-.331-.563a.738.738 0 0 1 .275.01c.09.02.173.058.245.11a.58.58 0 0 1 .169.188c.04.072.061.151.062.232l-.088.067c2.127-.956 4.973 1.706 6.669.41l-.099.068 1.763-.684c.817.1-.481.478.127.842 1.9-1.043 3.022.12 4.586-.574 1.243 1.793 4.327-.167 5.979.956l-.1-.42c.426-.421.52.234.835.33-.05-.33-.464-.378-.205-.613 3.598-.545 7.438.598 11.129.956 1.348.11.757-2.203 2.465-1.195l-.481.794c2.719-.956 5.564 0 8.233-.77-.154.182-.16.416-.425.416.552.574 2.083.034 2.094-.435.42.053.1.425.354.665.552.339 1.42-.732 1.718-.158.05.09-.16.186-.265.23.37-.278 1.719.076 1.365-.589 1 .32 1.917-.287 2.713.105.553-.736 1.713.364 1.884-.683-.077 1.08 1.752.875 2.387.377-.215.326.553.345.299.794.718 0 1.381-.206 1.265-.76 1.315 1.305 2.686-1.018 3.415.645a45.888 45.888 0 0 1 6.078-1.17c-.082 1.075-2.138.09-2.066 1.218 1.834-.425 2.906-1.343 4.719-1.066.47.153-.276.478-.437.65 1.835-.43 3.537.148 5.172-.42 0 .1-.182.21-.348.291.321-.033.741.167.713-.325l-.315.13c-.497-.718 1.304-1.468 1.365-1.841-.553 1.396 1.602.377.707 2.137a.73.73 0 0 0 .337-.263.58.58 0 0 0 .1-.383c.315.1.409.297.083.665 1.155-.254.757-.78 1.801-.75 0 .233-.221.324-.337.601.553-.478 1.078-.908 1.951-.697-.056.143.044.33-.216.325 1.509-.048 2.603-1.195 4.249-.722-.513 1.023.553.349.625 1.243l.895-.254-.348-.44c.785.034 1.492-.602 2.155-.296l-.591.354 1.47-.139-.824-.354c.807-.444-.055-1.132.978-.86-.21.086.785.029 1.177.56.398-.278.801-.57 1.376-.335.138.291-.149.984-.055 1.176.398-.736 1.834-.168 2.337-.956-.143.227-.192.49-.138.745l.337-.597c.359.2.409.296.337.669 1.105.134-.309-1.138.967-.626-.105.048-.055.138-.27.23 1.287.277 2.519-.335 3.702 0 .326.903-1.05.195-.669.955 1.724-.129 3.592-.999 5.25-.74l-.31-.106c.277-1.262 1.221.66 2.083.086-.21.086-.298.693-.237.555 1.105.234 2.343-.249 4.083-.603l-.226.32c.657.311 1.763.216 2.481.383.226-.315.641-.253.403-.731 2.166 1.912 4.305-.89 6.228.726-.238 0-.553.268-.387.273l1.702-.244c-.111-.554-.21-.34-.553-.784.124-.163.292-.298.489-.392.198-.094.419-.145.644-.148-.774.34-.028.884.287 1.205-.049-.173.072-.354.05-.526.846 1.008.199-1.11 1.376-.407l-.077.287c.458-.134.889-.478 1.37-.401.177.645-.492.282-.552.803.685 0 1.403-1.162 1.994-.507-.298.167-.718.158-1.016.325.641.77.729.583 1.221.717h-.044l1.138.378-.282-.21c.928-1.635 1.752-.25 2.951-1.3-1.166.994-.21.592-.332 1.309.288.21.724.454.586.65.553-.564.89.478 1.696-.34 0 .235.581.044.431.627.713-.163-.149-.411-.077-.703 1.133-.76 2.514 1.061 4.139.029 1.376-.397 1.658-1.171 2.94-1.515.403.392-.393.836-.393.836.267.161.581.255.906.27a1.97 1.97 0 0 0 .934-.184c-.138.196 0 .373.172.64.519-.038.386-.831 1.05-.477a3.24 3.24 0 0 1-.553.918c.619-.192 1.243-.603 1.884-.79.149.412-.409.603-.646.856.718-.153 1.851-.296 2.105-.927l-.442-.248c.26 0 .105.559-.094.669-.63.478-.862-.258-.884-.478l.459-.134c-.387-1.382-1.818.148-2.719.033l.431-.956-.973.784c-.182-.263-.287-.822.166-.956-.624-.516-.591.33-1.105-.239-.055-.086-.028-.134.033-.172l-.646.273c.132-.201-.072-.703.309-.545-1.105-.617-1.873.674-2.26-.096l.099-.057c-1.596.272-.193.721-1.414 1.534l-.713-1.83-.188.721c-.16-.033-.481-.1-.409-.387-.63.478.089.32-.287.78-.752-.699-2.172.229-2.293-.957-.31.545.729.478-.127.813-.183-1.258-.978.181-1.658-.416.254-.636.917-.273.226-.875-.486 1.076-1.386-.282-2-.096-.066.87-1.332.32-2.354.579.078-.292-1.89-.54-2.818-.885l.033-.148c-.221.87-1.182.674-1.901.832a.906.906 0 0 1 .132-.55c.102-.169.258-.31.449-.406h-.669a.979.979 0 0 1-.34.327 1.167 1.167 0 0 1-.478.151l.194-.65c-.885 0-1.813.712-2.94.244-.083.607.84 1.725-.381 2.103-.034-.335-.056-.899.27-1.028-.105.043-.381.263-.585.12l.502-.545c-.508-.258-.287.478-.701.397 0-.478-.293-.35-.221-.722.11-.038.359.205.525 0a1.931 1.931 0 0 1-.691-.264 1.649 1.649 0 0 1-.503-.487c.028.268-.028.636-.37.684-.89 0-.282-.574-.79-.832-.227.325-.78-.033-.824.674-.259 0-.293-.34-.387-.535-.469.3-2.149.033-1.657.793l.116.053s-.05 0-.078.033c-1.525.66-3.105-.478-4.608-.224V3.34c-.895.244-1.984.106-2.636.593a.711.711 0 0 1-.402-.28.553.553 0 0 1-.084-.442c-.691.158-.774.416-1.746 0 .701-.396-.221-.373.713-.287-.879-.224-1.067-.607-2.039 0 .342-.597-.641-.774-1.067-.602l.608.445c-.436.053-.88.039-1.31-.043l.254-.794c-1.784-1.004-3.315 1.578-4.647-.067-.497.545.973.411.553 1.052-.829-.124-1.658-1.286-1.929-1.29-1.132-.479-1.105 1.137-2.282.812a.818.818 0 0 1 .031.774.938.938 0 0 1-.264.323 1.11 1.11 0 0 1-.397.198c-.829-.124-.994-1.214-.464-1.434.205 0 .299.072.288.168.27-.096.629-.21.303-.526l-.116.282c-.403-.297-1.552-.292-1.271-.75-.635.257-.281.477.183.616-1.061-.435-1.658-.053-2.763-.344.171.162.326.478.155.478-1.608-.378-.724.526-1.824.636-.608-.445.249-1.033-.862-.684-.668-.306-.127-.755.149-.985-1.016.536-1.867-.387-2.442-.478l.553-.22a1.892 1.892 0 0 1-.846.12l.293.573c-.309-.105-.553-.11-.553-.348-.326.368.227.956-.42 1.434-.403-.297-1.265.286-1.392-.478 1.298.272-.127-.76.978-.866a1.102 1.102 0 0 1-.851.024c-.044-.086.044-.157.133-.2-1.233-.689-.592.846-1.879.807.171-.42-.287-.808-.497-.721.519 0 .237.712-.249 1.027-.823-.34-.906.235-1.337.187l.491.162c-.176.426-.585.364-1.165.478-.045-.33.524-.22.326-.368-.652.736-1.437-.793-2.338-.306-.409-.291-.027-.798-.387-.999-1.011.54-1.077-.588-2.133-.148.293.574.349.435-.403.985l1.735-.387-1.105.822c.525 0 1.105-.35 1.42-.249-.553.478-.481.316-.238.794-.701-.86-1.425.478-2.21-.1l.044-1.41c-1.232-.641-2.21.702-3.823.334l.513.248c-.221.56-.994.072-1.519.292.055-.478-.271-.645-.492-.956.028.349-1.177-.043-1.337.899l-.707-.627c-1.305-.267-1.503 1.33-2.763 1.157.381-.507-.183-.846.657-1.21-.414 0-.79-.095-.801.23-.276-.263-1.199.646-1.575.215-.182.206-.243.698-.713.655a.337.337 0 0 1 0-.234c0 .234-.735.31-.331.837-1.271-1.478-3.592.095-4.708-1.172-.936.165-1.883.277-2.835.335.05-.139 0-.234.16-.186-1.143-.44-.707 1.352-2.005.86-.664-.765.69-.411.276-.703-.171-1.553-1.564.21-2.437-.702l.21-.091c-.663-.555-1.608.564-2.713.454a.326.326 0 0 0 0-.234c-.746.784-2.155 1.051-3.205 1.271.326-.607.475-.32.276-.956-.47.091.138.99-.801 1.167-.304-.33-.984-.622-1.078-1.282l.89-.019c-.459-.85-1.149.034-1.613-.114l.055-.368c-1.36.124-1.376 1.06-2.835.999l.155.282c-.796.956-.674-.521-1.465.172l-.248-.956c-.871.453-1.797.82-2.763 1.094.552-.698 1.658-1.06 2.315-1.477-.519 0-1.774.072-2.044.54.21-.09.475-.325.685-.181a2.832 2.832 0 0 1-1.094.83 3.298 3.298 0 0 1-1.42.27c.171-1.832-2.713-.455-3.482-1.865-1.834.693-3.652-.258-5.796-.13.774 1.435-.625.049-.481 1.507-.497.1-.685.076-.729 0l-1.525-.86c-.365-.421.469-.326.42-.65-1.106-.106-.465-.618-1.194-1 .155.521-.37.75-1 .56l.901.659c-1.52.793-1.338-1.214-2.868-.43l.48-.478c-.79.277-2.917 0-3.674 1.204-.144-.167-.332-.564 0-.674-1.89-.148-4.183 1.31-5.664.612l.138-.358c-.348.105-.602.678-1.05.325 0-.148.138-.359 0-.378-.182.124-.923.64-1.392.44l.386-.411c-1.85-.44-2.807 1.023-4.343 1.29 0-1.051-1.475-1.376-2.21-1.53V.685c-2.15-.086-3.625.956-5.598 1.4-1.265-1.118-4.188-.392-6.194-.99.31.182 0 .818-.37.957-.475-.206-1.266.755-1.221-.21h.165c-.375-.957-1.326-.67-2.072-.675l-.083 1.267c-2.006-1.778-5.106.813-6.227-.803-.459.33-1.045.34-1.498.67v-.68a12.396 12.396 0 0 0-3.575 0l.31-.478c-.912 0-1.072 1.98-1.912 2.042l-.288-1c-1.591.053-3.232-.774-4.763.192 0-.148.055-.445.31-.478-.746 0-2.918-.588-2.587.788-.06-.903-1.657-.038-2.48.388l.104-.689c-.685.875-.701 1.11-1.696 1.377-.243-.076-.238-.526.088-.368-.812-.32-.59.655-1.574.33l.342-.435c-.823-.029-.746.2-1.177.707-.503.287-1.564-.114-1.713-.712-.094.368-.52.875-1.011.717a.38.38 0 0 1 .013-.245.442.442 0 0 1 .164-.2c-1.393-.406-2 .851-2.973.235a.553.553 0 0 0-.182-.392 9.431 9.431 0 0 1 1.89.028c0-.616-.912-.688-.255-1.563-.685.478-1.845 1.54-2.713 1.286a.84.84 0 0 1-.1-.215l.061-.072a.668.668 0 0 0-.295 0 .61.61 0 0 0-.257.125 1.992 1.992 0 0 0-.718-.158c-.128-.507-1.023-.234-1.465-.244.072.67-.508.583.06 1.119-.07-.048.078-.086.366-.125a.528.528 0 0 0 .188-.076l-.028.062c.287-.033.663-.062 1.105-.09-.332.358-.68.654-1.183.3-.204.445-.43.894-.552 1.11-.647-.914-1.83-1.377-2.022-1.946-1.321.43-3.145.368-3.918 1.663-.376.177-.459-.344-.614-.535.216-.139.476-.13.586-.316-.74.354-2.249.216-2.381 1.105-.984-.364.491-.837-.818-.636l.166-.277c-2.675-1.291-4.09 2.433-7.068.755.204.105.304.148.354.296-3.316-.645-6.709 1.038-10.018-.062-.94-.205-1 .359-1.531.818l-.249-.713-.906.88c-1.315.679-2.47-1.65-4.117-.411l.254.478c-.624-.058-1.939.387-1.873-.177-.055.09-.166.516-.425.272l-.044-.372-1.487.712c-1.199-.215.078-1.506-1.658-1.492C.895 5.105-.22 6.114.04 6.362c.178.01.347.073.478.179a.645.645 0 0 1 .24.4l-.558.225C.17 8.279-.194 9.44 1.304 10.144l.917-.732.36.521-.818.1c.513.479.784 0 1.105-.305.07.225.233.42.458.55l.907-1.114c.149.43-.376.884.292 1.094.426-.516-.502-.956.233-1.314.513.478.403.898.933.44a.447.447 0 0 1 .012.336.525.525 0 0 1-.233.27c.476-.367 1.304-.214 1.525-.817.553.598 1.658-.248 1.691.808.29-.433.74-.77 1.277-.956-.752 1.3 1.724 0 1.591 1.348.553-1.162 2.21-.617 3.255-1.3-.055.095-.16.282-.265.23.624.061.823.391 1.237.592 0-.956.967-1.195 1.448-1.797.812.87-.392 1.118-.1 1.974-.082-.755 1.272-.813.973-1.434.614.53.514.248.862 1.008.028-1.17.553-.22.962-.956.873.54.282 1.086 1.182.689.453.354-.342.808-.342.808Zm21.793-2.93-.447.057.447-.058Zm1.818-.091a7.552 7.552 0 0 0-.801 0c-.072-.23 0-.478.171-.478-.083.186.348.305.63.478Zm-4.128-4.49c.288-.109.393 0 .442.159-.172.02-.343.053-.508.1v.081a.973.973 0 0 1 .066-.34Z"></path></svg></span> data visualization</div></template></div></div><!--]--></div></div></div><footer class="bg-alt f12 lh-normal" data-v-5d98c3a5><div class="flex-l"><div class="ma4"><a title="Home" target="_blank" href="https://observablehq.com/"><svg role="img" width="173" height="24" viewBox="0 0 173 24" aria-label="Observable" fill="currentColor"><path d="M40.8496 20.6083C39.7407 20.6083 38.6757 20.4234 37.6548 20.0538C36.6339 19.6842 35.7186 19.1209 34.9089 18.364C34.1168 17.607 33.4919 16.6565 33.0343 15.5124C32.5766 14.3683 32.3478 13.0218 32.3478 11.4727C32.3478 9.92375 32.5766 8.57718 33.0343 7.43305C33.5095 6.2889 34.1432 5.33839 34.9353 4.5815C35.7274 3.82462 36.6339 3.26135 37.6548 2.8917C38.6757 2.52205 39.7407 2.33723 40.8496 2.33723C41.9585 2.33723 43.0234 2.52205 44.0444 2.8917C45.0653 3.26135 45.9718 3.82462 46.7639 4.5815C47.556 5.33839 48.1809 6.2889 48.6386 7.43305C49.1138 8.57718 49.3514 9.92375 49.3514 11.4727C49.3514 13.0218 49.1225 14.3683 48.665 15.5124C48.2073 16.6565 47.5736 17.607 46.7639 18.364C45.9718 19.1209 45.0653 19.6842 44.0444 20.0538C43.0234 20.4234 41.9585 20.6083 40.8496 20.6083ZM40.8496 18.9977C41.6065 18.9977 42.2049 18.6896 42.645 18.0736C43.1027 17.4398 43.4283 16.5598 43.622 15.4332C43.8332 14.3067 43.9388 12.9865 43.9388 11.4727C43.9388 9.95894 43.8332 8.63879 43.622 7.51226C43.4283 6.38572 43.1027 5.50562 42.645 4.87193C42.2049 4.23826 41.6065 3.92142 40.8496 3.92142C40.1103 3.92142 39.5118 4.23826 39.0542 4.87193C38.5965 5.50562 38.2621 6.38572 38.0509 7.51226C37.8572 8.63879 37.7604 9.95894 37.7604 11.4727C37.7604 12.9865 37.8572 14.3067 38.0509 15.4332C38.2621 16.5598 38.5965 17.4398 39.0542 18.0736C39.5118 18.6896 40.1103 18.9977 40.8496 18.9977ZM50.5773 20.1066V18.76L51.7655 18.496C51.7831 17.8622 51.7919 17.1846 51.7919 16.4629C51.7919 15.7413 51.7919 15.1076 51.7919 14.5619V3.60459L50.3661 3.41977V2.23162L56.386 1.04348L56.8349 1.33392L56.7293 5.00396V8.33075C57.7678 7.30983 59.0175 6.79937 60.4785 6.79937C61.4466 6.79937 62.3267 7.0546 63.1188 7.56506C63.9109 8.05792 64.5358 8.80601 64.9934 9.80933C65.4687 10.7951 65.7063 12.0448 65.7063 13.5586C65.7063 15.002 65.4335 16.2429 64.8878 17.2814C64.3422 18.3199 63.6293 19.1209 62.7491 19.6842C61.8867 20.2298 60.9626 20.5026 59.9768 20.5026C59.22 20.5026 58.5599 20.3706 57.9966 20.1066C57.4333 19.8601 56.9405 19.4993 56.518 19.0241L55.99 20.5026L50.5773 20.1066ZM58.0494 9.41329C57.8206 9.41329 57.6006 9.44848 57.3893 9.5189C57.1957 9.5893 57.0021 9.68612 56.8085 9.80933V17.5982C57.1605 17.8447 57.5742 17.968 58.0494 17.968C58.7535 17.968 59.3168 17.607 59.7392 16.8853C60.1616 16.1637 60.3729 15.0548 60.3729 13.5586C60.3729 12.0448 60.1616 10.9799 59.7392 10.3638C59.3168 9.73012 58.7535 9.41329 58.0494 9.41329ZM71.7275 20.5026C69.8968 20.5026 68.2775 20.0714 66.8693 19.2089L67.0013 15.8292H69.404L69.8264 18.5752C70.1257 18.6984 70.4337 18.7952 70.7505 18.8657C71.0674 18.9185 71.3931 18.9449 71.7275 18.9449C72.3964 18.9449 72.9156 18.8393 73.2852 18.628C73.6549 18.4168 73.8397 18.0647 73.8397 17.5718C73.8397 17.2198 73.699 16.903 73.4173 16.6213C73.1532 16.3397 72.5812 16.0845 71.7011 15.8556L70.1961 15.4596C69.1575 15.178 68.3654 14.6851 67.8198 13.981C67.2742 13.2594 67.0013 12.3881 67.0013 11.3671C67.0013 10.047 67.503 8.95563 68.5063 8.09312C69.5272 7.23062 70.9882 6.79937 72.8892 6.79937C73.699 6.79937 74.447 6.88738 75.1335 7.06341C75.8376 7.23942 76.5505 7.50345 77.2721 7.8555L77.0609 10.839H74.6318L74.0509 8.48917C73.8749 8.45397 73.6813 8.42757 73.4701 8.40996C73.2765 8.37476 73.0389 8.35715 72.7572 8.35715C72.2644 8.35715 71.8419 8.47157 71.4898 8.70039C71.1554 8.91162 70.9882 9.24606 70.9882 9.70372C70.9882 9.98535 71.1115 10.2582 71.3578 10.5222C71.6043 10.7862 72.1851 11.0414 73.1004 11.2879L74.579 11.6839C75.8112 12.0184 76.6912 12.5377 77.2193 13.2417C77.765 13.9459 78.0379 14.8172 78.0379 15.8556C78.0379 17.4047 77.4658 18.5664 76.3216 19.3409C75.1951 20.1153 73.6637 20.5026 71.7275 20.5026ZM85.8767 8.22514C85.4718 8.22514 85.1286 8.52438 84.847 9.12285C84.5653 9.72132 84.4069 10.839 84.3717 12.476H85.6127C86.2464 12.476 86.6688 12.3528 86.88 12.1064C87.1088 11.8424 87.2233 11.3759 87.2233 10.707C87.2233 9.79173 87.0824 9.14926 86.8008 8.7796C86.5368 8.40996 86.2287 8.22514 85.8767 8.22514ZM85.9559 20.5026C84.6358 20.5026 83.4564 20.2298 82.4179 19.6842C81.3969 19.1384 80.5873 18.3552 79.9887 17.3342C79.3903 16.2957 79.091 15.0548 79.091 13.6114C79.091 12.4673 79.2935 11.4727 79.6983 10.6278C80.1032 9.78293 80.6488 9.07884 81.3353 8.51557C82.0219 7.93471 82.7876 7.50345 83.6325 7.22182C84.4774 6.94018 85.331 6.79937 86.1936 6.79937C87.4609 6.79937 88.5082 7.06341 89.3355 7.59147C90.1804 8.10193 90.8141 8.79721 91.2365 9.67732C91.659 10.5398 91.8702 11.5079 91.8702 12.5816C91.8702 12.8633 91.8614 13.1097 91.8438 13.3209C91.8262 13.5146 91.791 13.7346 91.7382 13.981H84.3981C84.5389 15.266 84.9174 16.1989 85.5335 16.7797C86.1672 17.3606 86.8712 17.651 87.6457 17.651C88.3145 17.651 88.8867 17.5367 89.3619 17.3078C89.8547 17.0614 90.286 16.7622 90.6557 16.4101L91.6854 17.4134C91.1221 18.4872 90.3477 19.2704 89.3619 19.7634C88.3937 20.2562 87.2584 20.5026 85.9559 20.5026ZM92.9624 20.0802V18.7336L94.2298 18.4432C94.2473 17.8094 94.2562 17.1406 94.2562 16.4365C94.2562 15.7149 94.2562 15.0812 94.2562 14.5355V12.8721C94.2562 12.3792 94.2473 11.9832 94.2298 11.6839C94.2298 11.3848 94.221 11.1119 94.2034 10.8654C94.2034 10.6014 94.1945 10.2934 94.177 9.94135L92.7512 9.70372V8.62118L98.5863 6.79937L99.0615 7.08981L99.2727 10.1526C99.6248 9.00844 100.127 8.16353 100.778 7.61787C101.447 7.0722 102.098 6.79937 102.732 6.79937C103.383 6.79937 103.929 6.99299 104.369 7.38024C104.826 7.74988 105.099 8.33956 105.187 9.14925C105.152 9.85333 104.941 10.4078 104.553 10.8126C104.166 11.1998 103.709 11.3935 103.18 11.3935C102.371 11.3935 101.631 10.9094 100.963 9.94135L100.831 9.75652C100.514 10.1086 100.197 10.5662 99.88 11.1295C99.5808 11.6928 99.3784 12.2736 99.2727 12.8721V14.5355C99.2727 15.046 99.2727 15.6444 99.2727 16.3309C99.2727 17.0173 99.2816 17.6687 99.2991 18.2848L101.359 18.7336V20.0802H92.9624ZM114.743 8.46277V7.22182H119.707V8.46277L118.123 8.7268L113.766 20.0802H111.39L106.69 8.7268L105.423 8.46277V7.22182H113.37V8.46277L111.971 8.7796L114.162 14.8523L116.195 8.7532L114.743 8.46277ZM129.974 20.5026C129.147 20.5026 128.478 20.3442 127.967 20.0274C127.475 19.6929 127.114 19.2265 126.885 18.628C126.374 19.1912 125.855 19.6489 125.327 20.001C124.817 20.3354 124.086 20.5026 123.136 20.5026C122.097 20.5026 121.261 20.2034 120.627 19.6049C120.011 19.0064 119.703 18.1703 119.703 17.0966C119.703 16.4101 119.853 15.8028 120.152 15.2747C120.469 14.7291 121.015 14.2363 121.789 13.7962C122.581 13.3386 123.69 12.9249 125.116 12.5552C125.327 12.5024 125.574 12.4409 125.855 12.3704C126.137 12.2825 126.427 12.2033 126.727 12.1328V11.1823C126.727 10.0558 126.594 9.28127 126.33 8.85881C126.084 8.43636 125.547 8.22514 124.72 8.22514C124.649 8.22514 124.579 8.22514 124.509 8.22514C124.456 8.22514 124.394 8.22514 124.324 8.22514V9.12285C124.324 10.1966 124.104 10.9622 123.664 11.4199C123.224 11.86 122.722 12.08 122.159 12.08C121.085 12.08 120.416 11.6047 120.152 10.6542C120.152 9.51009 120.689 8.58599 121.763 7.8819C122.854 7.16021 124.465 6.79937 126.594 6.79937C128.425 6.79937 129.71 7.20422 130.449 8.01391C131.206 8.80601 131.585 10.1086 131.585 11.9216V17.968C131.585 18.2671 131.734 18.4168 132.034 18.4168C132.139 18.4168 132.245 18.3816 132.35 18.3112C132.456 18.2232 132.588 18.0647 132.746 17.8358L133.512 18.2584C133.195 19.0681 132.755 19.6489 132.192 20.001C131.646 20.3354 130.907 20.5026 129.974 20.5026ZM124.245 16.2781C124.245 16.9294 124.377 17.4134 124.641 17.7302C124.905 18.0472 125.23 18.2056 125.618 18.2056C125.741 18.2056 125.873 18.1792 126.014 18.1264C126.172 18.0559 126.41 17.9152 126.727 17.7038V13.3737C126.462 13.4442 126.207 13.541 125.961 13.6642C125.591 13.8403 125.213 14.1394 124.825 14.5619C124.438 14.9843 124.245 15.5564 124.245 16.2781ZM134.041 20.1066V18.76L135.229 18.496C135.247 17.8622 135.256 17.1846 135.256 16.4629C135.256 15.7413 135.256 15.1076 135.256 14.5619V3.60459L133.83 3.41977V2.23162L139.85 1.04348L140.299 1.33392L140.193 5.00396V8.33075C141.232 7.30983 142.481 6.79937 143.942 6.79937C144.91 6.79937 145.791 7.0546 146.583 7.56506C147.375 8.05792 148 8.80601 148.457 9.80933C148.933 10.7951 149.17 12.0448 149.17 13.5586C149.17 15.002 148.898 16.2429 148.352 17.2814C147.806 18.3199 147.093 19.1209 146.213 19.6842C145.351 20.2298 144.426 20.5026 143.441 20.5026C142.684 20.5026 142.024 20.3706 141.461 20.1066C140.897 19.8601 140.405 19.4993 139.982 19.0241L139.454 20.5026L134.041 20.1066ZM141.513 9.41329C141.284 9.41329 141.064 9.44848 140.853 9.5189C140.659 9.5893 140.466 9.68612 140.272 9.80933V17.5982C140.625 17.8447 141.038 17.968 141.513 17.968C142.217 17.968 142.781 17.607 143.203 16.8853C143.626 16.1637 143.837 15.0548 143.837 13.5586C143.837 12.0448 143.626 10.9799 143.203 10.3638C142.781 9.73012 142.217 9.41329 141.513 9.41329ZM150.465 20.0802V18.7336L151.653 18.4696C151.671 17.8007 151.679 17.1406 151.679 16.4893C151.697 15.838 151.707 15.1868 151.707 14.5355V3.6838L150.28 3.41977V2.23162L156.379 1.04348L156.828 1.33392L156.723 5.00396V14.5355C156.723 15.1868 156.723 15.8469 156.723 16.5157C156.74 17.167 156.758 17.8271 156.776 18.496L157.963 18.7336V20.0802H150.465ZM165.938 8.22514C165.533 8.22514 165.189 8.52438 164.908 9.12285C164.626 9.72132 164.467 10.839 164.432 12.476H165.674C166.307 12.476 166.73 12.3528 166.94 12.1064C167.169 11.8424 167.284 11.3759 167.284 10.707C167.284 9.79173 167.143 9.14926 166.861 8.7796C166.597 8.40996 166.289 8.22514 165.938 8.22514ZM166.016 20.5026C164.696 20.5026 163.517 20.2298 162.478 19.6842C161.457 19.1384 160.647 18.3552 160.049 17.3342C159.45 16.2957 159.152 15.0548 159.152 13.6114C159.152 12.4673 159.354 11.4727 159.759 10.6278C160.164 9.78293 160.71 9.07884 161.395 8.51557C162.082 7.93471 162.848 7.50345 163.693 7.22182C164.537 6.94018 165.392 6.79937 166.254 6.79937C167.522 6.79937 168.568 7.06341 169.396 7.59147C170.241 8.10193 170.874 8.79721 171.297 9.67732C171.719 10.5398 171.93 11.5079 171.93 12.5816C171.93 12.8633 171.922 13.1097 171.904 13.3209C171.886 13.5146 171.851 13.7346 171.799 13.981H164.459C164.6 15.266 164.978 16.1989 165.594 16.7797C166.228 17.3606 166.932 17.651 167.706 17.651C168.375 17.651 168.947 17.5367 169.423 17.3078C169.915 17.0614 170.346 16.7622 170.716 16.4101L171.746 17.4134C171.182 18.4872 170.408 19.2704 169.423 19.7634C168.454 20.2562 167.319 20.5026 166.016 20.5026Z"></path><path d="M11.4413 19.7265C10.3849 19.7265 9.46964 19.4977 8.69544 19.04C7.92403 18.5841 7.30727 17.9383 6.91536 17.1761C6.49867 16.3829 6.19365 15.5442 6.00767 14.6801C5.81035 13.743 5.71422 12.7903 5.72068 11.8359C5.72068 11.0802 5.77027 10.3577 5.87038 9.66687C5.96953 8.97688 6.15355 8.27548 6.42147 7.56358C6.68939 6.85167 7.03454 6.23445 7.45501 5.71104C7.89276 5.17482 8.45875 4.73835 9.10924 4.4354C9.79191 4.10837 10.568 3.9453 11.4413 3.9453C12.4977 3.9453 13.4131 4.17413 14.1873 4.63178C14.9587 5.08762 15.5755 5.73343 15.9674 6.49571C16.3811 7.28039 16.6834 8.11242 16.875 8.99178C17.0658 9.87026 17.1621 10.8189 17.1621 11.8359C17.1621 12.5917 17.1125 13.3141 17.0123 14.0049C16.9057 14.7222 16.7171 15.4272 16.4498 16.1082C16.1733 16.8201 15.8301 17.4374 15.4162 17.9608C15.0025 18.4842 14.4552 18.9094 13.7735 19.2364C13.0918 19.5634 12.3147 19.7265 11.4413 19.7265ZM13.4608 13.9249C14.0079 13.3785 14.3122 12.6225 14.3017 11.8359C14.3017 11.0232 14.0281 10.3268 13.4817 9.74686C12.9344 9.1669 12.2547 8.87692 11.4413 8.87692C10.628 8.87692 9.94827 9.1669 9.40099 9.74686C8.86507 10.2993 8.56912 11.0534 8.58102 11.8359C8.58102 12.6486 8.85467 13.3449 9.40099 13.9249C9.94827 14.5049 10.628 14.7949 11.4413 14.7949C12.2547 14.7949 12.9278 14.5049 13.4608 13.9249ZM11.4413 23.6718C17.7599 23.6718 22.8828 18.3723 22.8828 11.8359C22.8828 5.29952 17.7599 0 11.4413 0C5.12287 0 0 5.29952 0 11.8359C0 18.3723 5.12287 23.6718 11.4413 23.6718Z"></path></svg></a></div><div class="flex flex-grow-1 ma4"><div class="fb6"><div class="mb2 fw6 f14">Resources</div><ul><li class="mb2"><a target="_blank" href="https://talk.observablehq.com">Forum</a></li><li class="mb2"><a target="_blank" href="https://observablehq.com/slack/join">Slack</a></li><li class="mb2"><a target="_blank" href="https://github.com/d3/d3/releases">Releases</a></li></ul></div><div class="fb6 flex-grow-1"><div class="mb2 fw6 f14">Observable</div><ul><li class="mb2"><a target="_blank" href="https://observablehq.com/product">Product</a></li><li class="mb2"><a target="_blank" href="https://observablehq.com/plot">Plot</a></li><li class="mb2"><a target="_blank" href="https://observablehq.com/data-integrations">Integrations</a></li><li class="mb2"><a target="_blank" href="https://observablehq.com/pricing">Pricing</a></li><li class="mb2"><a target="_blank" href="https://observablehq.com/enterprise">Enterprise</a></li></ul></div></div></div><div class="flex ma4"> © 2025 Mike Bostock and Observable, Inc. <a class="ml1" target="_blank" href="https://github.com/d3/d3/blob/main/LICENSE">ISC License</a></div></footer><!--[--><!--]--></div></div> <script>window.__VP_HASH_MAP__=JSON.parse("{\"api.md\":\"Cii8VSTw\",\"community.md\":\"D4vV-Muj\",\"d3-array.md\":\"ppdUU0hx\",\"d3-array_add.md\":\"Bw5-Cl9B\",\"d3-array_bin.md\":\"DEQ0o3lh\",\"d3-array_bisect.md\":\"DRibjkES\",\"d3-array_blur.md\":\"DUqhSiZ7\",\"d3-array_group.md\":\"78TbL3Mx\",\"d3-array_intern.md\":\"N_WG4bZC\",\"d3-array_sets.md\":\"8bhp308d\",\"d3-array_sort.md\":\"BG8ihRnH\",\"d3-array_summarize.md\":\"DYBcWrox\",\"d3-array_ticks.md\":\"DMrpkqf2\",\"d3-array_transform.md\":\"CQuM8zic\",\"d3-axis.md\":\"DLtZ054F\",\"d3-brush.md\":\"BcY6gZlr\",\"d3-chord.md\":\"D5KDlZk0\",\"d3-chord_chord.md\":\"DCUESUdL\",\"d3-chord_ribbon.md\":\"CQGQ5b-d\",\"d3-color.md\":\"DeKlOrg4\",\"d3-contour.md\":\"Cz4Q5uyX\",\"d3-contour_contour.md\":\"C69VIn_L\",\"d3-contour_density.md\":\"vRVfflO4\",\"d3-delaunay.md\":\"3KwujJfm\",\"d3-delaunay_delaunay.md\":\"BKQ0hBuJ\",\"d3-delaunay_voronoi.md\":\"BdOB2pM-\",\"d3-dispatch.md\":\"EsfucYUp\",\"d3-drag.md\":\"BNlxHKuo\",\"d3-dsv.md\":\"Co71IsNQ\",\"d3-ease.md\":\"4eH2vazR\",\"d3-fetch.md\":\"Bu44CSci\",\"d3-force.md\":\"DkyL5YSD\",\"d3-force_center.md\":\"MHEeovj_\",\"d3-force_collide.md\":\"NnID3jcC\",\"d3-force_link.md\":\"nPaYEORA\",\"d3-force_many-body.md\":\"CubbpVW9\",\"d3-force_position.md\":\"CnAQ0Xef\",\"d3-force_simulation.md\":\"u_4q2JWJ\",\"d3-format.md\":\"CBHLNBEW\",\"d3-geo.md\":\"DSEh4fC6\",\"d3-geo_azimuthal.md\":\"MzJy9RtZ\",\"d3-geo_conic.md\":\"C0xUBoa6\",\"d3-geo_cylindrical.md\":\"D09dV03p\",\"d3-geo_math.md\":\"BQDnSLuT\",\"d3-geo_path.md\":\"7O87U-wt\",\"d3-geo_projection.md\":\"DSqwZoVn\",\"d3-geo_shape.md\":\"qAHpE-Fg\",\"d3-geo_stream.md\":\"Dqq374Pi\",\"d3-hierarchy.md\":\"BmBwsUo2\",\"d3-hierarchy_cluster.md\":\"Dqg6zSpq\",\"d3-hierarchy_hierarchy.md\":\"QxCP60Uh\",\"d3-hierarchy_pack.md\":\"Bk-md1_y\",\"d3-hierarchy_partition.md\":\"fEoH9879\",\"d3-hierarchy_stratify.md\":\"CUkApQ4j\",\"d3-hierarchy_tree.md\":\"BtGQY4th\",\"d3-hierarchy_treemap.md\":\"Ctshykbs\",\"d3-interpolate.md\":\"C0lNfTlt\",\"d3-interpolate_color.md\":\"BboxeTaL\",\"d3-interpolate_transform.md\":\"oXwkEdSK\",\"d3-interpolate_value.md\":\"DnqCRaXw\",\"d3-interpolate_zoom.md\":\"D6aYMXYZ\",\"d3-path.md\":\"ieDePRwu\",\"d3-polygon.md\":\"P-5CqU0f\",\"d3-quadtree.md\":\"BiPaXpT4\",\"d3-random.md\":\"CtosxRx5\",\"d3-scale-chromatic.md\":\"BU55UIJH\",\"d3-scale-chromatic_categorical.md\":\"rg8aVyAd\",\"d3-scale-chromatic_cyclical.md\":\"zADV87sJ\",\"d3-scale-chromatic_diverging.md\":\"B9ArWIEJ\",\"d3-scale-chromatic_sequential.md\":\"C_HBgn7L\",\"d3-scale.md\":\"BDry6xnP\",\"d3-scale_band.md\":\"BShmVn5U\",\"d3-scale_diverging.md\":\"txjd2dqh\",\"d3-scale_linear.md\":\"B7YhRIl2\",\"d3-scale_log.md\":\"DISUvgeF\",\"d3-scale_ordinal.md\":\"C6QZlAsX\",\"d3-scale_point.md\":\"BYRZB_HW\",\"d3-scale_pow.md\":\"Dc8KJgJJ\",\"d3-scale_quantile.md\":\"BEGsW-iE\",\"d3-scale_quantize.md\":\"CAGpTK7m\",\"d3-scale_sequential.md\":\"DMARwqYN\",\"d3-scale_symlog.md\":\"3evmYnuP\",\"d3-scale_threshold.md\":\"D7Qb5oHi\",\"d3-scale_time.md\":\"WTotlv5H\",\"d3-selection.md\":\"Dm4jGlb4\",\"d3-selection_control-flow.md\":\"zqFgdcOj\",\"d3-selection_events.md\":\"2bzfqYVg\",\"d3-selection_joining.md\":\"Bddolnmd\",\"d3-selection_locals.md\":\"BzAVJFu5\",\"d3-selection_modifying.md\":\"BPorWNAI\",\"d3-selection_namespaces.md\":\"BHJ0fFVq\",\"d3-selection_selecting.md\":\"24R8NjCx\",\"d3-shape.md\":\"DfT8okXe\",\"d3-shape_arc.md\":\"CL3l2yn_\",\"d3-shape_area.md\":\"BpYqBPKj\",\"d3-shape_curve.md\":\"Bs09QOhq\",\"d3-shape_line.md\":\"UJyvlgY1\",\"d3-shape_link.md\":\"CGoegf4s\",\"d3-shape_pie.md\":\"2e2eh4wZ\",\"d3-shape_radial-area.md\":\"DuP0_n7L\",\"d3-shape_radial-line.md\":\"Jk-Zrtex\",\"d3-shape_radial-link.md\":\"CGw9PjbS\",\"d3-shape_stack.md\":\"BmDqBGxn\",\"d3-shape_symbol.md\":\"CvY_XkIQ\",\"d3-time-format.md\":\"lUjDRd6y\",\"d3-time.md\":\"DakoKMkg\",\"d3-timer.md\":\"DQCnIu-V\",\"d3-transition.md\":\"C1nFydre\",\"d3-transition_control-flow.md\":\"DwvhYuRj\",\"d3-transition_modifying.md\":\"BLsBa9uv\",\"d3-transition_selecting.md\":\"CCQQzXMv\",\"d3-transition_timing.md\":\"eZYgPgby\",\"d3-zoom.md\":\"StnUdked\",\"getting-started.md\":\"D-ibR8na\",\"index.md\":\"3XnaYLYe\",\"what-is-d3.md\":\"Cgr_7v0s\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"D3 by Observable\",\"description\":\"The JavaScript library for bespoke data visualization\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":\"force-auto\",\"themeConfig\":{\"logo\":\"/logo.svg\",\"siteTitle\":\"D3\",\"sidebar\":[{\"text\":\"Introduction\",\"items\":[{\"text\":\"What is D3?\",\"link\":\"/what-is-d3\"},{\"text\":\"Getting started\",\"link\":\"/getting-started\"},{\"text\":\"API index\",\"link\":\"/api\"},{\"text\":\"Examples\",\"link\":\"https://observablehq.com/@d3/gallery?utm_source=d3js-org&utm_medium=page-nav&utm_campaign=try-observable\",\"rel\":\"external\"}]},{\"text\":\"Visualization\",\"items\":[{\"text\":\"d3-axis\",\"link\":\"/d3-axis\"},{\"text\":\"d3-chord\",\"link\":\"/d3-chord\",\"collapsed\":true,\"items\":[{\"text\":\"Chords\",\"link\":\"/d3-chord/chord\"},{\"text\":\"Ribbons\",\"link\":\"/d3-chord/ribbon\"}]},{\"text\":\"d3-color\",\"link\":\"/d3-color\"},{\"text\":\"d3-interpolate\",\"link\":\"/d3-interpolate\",\"collapsed\":true,\"items\":[{\"text\":\"Value interpolation\",\"link\":\"/d3-interpolate/value\"},{\"text\":\"Color interpolation\",\"link\":\"/d3-interpolate/color\"},{\"text\":\"Transform interpolation\",\"link\":\"/d3-interpolate/transform\"},{\"text\":\"Zoom interpolation\",\"link\":\"/d3-interpolate/zoom\"}]},{\"text\":\"d3-contour\",\"link\":\"/d3-contour\",\"collapsed\":true,\"items\":[{\"text\":\"Contour polygons\",\"link\":\"/d3-contour/contour\"},{\"text\":\"Density estimation\",\"link\":\"/d3-contour/density\"}]},{\"text\":\"d3-delaunay\",\"link\":\"/d3-delaunay\",\"collapsed\":true,\"items\":[{\"text\":\"Delaunay triangulations\",\"link\":\"/d3-delaunay/delaunay\"},{\"text\":\"Voronoi diagrams\",\"link\":\"/d3-delaunay/voronoi\"}]},{\"text\":\"d3-force\",\"link\":\"/d3-force\",\"collapsed\":true,\"items\":[{\"text\":\"Force simulations\",\"link\":\"/d3-force/simulation\"},{\"text\":\"Center force\",\"link\":\"/d3-force/center\"},{\"text\":\"Collide force\",\"link\":\"/d3-force/collide\"},{\"text\":\"Link force\",\"link\":\"/d3-force/link\"},{\"text\":\"Many-body force\",\"link\":\"/d3-force/many-body\"},{\"text\":\"Position forces\",\"link\":\"/d3-force/position\"}]},{\"text\":\"d3-geo\",\"link\":\"/d3-geo\",\"collapsed\":true,\"items\":[{\"text\":\"Paths\",\"link\":\"/d3-geo/path\"},{\"text\":\"Projections\",\"link\":\"/d3-geo/projection\",\"collapsed\":true,\"items\":[{\"text\":\"Azimuthal projections\",\"link\":\"/d3-geo/azimuthal\"},{\"text\":\"Conic projections\",\"link\":\"/d3-geo/conic\"},{\"text\":\"Cylindrical projections\",\"link\":\"/d3-geo/cylindrical\"}]},{\"text\":\"Streams\",\"link\":\"/d3-geo/stream\"},{\"text\":\"Spherical shapes\",\"link\":\"/d3-geo/shape\"},{\"text\":\"Spherical math\",\"link\":\"/d3-geo/math\"}]},{\"text\":\"d3-hierarchy\",\"link\":\"/d3-hierarchy\",\"collapsed\":true,\"items\":[{\"text\":\"Hierarchies\",\"link\":\"/d3-hierarchy/hierarchy\"},{\"text\":\"Stratify\",\"link\":\"/d3-hierarchy/stratify\"},{\"text\":\"Tree\",\"link\":\"/d3-hierarchy/tree\"},{\"text\":\"Cluster\",\"link\":\"/d3-hierarchy/cluster\"},{\"text\":\"Partition\",\"link\":\"/d3-hierarchy/partition\"},{\"text\":\"Pack\",\"link\":\"/d3-hierarchy/pack\"},{\"text\":\"Treemap\",\"link\":\"/d3-hierarchy/treemap\"}]},{\"text\":\"d3-path\",\"link\":\"/d3-path\"},{\"text\":\"d3-polygon\",\"link\":\"/d3-polygon\"},{\"text\":\"d3-quadtree\",\"link\":\"/d3-quadtree\"},{\"text\":\"d3-scale\",\"link\":\"/d3-scale\",\"collapsed\":true,\"items\":[{\"text\":\"Linear scales\",\"link\":\"/d3-scale/linear\"},{\"text\":\"Time scales\",\"link\":\"/d3-scale/time\"},{\"text\":\"Pow scales\",\"link\":\"/d3-scale/pow\"},{\"text\":\"Log scales\",\"link\":\"/d3-scale/log\"},{\"text\":\"Symlog scales\",\"link\":\"/d3-scale/symlog\"},{\"text\":\"Ordinal scales\",\"link\":\"/d3-scale/ordinal\"},{\"text\":\"Band scales\",\"link\":\"/d3-scale/band\"},{\"text\":\"Point scales\",\"link\":\"/d3-scale/point\"},{\"text\":\"Sequential scales\",\"link\":\"/d3-scale/sequential\"},{\"text\":\"Diverging scales\",\"link\":\"/d3-scale/diverging\"},{\"text\":\"Quantile scales\",\"link\":\"/d3-scale/quantile\"},{\"text\":\"Quantize scales\",\"link\":\"/d3-scale/quantize\"},{\"text\":\"Threshold scales\",\"link\":\"/d3-scale/threshold\"}]},{\"text\":\"d3-scale-chromatic\",\"link\":\"/d3-scale-chromatic\",\"collapsed\":true,\"items\":[{\"text\":\"Categorical schemes\",\"link\":\"/d3-scale-chromatic/categorical\"},{\"text\":\"Cyclical schemes\",\"link\":\"/d3-scale-chromatic/cyclical\"},{\"text\":\"Diverging schemes\",\"link\":\"/d3-scale-chromatic/diverging\"},{\"text\":\"Sequential schemes\",\"link\":\"/d3-scale-chromatic/sequential\"}]},{\"text\":\"d3-selection\",\"link\":\"/d3-selection\",\"collapsed\":true,\"items\":[{\"text\":\"Selecting elements\",\"link\":\"/d3-selection/selecting\"},{\"text\":\"Modifying elements\",\"link\":\"/d3-selection/modifying\"},{\"text\":\"Joining data\",\"link\":\"/d3-selection/joining\"},{\"text\":\"Handling events\",\"link\":\"/d3-selection/events\"},{\"text\":\"Control flow\",\"link\":\"/d3-selection/control-flow\"},{\"text\":\"Local variables\",\"link\":\"/d3-selection/locals\"},{\"text\":\"Namespaces\",\"link\":\"/d3-selection/namespaces\"}]},{\"text\":\"d3-shape\",\"link\":\"/d3-shape\",\"collapsed\":true,\"items\":[{\"text\":\"Arcs\",\"link\":\"/d3-shape/arc\"},{\"text\":\"Areas\",\"link\":\"/d3-shape/area\"},{\"text\":\"Curves\",\"link\":\"/d3-shape/curve\"},{\"text\":\"Lines\",\"link\":\"/d3-shape/line\"},{\"text\":\"Links\",\"link\":\"/d3-shape/link\"},{\"text\":\"Pies\",\"link\":\"/d3-shape/pie\"},{\"text\":\"Stacks\",\"link\":\"/d3-shape/stack\"},{\"text\":\"Symbols\",\"link\":\"/d3-shape/symbol\"},{\"text\":\"Radial areas\",\"link\":\"/d3-shape/radial-area\"},{\"text\":\"Radial lines\",\"link\":\"/d3-shape/radial-line\"},{\"text\":\"Radial links\",\"link\":\"/d3-shape/radial-link\"}]}]},{\"text\":\"Animation\",\"items\":[{\"text\":\"d3-ease\",\"link\":\"/d3-ease\"},{\"text\":\"d3-timer\",\"link\":\"/d3-timer\"},{\"text\":\"d3-transition\",\"link\":\"/d3-transition\",\"collapsed\":true,\"items\":[{\"text\":\"Selecting elements\",\"link\":\"/d3-transition/selecting\"},{\"text\":\"Modifying elements\",\"link\":\"/d3-transition/modifying\"},{\"text\":\"Timing\",\"link\":\"/d3-transition/timing\"},{\"text\":\"Control flow\",\"link\":\"/d3-transition/control-flow\"}]}]},{\"text\":\"Interaction\",\"items\":[{\"text\":\"d3-brush\",\"link\":\"/d3-brush\"},{\"text\":\"d3-dispatch\",\"link\":\"/d3-dispatch\"},{\"text\":\"d3-drag\",\"link\":\"/d3-drag\"},{\"text\":\"d3-zoom\",\"link\":\"/d3-zoom\"}]},{\"text\":\"Data\",\"items\":[{\"text\":\"d3-array\",\"link\":\"/d3-array\",\"collapsed\":true,\"items\":[{\"text\":\"Adding numbers\",\"link\":\"/d3-array/add\"},{\"text\":\"Binning data\",\"link\":\"/d3-array/bin\"},{\"text\":\"Bisecting data\",\"link\":\"/d3-array/bisect\"},{\"text\":\"Blurring data\",\"link\":\"/d3-array/blur\"},{\"text\":\"Grouping data\",\"link\":\"/d3-array/group\"},{\"text\":\"Interning values\",\"link\":\"/d3-array/intern\"},{\"text\":\"Set operations\",\"link\":\"/d3-array/sets\"},{\"text\":\"Sorting data\",\"link\":\"/d3-array/sort\"},{\"text\":\"Summarizing data\",\"link\":\"/d3-array/summarize\"},{\"text\":\"Ticks\",\"link\":\"/d3-array/ticks\"},{\"text\":\"Transforming data\",\"link\":\"/d3-array/transform\"}]},{\"text\":\"d3-dsv\",\"link\":\"/d3-dsv\"},{\"text\":\"d3-fetch\",\"link\":\"/d3-fetch\"},{\"text\":\"d3-format\",\"link\":\"/d3-format\"},{\"text\":\"d3-random\",\"link\":\"/d3-random\"},{\"text\":\"d3-time\",\"link\":\"/d3-time\"},{\"text\":\"d3-time-format\",\"link\":\"/d3-time-format\"}]}],\"search\":{\"provider\":\"local\"},\"footer\":{\"message\":\"Library released under <a style='text-decoration:underline;' href='https://github.com/d3/d3/blob/main/LICENSE'>ISC License</a>.\",\"copyright\":\"Copyright 2010–2025 Mike Bostock\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script> </body> </html>