From ec4bb049c4317e9fdc474cb74982566c2fa3fdbe Mon Sep 17 00:00:00 2001 From: holtzy Date: Fri, 27 Sep 2024 10:13:50 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20holtzy/r?= =?UTF-8?q?eact-graph-gallery@be7769eefc357342397a8f6dca64b47e0959fa54=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2d-density-plot.html | 4 +- 404.html | 4 +- .../9oo_T2Qa5grQI-THNE5RY/_buildManifest.js | 1 - _next/static/chunks/3710-ad4884527bb1921e.js | 1 + _next/static/chunks/3710-c14b1d4c5a1a83e2.js | 1 - .../introduction-to-d3-6181d1c81df340d4.js | 1 - .../introduction-to-d3-8562c260eec219f7.js | 1 + .../chunks/pages/treemap-16433d6ce228c28d.js | 1 + .../chunks/pages/treemap-ae99d40681a9dfd4.js | 1 - .../sWj_jUUesQ9Eg6jPat9WP/_buildManifest.js | 1 + .../_ssgManifest.js | 0 about.html | 4 +- all.html | 4 +- animation.html | 4 +- arc-diagram.html | 4 +- area-plot.html | 4 +- articles.html | 4 +- barplot.html | 4 +- boxplot.html | 4 +- bubble-map.html | 4 +- bubble-plot.html | 4 +- build-axis-with-react.html | 4 +- cartogram.html | 4 +- chord-diagram.html | 4 +- choropleth-map.html | 4 +- circular-barplot.html | 6 +- circular-packing.html | 4 +- connected-scatter-plot.html | 4 +- connection-map.html | 4 +- correlogram.html | 4 +- course/axis/axis-variations.html | 2 +- course/axis/axis-with-d3.html | 4 +- course/axis/bottom-axis.html | 4 +- course/axis/introduction.html | 2 +- course/axis/margin-and-translation.html | 4 +- .../hover-effect/css-descendant-selector.html | 4 +- course/hover-effect/css-pseudo-class.html | 4 +- course/hover-effect/internal-state.html | 4 +- course/hover-effect/introduction.html | 2 +- course/hover-effect/link-two-graphs.html | 4 +- course/hover-effect/toggle-class-in-js.html | 4 +- course/introduction/initial-setup.html | 2 +- course/introduction/introduction-to-d3.html | 2 +- .../introduction/introduction-to-react.html | 2 +- course/introduction/js-dataviz-libraries.html | 2 +- course/responsiveness/code-organization.html | 4 +- course/responsiveness/common-pitfalls.html | 2 +- course/responsiveness/introduction.html | 4 +- course/responsiveness/use-dimension-hook.html | 4 +- course/responsiveness/using-the-hook.html | 4 +- course/scales/introduction.html | 4 +- course/svg/introduction.html | 2 +- course/svg/main-svg-elements.html | 2 +- course/svg/path-element.html | 4 +- course/svg/tips-and-tricks.html | 2 +- cross-graph-highlight-interaction.html | 4 +- dataset-transition.html | 4 +- dendrogram.html | 4 +- density-plot.html | 4 +- donut.html | 4 +- example/arc-diagram-vertical.html | 4 +- .../barplot-data-transition-animation.html | 4 +- example/barplot-stacked-horizontal.html | 4 +- example/barplot-stacked-vertical.html | 4 +- example/boxplot-horizontal.html | 4 +- example/boxplot-jitter.html | 4 +- example/circle-packing-with-d3-force.html | 4 +- example/histogram-mirror.html | 4 +- example/histogram-small-multiple.html | 4 +- example/histogram-with-several-groups.html | 4 +- example/line-chart-synchronized-cursors.html | 4 +- .../network-diagram-with-colored-groups.html | 4 +- example/population-pyramid.html | 2 +- example/radar-chart-animation.html | 4 +- example/scatterplot-basic-canvas.html | 4 +- ...h-voronoi-for-closest-point-detection.html | 4 +- example/timeseries-moving-average.html | 4 +- fix-canvas-blurry-dataviz.html | 4 +- heatmap.html | 8 +- hexbin-map.html | 4 +- hierarchical-edge-bundling.html | 4 +- histogram.html | 6 +- img/d3-website-overview.png | Bin 0 -> 1481124 bytes index.html | 4 +- interactivity.html | 4 +- line-chart.html | 4 +- lollipop-plot.html | 4 +- map.html | 4 +- network-chart.html | 4 +- parallel-plot.html | 4 +- pie-plot.html | 4 +- radar-chart.html | 4 +- react-d3-dataviz-course.html | 4 +- ...t-dataviz-animation-with-react-spring.html | 4 +- ridgeline.html | 4 +- sankey-diagram.html | 4 +- scatter-plot.html | 4 +- shape-morphism-for-dataviz-with-react.html | 4 +- sitemap.xml | 198 +++++++++--------- stacked-area-plot.html | 4 +- stacked-barplot-with-negative-values.html | 4 +- streamchart.html | 4 +- subscribe.html | 4 +- timeseries.html | 4 +- treemap.html | 4 +- typescript-d3-axis.html | 4 +- violin-plot.html | 6 +- viz-from-the-future.html | 4 +- voronoi.html | 4 +- what-is-a-color.html | 4 +- wordcloud.html | 4 +- 111 files changed, 296 insertions(+), 296 deletions(-) delete mode 100644 _next/static/9oo_T2Qa5grQI-THNE5RY/_buildManifest.js create mode 100644 _next/static/chunks/3710-ad4884527bb1921e.js delete mode 100644 _next/static/chunks/3710-c14b1d4c5a1a83e2.js delete mode 100644 _next/static/chunks/pages/course/introduction/introduction-to-d3-6181d1c81df340d4.js create mode 100644 _next/static/chunks/pages/course/introduction/introduction-to-d3-8562c260eec219f7.js create mode 100644 _next/static/chunks/pages/treemap-16433d6ce228c28d.js delete mode 100644 _next/static/chunks/pages/treemap-ae99d40681a9dfd4.js create mode 100644 _next/static/sWj_jUUesQ9Eg6jPat9WP/_buildManifest.js rename _next/static/{9oo_T2Qa5grQI-THNE5RY => sWj_jUUesQ9Eg6jPat9WP}/_ssgManifest.js (100%) create mode 100644 img/d3-website-overview.png diff --git a/2d-density-plot.html b/2d-density-plot.html index c06aa739..aad4b02c 100644 --- a/2d-density-plot.html +++ b/2d-density-plot.html @@ -1,4 +1,4 @@ -How to build a 2d density chart with React and D3.

2d density chart

Dataviz logo representing a 2dDensity chart.

A 2D density chart is a graphical representation of data that uses color to show the concentration of data points in a given area. It shows the combined distribution of two quantitative variables. 2D density charts are often used in statistical analysis and data mining to identify trends, patterns, and correlations in the data.

In this tutorial, we will use the d3.js and React libraries to build a 2D density chart. It starts by describing how the data should be organized and how to initialize the Density2d component. It then explains how to prepare the data and compute bins. Once this is done, it shows how to render the shapes and suggests a few variations. 🙇‍♂️.

Useful links

The Data

A 2d density chart is basically a variation of the scatterplot, useful when the amount of data points is huge. As a result, it shares the same data structure.

The data is an array of object. For each object, at least 2 properties are required: x and y. The value of x is the position of the datapoint on the horizontal axis. The value of y is linked with the vertical axis.

const data = [
+How to build a 2d density chart with React and D3.

2d density chart

Dataviz logo representing a 2dDensity chart.

A 2D density chart is a graphical representation of data that uses color to show the concentration of data points in a given area. It shows the combined distribution of two quantitative variables. 2D density charts are often used in statistical analysis and data mining to identify trends, patterns, and correlations in the data.

In this tutorial, we will use the d3.js and React libraries to build a 2D density chart. It starts by describing how the data should be organized and how to initialize the Density2d component. It then explains how to prepare the data and compute bins. Once this is done, it shows how to render the shapes and suggests a few variations. 🙇‍♂️.

Useful links

The Data

A 2d density chart is basically a variation of the scatterplot, useful when the amount of data points is huge. As a result, it shares the same data structure.

The data is an array of object. For each object, at least 2 properties are required: x and y. The value of x is the position of the datapoint on the horizontal axis. The value of y is linked with the vertical axis.

const data = [
   {
     x: 2,
     y: 4
@@ -78,4 +78,4 @@
 }

I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




2D Density inspiration

If you're looking for inspiration to create your next 2D Density, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your 2D Density looks good!

visit

Variations

The hexbin representation above is just one member of a family of graphics allowing to study the combined distribution of two quantitative variables. You can read more about the existing variations in the data to viz project.

To put it in a nutshell, 2d histogram, Gaussian KDE, 2d density and Contour charts are the most common variations. It is of course possible to build them all using react and d3.js.

Here is an example with a contounr chart based on the same dataset than the previous example.


5101520

Contour chart made with React and D3.js.

ToDomake the contour chart above looks better
ToDoadd examples for 2d histograms and other variations
ToDoAdd example with a zoom feature implemented

Contact

👋 Hey, I'm Yan and I'm currently working on this project!

Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/404.html b/404.html index 7a8a965d..fd70a5ac 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -How to build a scatter plot with React and D3.

    Oh No!

    Dataviz logo representing a ScatterPlot chart.

    It looks like the place you are looking for does not exist 🙈

    You probably want to go back to the gallery homepage!

    I'm in a good mood, so here is a chart example for you just in case you are interested in React and d3.js ☀️

    Useful links

    The countries with the highest vulnerability to climate change have the lowest CO2 emissions

    All countries sorted by their vulnerability and readiness to climate change. The size shows the CO2 emission per person in that country.

    High ReadinessLow ReadinessQatarBahrainU.S.Trinidad and TobagoCzech RepublicSingaporeNorwayIndiaSudanChadSomalia

    Reproduction of a chart originally published by Data Wrapper using react and d3.js.

    Contact

    👋 Hey, I'm Yan and I'm currently working on this project!

    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

    +How to build a scatter plot with React and D3.

    Oh No!

    Dataviz logo representing a ScatterPlot chart.

    It looks like the place you are looking for does not exist 🙈

    You probably want to go back to the gallery homepage!

    I'm in a good mood, so here is a chart example for you just in case you are interested in React and d3.js ☀️

    Useful links

    The countries with the highest vulnerability to climate change have the lowest CO2 emissions

    All countries sorted by their vulnerability and readiness to climate change. The size shows the CO2 emission per person in that country.

    High ReadinessLow ReadinessQatarBahrainU.S.Trinidad and TobagoCzech RepublicSingaporeNorwayIndiaSudanChadSomalia

    Reproduction of a chart originally published by Data Wrapper using react and d3.js.

    Contact

    👋 Hey, I'm Yan and I'm currently working on this project!

    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

      -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/_next/static/9oo_T2Qa5grQI-THNE5RY/_buildManifest.js b/_next/static/9oo_T2Qa5grQI-THNE5RY/_buildManifest.js deleted file mode 100644 index bb90aa52..00000000 --- a/_next/static/9oo_T2Qa5grQI-THNE5RY/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST=function(s,a,c,e,t,i,o,r,n,p,d,u,l,h,b,f,g,m,k,j,v,x,w,z,y,_,I){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,"static/chunks/2718-c1b4ae8aebf23716.js",a,t,"static/chunks/pages/index-d41f25467ee6dcf3.js"],"/2d-density-plot":[s,c,i,o,a,e,t,v,r,"static/chunks/pages/2d-density-plot-147f90a5d8e8c593.js"],"/404":[s,c,i,a,e,t,m,"static/css/8a734e64c19c3976.css","static/chunks/pages/404-b85241062cab5048.js"],"/_error":["static/chunks/pages/_error-82b79221b9ed784b.js"],"/about":[s,c,i,a,e,t,h,"static/chunks/pages/about-3b56a821b500a5e6.js"],"/all":[s,c,a,e,t,n,f,"static/chunks/pages/all-c5ea439386fed3d0.js"],"/animation":[s,c,a,e,t,n,f,"static/chunks/pages/animation-fa9dfe1d4e131eb9.js"],"/arc-diagram":[s,c,i,o,a,e,t,n,d,"static/chunks/pages/arc-diagram-0cd124895e80ad94.js"],"/area-plot":[s,c,i,o,a,e,t,r,"static/chunks/pages/area-plot-f924661c3a9b2958.js"],"/articles":[s,c,a,e,t,h,"static/chunks/pages/articles-4f71b8e4bef1386a.js"],"/barplot":[s,c,i,o,p,a,e,t,n,k,d,"static/chunks/pages/barplot-673304709dd1fab4.js"],"/boxplot":[s,c,i,o,a,e,t,n,d,"static/chunks/pages/boxplot-82e704905eabb30a.js"],"/bubble-map":[s,c,i,o,p,a,e,t,n,g,d,"static/chunks/pages/bubble-map-485b7134a4e47eb4.js"],"/bubble-plot":[s,c,i,o,p,a,e,t,n,m,"static/css/ec7558f4d3e32e69.css","static/chunks/pages/bubble-plot-d62206987d094835.js"],"/build-axis-with-react":[s,c,i,o,a,e,t,r,"static/chunks/pages/build-axis-with-react-e547a8f59779247a.js"],"/cartogram":[s,c,a,e,t,h,"static/chunks/pages/cartogram-3909805a96300cc2.js"],"/chord-diagram":[s,c,i,o,a,e,t,r,"static/chunks/pages/chord-diagram-c630fcbbb34fadc5.js"],"/choropleth-map":[s,c,i,o,a,e,t,g,r,"static/chunks/pages/choropleth-map-36a7bf052e70cfb4.js"],"/circular-barplot":[s,c,i,o,a,e,t,r,"static/chunks/pages/circular-barplot-1aa8c2336ab3e058.js"],"/circular-packing":[s,c,i,o,p,a,e,t,n,d,"static/chunks/pages/circular-packing-a9fee065b643bd3a.js"],"/connected-scatter-plot":[s,c,i,o,a,e,t,r,"static/chunks/pages/connected-scatter-plot-846d452ea7cf227d.js"],"/connection-map":[s,c,i,o,a,e,t,g,r,"static/chunks/pages/connection-map-27b9a1c883c61e01.js"],"/correlogram":[s,c,i,o,a,e,t,"static/css/d54486714a313ae1.css","static/chunks/pages/correlogram-8c37581cff2c0f67.js"],"/course/axis/axis-variations":[s,c,a,e,l,"static/chunks/pages/course/axis/axis-variations-e8cf5bd8282a7c5f.js"],"/course/axis/axis-with-d3":[s,c,i,o,a,e,u,"static/chunks/pages/course/axis/axis-with-d3-1a6cdc32ad8e4d5a.js"],"/course/axis/bottom-axis":[s,c,i,o,a,e,u,"static/chunks/pages/course/axis/bottom-axis-272ff8da119afd4c.js"],"/course/axis/introduction":[s,c,i,a,e,l,"static/chunks/pages/course/axis/introduction-cc94a936e34f47a3.js"],"/course/axis/margin-and-translation":[s,c,o,a,e,u,"static/chunks/pages/course/axis/margin-and-translation-1dd15c5814a91e12.js"],"/course/hover-effect/css-descendant-selector":[s,c,i,o,a,e,n,"static/css/8666b20defb3e011.css","static/chunks/pages/course/hover-effect/css-descendant-selector-bee614cc0a119133.js"],"/course/hover-effect/css-pseudo-class":[s,c,i,o,a,e,n,x,"static/css/69b5bd49186db9de.css","static/chunks/pages/course/hover-effect/css-pseudo-class-d62e9a8a70a63b8a.js"],"/course/hover-effect/internal-state":[s,c,i,o,a,e,n,j,"static/css/b8e43ac6f7da4f41.css","static/chunks/pages/course/hover-effect/internal-state-c530fd0159cbb1c9.js"],"/course/hover-effect/introduction":[s,c,i,p,a,e,x,"static/css/0ec73f568dde8513.css","static/chunks/pages/course/hover-effect/introduction-f55a4b3bae6d4f44.js"],"/course/hover-effect/link-two-graphs":[s,c,i,o,a,e,t,n,j,"static/css/c76003f718a0f9be.css","static/chunks/pages/course/hover-effect/link-two-graphs-73df4a48119378bb.js"],"/course/hover-effect/toggle-class-in-js":[s,c,i,o,a,e,"static/css/f5258d81ed13d0d5.css","static/chunks/pages/course/hover-effect/toggle-class-in-js-9b0499013d580797.js"],"/course/introduction/initial-setup":[s,c,a,e,l,"static/chunks/pages/course/introduction/initial-setup-9864d096096c6d74.js"],"/course/introduction/introduction-to-d3":[s,c,a,e,l,"static/chunks/pages/course/introduction/introduction-to-d3-6181d1c81df340d4.js"],"/course/introduction/introduction-to-react":[s,c,a,e,l,"static/chunks/pages/course/introduction/introduction-to-react-c637887e6d1abdb2.js"],"/course/introduction/js-dataviz-libraries":[s,c,a,e,l,"static/chunks/pages/course/introduction/js-dataviz-libraries-74c92e8842ad53dc.js"],"/course/responsiveness/code-organization":[s,c,o,a,e,u,"static/chunks/pages/course/responsiveness/code-organization-4dee38ef916f6e9b.js"],"/course/responsiveness/common-pitfalls":[s,c,a,e,l,"static/chunks/pages/course/responsiveness/common-pitfalls-b052d1cc732e6cb4.js"],"/course/responsiveness/introduction":[s,c,i,o,a,e,u,"static/chunks/pages/course/responsiveness/introduction-56eb4fa55687caf3.js"],"/course/responsiveness/use-dimension-hook":[s,c,o,a,e,u,"static/chunks/pages/course/responsiveness/use-dimension-hook-43c87ce446c179a8.js"],"/course/responsiveness/using-the-hook":[s,c,o,a,e,u,"static/chunks/pages/course/responsiveness/using-the-hook-bf478aef397c7778.js"],"/course/scales/introduction":[s,c,o,a,e,u,"static/chunks/pages/course/scales/introduction-a64b598ed70be2c3.js"],"/course/svg/introduction":[s,c,a,e,l,"static/chunks/pages/course/svg/introduction-22b600d19c2fd7b1.js"],"/course/svg/main-svg-elements":[s,c,o,w,a,e,u,"static/chunks/pages/course/svg/main-svg-elements-dbe2ca0a29bd02e7.js"],"/course/svg/path-element":[s,c,o,w,a,e,u,"static/chunks/pages/course/svg/path-element-35d32a7cf86bf3c2.js"],"/course/svg/tips-and-tricks":[s,c,"static/chunks/2860-d038ef2b7795bb05.js",a,e,l,"static/chunks/pages/course/svg/tips-and-tricks-88a63679798eac94.js"],"/cross-graph-highlight-interaction":[s,c,i,o,"static/chunks/8446-4892663fdb75b8e1.js",a,e,t,"static/css/507114ea18f6728e.css","static/chunks/pages/cross-graph-highlight-interaction-a4cacec5e5484d83.js"],"/dataset-transition":[s,c,i,o,p,a,e,t,k,r,"static/chunks/pages/dataset-transition-b4a7858906f02b49.js"],"/dendrogram":[s,c,i,o,a,e,t,z,r,"static/chunks/pages/dendrogram-c826d5b12a6b4aa4.js"],"/density-plot":[s,c,i,o,a,e,t,y,r,"static/chunks/pages/density-plot-0fd8894d1f59fa01.js"],"/donut":[s,c,i,o,p,b,a,e,t,_,"static/css/306a1a30c14677d4.css","static/chunks/pages/donut-9f07ef710315a712.js"],"/example/arc-diagram-vertical":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/arc-diagram-vertical-510fec31f9d4aefe.js"],"/example/barplot-data-transition-animation":[s,c,i,o,p,a,e,t,k,r,"static/chunks/pages/example/barplot-data-transition-animation-fc8df0dba6abcc31.js"],"/example/barplot-stacked-horizontal":[s,c,i,o,a,e,t,n,d,"static/chunks/pages/example/barplot-stacked-horizontal-cc38dcf6fdc4ea69.js"],"/example/barplot-stacked-vertical":[s,c,i,a,e,t,n,f,"static/chunks/pages/example/barplot-stacked-vertical-642ee93340ed71c0.js"],"/example/boxplot-horizontal":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/boxplot-horizontal-f3f4840afd5c9254.js"],"/example/boxplot-jitter":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/boxplot-jitter-0c5bd9bd7102d91b.js"],"/example/circle-packing-with-d3-force":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/circle-packing-with-d3-force-8e013bef41c752c8.js"],"/example/histogram-mirror":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/histogram-mirror-54a46518e20f5fdf.js"],"/example/histogram-small-multiple":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/histogram-small-multiple-7fcd166f8c70c891.js"],"/example/histogram-with-several-groups":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/histogram-with-several-groups-65fcf3237ad480e5.js"],"/example/line-chart-synchronized-cursors":[s,c,i,o,p,a,e,t,r,"static/chunks/pages/example/line-chart-synchronized-cursors-8652c38f3204d236.js"],"/example/network-diagram-with-colored-groups":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/network-diagram-with-colored-groups-64637dc93ab02c1f.js"],"/example/population-pyramid":[i,p,"static/css/d71181803328322d.css","static/chunks/pages/example/population-pyramid-67f94f5badec49bd.js"],"/example/radar-chart-animation":[s,c,i,o,p,a,e,t,r,"static/chunks/pages/example/radar-chart-animation-15a70ec580185e4b.js"],"/example/scatterplot-basic-canvas":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/scatterplot-basic-canvas-e59e60397c156772.js"],"/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection":[s,c,i,o,a,e,t,r,"static/chunks/pages/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection-203d7a9d1bc1b8ef.js"],"/example/timeseries-moving-average":[s,c,i,o,a,e,t,n,"static/css/0051346e12b181a2.css","static/chunks/pages/example/timeseries-moving-average-812bda06f49b893b.js"],"/fix-canvas-blurry-dataviz":[s,c,o,a,e,t,r,"static/chunks/pages/fix-canvas-blurry-dataviz-4af0c3d36cc71b61.js"],"/heatmap":[s,c,i,o,a,e,t,"static/css/efd490e62b6b40d6.css","static/chunks/pages/heatmap-7ee0ec76c2108be6.js"],"/hexbin-map":[s,c,i,o,a,e,t,v,r,"static/chunks/pages/hexbin-map-cf918439d4f4fca5.js"],"/hierarchical-edge-bundling":[s,c,i,o,a,e,t,z,r,"static/chunks/pages/hierarchical-edge-bundling-479181149ed46c9c.js"],"/histogram":[s,c,i,o,p,a,e,t,n,d,"static/chunks/pages/histogram-66813aef02d7e800.js"],"/interactivity":[s,c,a,e,t,n,f,"static/chunks/pages/interactivity-54e994fb8fdc812d.js"],"/line-chart":[s,c,i,o,p,a,e,t,n,d,"static/chunks/pages/line-chart-a0b85a3167d15f83.js"],"/lollipop-plot":[s,c,i,o,p,a,e,t,n,"static/css/64f55f4f67c1b792.css","static/chunks/pages/lollipop-plot-6fe0f7f4f57c6fdd.js"],"/map":[s,c,i,o,a,e,t,g,r,"static/chunks/pages/map-19bb8bc3512eb38c.js"],"/network-chart":[s,c,i,o,a,e,t,n,d,"static/chunks/pages/network-chart-20eeb0eef115cf74.js"],"/parallel-plot":[s,c,i,o,a,e,t,r,"static/chunks/pages/parallel-plot-25970b16e6625e36.js"],"/pie-plot":[s,c,i,o,p,b,a,e,t,_,"static/css/7b5f8c9d016b3f7c.css","static/chunks/pages/pie-plot-90911147e22806e8.js"],"/radar-chart":[s,c,i,o,a,e,t,n,d,"static/chunks/pages/radar-chart-7f63336695bad06b.js"],"/react-d3-dataviz-course":[s,c,a,e,t,h,"static/chunks/pages/react-d3-dataviz-course-f771d9fed9984c64.js"],"/react-dataviz-animation-with-react-spring":[s,c,i,p,a,e,t,h,"static/chunks/pages/react-dataviz-animation-with-react-spring-991c78b1ba5ec831.js"],"/ridgeline":[s,c,i,o,a,e,t,n,y,d,"static/chunks/pages/ridgeline-496ccb41e3235595.js"],"/sankey-diagram":[s,c,i,o,a,e,t,r,"static/chunks/pages/sankey-diagram-dadacc5bf07b220d.js"],"/scatter-plot":[s,c,i,o,a,e,t,n,m,j,"static/css/1973cdfb43563a59.css","static/chunks/pages/scatter-plot-aac658433f84812b.js"],"/shape-morphism-for-dataviz-with-react":[s,c,i,o,p,b,a,e,t,r,"static/chunks/pages/shape-morphism-for-dataviz-with-react-c7253eef85ade9ff.js"],"/stacked-area-plot":[s,c,i,o,p,b,a,e,t,I,"static/css/c79e5809ea8fe7eb.css","static/chunks/pages/stacked-area-plot-8abcf4a980f9465b.js"],"/stacked-barplot-with-negative-values":[s,c,i,a,e,t,h,"static/chunks/pages/stacked-barplot-with-negative-values-918bd6b7a8902573.js"],"/streamchart":[s,c,i,o,p,b,a,e,t,I,"static/css/003d5c48b04543ca.css","static/chunks/pages/streamchart-80bed00e20cde110.js"],"/subscribe":[s,c,a,e,t,h,"static/chunks/pages/subscribe-cd6b3b49e0189ed1.js"],"/timeseries":[s,c,i,o,p,a,e,t,n,d,"static/chunks/pages/timeseries-700dd1034af1c2a0.js"],"/treemap":[s,c,i,o,a,e,t,"static/css/25919ae4f53719a0.css","static/chunks/pages/treemap-ae99d40681a9dfd4.js"],"/typescript-d3-axis":[s,c,i,o,a,e,t,r,"static/chunks/pages/typescript-d3-axis-55f5ab0e8153b725.js"],"/violin-plot":[s,c,i,o,a,e,t,r,"static/chunks/pages/violin-plot-5e04f2c69ac70eb5.js"],"/viz-from-the-future":[s,c,a,e,t,"static/css/8d4c0e152872e92c.css","static/chunks/pages/viz-from-the-future-49fa6f74df593093.js"],"/voronoi":[s,c,i,o,a,e,t,n,d,"static/chunks/pages/voronoi-7431c12c9500bb92.js"],"/what-is-a-color":[s,c,a,e,t,h,"static/chunks/pages/what-is-a-color-2ceba4025243af3a.js"],"/wordcloud":[s,c,i,o,a,e,t,r,"static/chunks/pages/wordcloud-f3768ea1506d7f1c.js"],sortedPages:["/","/2d-density-plot","/404","/_app","/_error","/about","/all","/animation","/arc-diagram","/area-plot","/articles","/barplot","/boxplot","/bubble-map","/bubble-plot","/build-axis-with-react","/cartogram","/chord-diagram","/choropleth-map","/circular-barplot","/circular-packing","/connected-scatter-plot","/connection-map","/correlogram","/course/axis/axis-variations","/course/axis/axis-with-d3","/course/axis/bottom-axis","/course/axis/introduction","/course/axis/margin-and-translation","/course/hover-effect/css-descendant-selector","/course/hover-effect/css-pseudo-class","/course/hover-effect/internal-state","/course/hover-effect/introduction","/course/hover-effect/link-two-graphs","/course/hover-effect/toggle-class-in-js","/course/introduction/initial-setup","/course/introduction/introduction-to-d3","/course/introduction/introduction-to-react","/course/introduction/js-dataviz-libraries","/course/responsiveness/code-organization","/course/responsiveness/common-pitfalls","/course/responsiveness/introduction","/course/responsiveness/use-dimension-hook","/course/responsiveness/using-the-hook","/course/scales/introduction","/course/svg/introduction","/course/svg/main-svg-elements","/course/svg/path-element","/course/svg/tips-and-tricks","/cross-graph-highlight-interaction","/dataset-transition","/dendrogram","/density-plot","/donut","/example/arc-diagram-vertical","/example/barplot-data-transition-animation","/example/barplot-stacked-horizontal","/example/barplot-stacked-vertical","/example/boxplot-horizontal","/example/boxplot-jitter","/example/circle-packing-with-d3-force","/example/histogram-mirror","/example/histogram-small-multiple","/example/histogram-with-several-groups","/example/line-chart-synchronized-cursors","/example/network-diagram-with-colored-groups","/example/population-pyramid","/example/radar-chart-animation","/example/scatterplot-basic-canvas","/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection","/example/timeseries-moving-average","/fix-canvas-blurry-dataviz","/heatmap","/hexbin-map","/hierarchical-edge-bundling","/histogram","/interactivity","/line-chart","/lollipop-plot","/map","/network-chart","/parallel-plot","/pie-plot","/radar-chart","/react-d3-dataviz-course","/react-dataviz-animation-with-react-spring","/ridgeline","/sankey-diagram","/scatter-plot","/shape-morphism-for-dataviz-with-react","/stacked-area-plot","/stacked-barplot-with-negative-values","/streamchart","/subscribe","/timeseries","/treemap","/typescript-d3-axis","/violin-plot","/viz-from-the-future","/voronoi","/what-is-a-color","/wordcloud"]}}("static/chunks/2343-fd77427f6d276a64.js","static/chunks/8190-bc54b059aeb5396b.js","static/chunks/7754-86d7d1d8f1f2cbb4.js","static/chunks/3710-c14b1d4c5a1a83e2.js","static/chunks/2594-166023395f0e3eec.js","static/chunks/8657-581e9b42e1f41b29.js","static/chunks/7823-7fe55b50301cbfb1.js","static/css/3f9dc76f65000636.css","static/chunks/693-fc37b082b568d0e9.js","static/chunks/2236-19fcef54ecc4f5b6.js","static/css/bf3bc3250ab9e729.css","static/css/0fa95a85e3c094ce.css","static/css/4aaaca05e34861fe.css","static/css/2247407c30b587b7.css","static/chunks/7303-2813398c13243040.js","static/css/537902226fc25775.css","static/chunks/301-fb0066bc9a032722.js","static/chunks/814-6f6cd086489440d9.js","static/chunks/4369-3cf45ab8af8a21da.js","static/chunks/6155-0ba4f3b6f1f1f5ca.js","static/chunks/4131-4e76bf573a6a50e1.js","static/chunks/2830-adbbaa28bd9788fd.js","static/chunks/4133-cb2169106fc9e4f5.js","static/chunks/9041-b8dc7e7055ab97a1.js","static/chunks/7443-dd841eedb9d57660.js","static/chunks/7067-ad41ed7893ce1ebd.js","static/chunks/3646-bfca271cd623b31b.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/chunks/3710-ad4884527bb1921e.js b/_next/static/chunks/3710-ad4884527bb1921e.js new file mode 100644 index 00000000..0eb271b3 --- /dev/null +++ b/_next/static/chunks/3710-ad4884527bb1921e.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3710],{26865:function(e,t,s){"use strict";s.d(t,{y:function(){return i}});var a=s(85893),n=s(8117);let i=e=>{let{lessonStatus:t}=e;return"free"===t?(0,a.jsx)(n.C,{variant:"outlineGreen",className:"font-extralight opacity-90",children:"Free"}):"wip"===t?(0,a.jsx)(n.C,{variant:"outlineOrange",className:"font-extralight opacity-90",children:"Wip"}):"membersOnly"===t?(0,a.jsx)(n.C,{className:"font-extralight opacity-90",children:"Members Only"}):"not available"===t?(0,a.jsx)(n.C,{variant:"outlineDestructive",className:"font-extralight opacity-90",children:"Unavail."}):null}},56438:function(e,t,s){"use strict";s.d(t,{J:function(){return r}});var a=s(85893),n=s(41664),i=s.n(n);let r=e=>{let{children:t,href:s,isFilled:n,size:r="md",isFaded:o}=e,d=s.startsWith("www")||s.startsWith("http"),l="font-normal rounded mr-1 cursor-pointer border-reactGallery border ";n?l+=" bg-reactGallery hover:bg-reactGallery text-white ":l+=" bg-white hover:bg-reactGallery hover:text-white text-reactGallery ","sm"===r&&(l+="text-sm py-1 px-2 "),"md"===r&&(l+="text-md py-2 px-4 "),o&&(l+="opacity-60");let c=(0,a.jsx)("span",{className:l,children:t});return d?(0,a.jsx)("a",{href:s,target:"_blank",children:c}):(0,a.jsx)(i(),{href:s,passHref:!0,children:c})}},43710:function(e,t,s){"use strict";s.d(t,{Z:function(){return H}});var a=s(85893),n=s(67294),i=s(28843),r=s(77522),o=s(61859),d=s(56438),l=s(21832),c=s.n(l);let m=e=>{let{direction:t,text:s,children:n}=e;return(0,a.jsx)("span",{className:c().tooltip+" "+c()[t],id:s,children:n})};var h=s(95887),u=s(26865),p=s(88426),x=s(64998);s(9404);let f=n.forwardRef((e,t)=>{let{...s}=e;return(0,a.jsx)("nav",{ref:t,"aria-label":"breadcrumb",...s})});f.displayName="Breadcrumb";let g=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)("ol",{ref:t,className:(0,r.cn)("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",s),...n})});g.displayName="BreadcrumbList";let j=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)("li",{ref:t,className:(0,r.cn)("inline-flex items-center gap-1.5",s),...n})});j.displayName="BreadcrumbItem";let v=n.forwardRef((e,t)=>{let{asChild:s,className:n,...i}=e,o=s?p.g7:"a";return(0,a.jsx)(o,{ref:t,className:(0,r.cn)("transition-colors hover:text-foreground",n),...i})});v.displayName="BreadcrumbLink";let w=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)("span",{ref:t,role:"link","aria-disabled":"true","aria-current":"page",className:(0,r.cn)("font-normal text-foreground",s),...n})});w.displayName="BreadcrumbPage";let b=e=>{let{children:t,className:s,...n}=e;return(0,a.jsx)("li",{role:"presentation","aria-hidden":"true",className:(0,r.cn)("[&>svg]:size-3.5",s),...n,children:null!=t?t:(0,a.jsx)(x.Z,{})})};b.displayName="BreadcrumbSeparator";var y=s(93133),k=s(13742),N=s(50316);let F=y.fC,I=y.xz;y.ZA;let T=y.Uv,z=y.Tr;y.Ee;let S=n.forwardRef((e,t)=>{let{className:s,inset:n,children:i,...o}=e;return(0,a.jsxs)(y.fF,{ref:t,className:(0,r.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",n&&"pl-8",s),...o,children:[i,(0,a.jsx)(x.Z,{className:"ml-auto h-4 w-4"})]})});S.displayName=y.fF.displayName;let C=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(y.tu,{ref:t,className:(0,r.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...n})});C.displayName=y.tu.displayName;let L=n.forwardRef((e,t)=>{let{className:s,sideOffset:n=4,...i}=e;return(0,a.jsx)(y.Uv,{children:(0,a.jsx)(y.VY,{ref:t,sideOffset:n,className:(0,r.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...i})})});L.displayName=y.VY.displayName;let R=n.forwardRef((e,t)=>{let{className:s,inset:n,...i}=e;return(0,a.jsx)(y.ck,{ref:t,className:(0,r.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",s),...i})});R.displayName=y.ck.displayName;let _=n.forwardRef((e,t)=>{let{className:s,children:n,checked:i,...o}=e;return(0,a.jsxs)(y.oC,{ref:t,className:(0,r.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),checked:i,...o,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(y.wU,{children:(0,a.jsx)(k.Z,{className:"h-4 w-4"})})}),n]})});_.displayName=y.oC.displayName;let G=n.forwardRef((e,t)=>{let{className:s,children:n,...i}=e;return(0,a.jsxs)(y.Rk,{ref:t,className:(0,r.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...i,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(y.wU,{children:(0,a.jsx)(N.Z,{className:"h-2 w-2 fill-current"})})}),n]})});G.displayName=y.Rk.displayName;let B=n.forwardRef((e,t)=>{let{className:s,inset:n,...i}=e;return(0,a.jsx)(y.__,{ref:t,className:(0,r.cn)("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",s),...i})});B.displayName=y.__.displayName;let V=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(y.Z0,{ref:t,className:(0,r.cn)("-mx-1 my-1 h-px bg-muted",s),...n})});V.displayName=y.Z0.displayName;var W=s(5),A=s(89181),D=s(11236),U=s(41664),Y=s.n(U);let Z=e=>{let{selectedLesson:t}=e,s=t.moduleId,n=A.F.find(e=>e.id===s);return n?(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(j,{children:(0,a.jsx)(v,{href:"/react-d3-dataviz-course",className:(0,W.d)({variant:"outline",size:"sm"})+" no-underline text-xs border-gray-200 h-8 text-gray-500",children:"Course"})}),(0,a.jsx)(b,{}),(0,a.jsx)(j,{children:(0,a.jsxs)(F,{children:[(0,a.jsx)(I,{asChild:!0,children:(0,a.jsx)(W.z,{variant:"outline",size:"sm",className:"text-xs border-gray-200 h-8",children:n.name})}),(0,a.jsx)(L,{children:A.F.map((e,n)=>(0,a.jsxs)(z,{children:[(0,a.jsxs)(S,{children:[(0,a.jsx)(N.Z,{fill:"black",size:8,className:"mr-2",opacity:e.id===s?1:0}),(0,a.jsx)("span",{children:e.name})]}),(0,a.jsx)(T,{children:(0,a.jsx)(C,{children:D.Y.filter(t=>t.moduleId===e.id).map((e,s)=>(0,a.jsx)(Y(),{className:"no-underline text-black",href:e.link,children:(0,a.jsxs)(R,{children:[(0,a.jsx)(N.Z,{fill:"black",size:8,className:"mr-2",opacity:e.name===t.name?1:0}),(0,a.jsx)("span",{children:e.name})]})},s))})})]},n))})]})}),(0,a.jsx)(b,{}),(0,a.jsx)(j,{children:(0,a.jsxs)(F,{children:[(0,a.jsx)(I,{asChild:!0,children:(0,a.jsx)(W.z,{variant:"outline",size:"sm",className:"text-xs border-gray-200 h-8",children:t.name})}),(0,a.jsx)(L,{children:D.Y.filter(e=>e.moduleId===s).map((e,s)=>(0,a.jsx)(Y(),{className:"no-underline text-black",href:e.link,children:(0,a.jsxs)(R,{className:"flex justify-between gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(N.Z,{fill:"black",size:8,className:"mr-2",opacity:e.name===t.name?1:0}),e.name]}),(0,a.jsx)(u.y,{lessonStatus:e.status})]})},s))})]})})]})}):null};function H(e){let{title:t,description:s,chartType:n,showSectionLink:l=!1,showInspirationLink:c=!0,showD3GalleryLink:p=!0,lessonStatus:x,readTime:f,selectedLesson:g}=e,j=i.c.find(e=>e.id===n);return(0,a.jsxs)("div",{className:"w-full pt-1 sm:pt-28 pb-20 ",children:[g&&(0,a.jsx)("div",{className:"mb-4",children:(0,a.jsx)(Z,{selectedLesson:g})}),(0,a.jsxs)("div",{className:"flex justify-start items-center",children:[(0,a.jsx)("h1",{children:t}),n&&j&&(0,a.jsx)("div",{className:"w-20 ml-4",children:(0,a.jsx)(h.Z,{chartLogo:null==j?void 0:j.logo})})]}),(0,a.jsx)(o.r,{}),(0,a.jsx)("div",{className:"max-w-xxl py-2",children:s}),n&&(0,a.jsx)("span",{className:"text-gray-400 text-sm font-light",children:"Useful links"}),j&&(0,a.jsxs)("div",{className:"flex flex-row flex-wrap",children:[l&&(0,a.jsx)(m,{text:"visit related section in the gallery",direction:"bottom",children:(0,a.jsx)(d.J,{href:(0,r.y)(j.reactURL),size:"sm",children:j.label+" section"})}),c&&(0,a.jsx)(m,{text:"Hundreds of stunning dataviz projects to gather inspiration",direction:"bottom",children:(0,a.jsx)(d.J,{href:"https://www.dataviz-inspiration.com/"+j.id,size:"sm",children:"inspiration"})}),p&&(0,a.jsx)(m,{text:"Pure d3 implementation, no React",direction:"bottom",children:(0,a.jsx)(d.J,{href:j.d3URL,size:"sm",children:"d3 gallery"})}),(0,a.jsx)(m,{text:"Dataviz theory about this chart",direction:"bottom",children:(0,a.jsx)(d.J,{href:j.dataToVizURL,isFilled:!0,size:"sm",children:"About this chart"})})]}),x&&f&&(0,a.jsxs)("div",{className:"flex flex-row items-center flex-wrap gap-2",children:[(0,a.jsx)(u.y,{lessonStatus:x}),(0,a.jsx)("span",{className:"text-xs",children:f+" minutes read"})]})]})}},8117:function(e,t,s){"use strict";s.d(t,{C:function(){return o}});var a=s(85893);s(67294);var n=s(45139),i=s(77522);let r=(0,n.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground",outlineDestructive:"text-xs text-destructive border-destructive",outlineGreen:"text-xs text-green-500 border-green-500",outlineOrange:"text-xs text-orange-500 border-orange-500"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:s,...n}=e;return(0,a.jsx)("div",{className:(0,i.cn)(r({variant:s}),t),...n})}},5:function(e,t,s){"use strict";s.d(t,{d:function(){return d},z:function(){return l}});var a=s(85893),n=s(67294),i=s(88426),r=s(45139),o=s(77522);let d=(0,r.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),l=n.forwardRef((e,t)=>{let{className:s,variant:n,size:r,asChild:l=!1,...c}=e,m=l?i.g7:"button";return(0,a.jsx)(m,{className:(0,o.cn)(d({variant:n,size:r,className:s})),ref:t,...c})});l.displayName="Button"},11236:function(e,t,s){"use strict";s.d(t,{Y:function(){return n}});var a=s(85893);let n=[{name:"What is react",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"React is the most widely used javascript library when it comes to building user interfaces."})}),readTime:4,link:"/course/introduction/introduction-to-react",status:"free",moduleId:"introduction"},{name:"Chart libraries: don't",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Why it will make you save time at the beginning, but is a bad idea on the long run"})}),readTime:4,link:"/course/introduction/js-dataviz-libraries",status:"wip",moduleId:"introduction"},{name:"What is d3",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"React is the most widely used javascript library when it comes to building user interfaces."})}),readTime:4,link:"/course/introduction/introduction-to-d3",status:"free",moduleId:"introduction"},{name:"Initial setup",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"/course/introduction/initial-setup",status:"wip",moduleId:"introduction"},{name:"Introduction to svg",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"SVG stands for vector graphic. Let's see why it is useful and widespread in dataviz."})}),readTime:4,link:"/course/svg/introduction",status:"free",moduleId:"svg"},{name:"Main SVG elements",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's learn how to draw the basic SVG shapes: circle, rectangles, segment and text."})}),readTime:4,link:"/course/svg/main-svg-elements",status:"free",moduleId:"svg"},{name:"The path element",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"path is the most complicated yet most useful svg element."})}),readTime:4,link:"/course/svg/path-element",status:"free",moduleId:"svg"},{name:"SVG tips & tricks",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"path is the most complicated yet most useful svg element."})}),readTime:4,link:"/course/svg/tips-and-tricks",status:"wip",moduleId:"svg"},{name:"Introduction to scales",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Thanks to SVG we now know how to build any shape anywhere on the screen. But we do not want to draw theme anywhere."}),(0,a.jsx)("p",{children:"We want to draw them on a spot determined by data. And we need a scale for this."})]}),readTime:4,link:"/course/scales/introduction",status:"wip",moduleId:"scales"},{name:"Linear Scales",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Thanks to SVG we now know how to build any shape anywhere on the screen. But we do not want to draw theme anywhere."}),(0,a.jsx)("p",{children:"We want to draw them on a spot determined by data. And we need a scale for this."})]}),readTime:4,link:"/course/scales/linear-scale",status:"wip",moduleId:"scales"},{name:"Other scale types",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Thanks to SVG we now know how to build any shape anywhere on the screen. But we do not want to draw theme anywhere."}),(0,a.jsx)("p",{children:"We want to draw them on a spot determined by data. And we need a scale for this."})]}),readTime:4,link:"/course/scales/other-scale-types",status:"wip",moduleId:"scales"},{name:"Introduction",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"How to add margins around the chart withouth the headache"})}),readTime:4,link:"/course/axis/introduction",status:"wip",moduleId:"axis"},{name:"Margin and translation",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"How to add margins around the chart withouth the headache"})}),readTime:4,link:"/course/axis/margin-and-translation",status:"wip",moduleId:"axis"},{name:"Build a bottom axis",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's learn how to build a bottom axis component"})}),readTime:4,link:"/course/axis/bottom-axis",status:"wip",moduleId:"axis"},{name:"Axis component variations",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Bottom axis? Axis with grids? Axis title? Let's see how to create those variations."})}),readTime:4,link:"/course/axis/axis-variations",status:"wip",moduleId:"axis"},{name:"Alternative: use d3 helper",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"D3 has some great functions to draw the axes. I do not recommend it, but you can use them!"})}),readTime:4,link:"/course/axis/axis-with-d3",status:"wip",moduleId:"axis"},{name:"Introduction to responsiveness",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Learn the basics of what responsiveness means and why it is crucial for creating dynamic charts."})}),readTime:4,link:"/course/responsiveness/introduction",status:"free",moduleId:"responsiveness"},{name:"Creating a useDimensions Hook",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Discover how to create a custom hook that listens for changes in dimensions, a key component for responsive charts."})}),readTime:4,link:"/course/responsiveness/use-dimension-hook",status:"wip",moduleId:"responsiveness"},{name:"Integrating the Hook with Your Graph",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Learn how to pass the results of the useDimensions hook to your graph components to make them fully responsive."})}),readTime:4,link:"/course/responsiveness/using-the-hook",status:"wip",moduleId:"responsiveness"},{name:"Best Practices for Code Organization",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Explore suggested ways to organize your code when working with responsive charts in React and D3."})}),readTime:4,link:"/course/responsiveness/code-organization",status:"wip",moduleId:"responsiveness"},{name:"Common Pitfalls and How to Avoid Them",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Identify common issues you might face when implementing responsive charts and learn strategies to overcome them."})}),readTime:4,link:"/course/responsiveness/common-pitfalls",status:"wip",moduleId:"responsiveness"},{name:"What is it?",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"What's an hover effect? Why is it important? How to make it look good?"})}),readTime:3,link:"/course/hover-effect/introduction",status:"free",moduleId:"hover effect"},{name:"Strategy 1: CSS pseudo element",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"First simple but weak strategy using css pseudo element. Good for performance, but weak in term of design."})}),readTime:4,link:"/course/hover-effect/css-pseudo-class",status:"free",moduleId:"hover effect"},{name:"Strategy 2: CSS descendant selector",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"With smart usage of css descending selectors, you can start creating good looking hover effects."})}),readTime:4,link:"/course/hover-effect/css-descendant-selector",status:"wip",moduleId:"hover effect"},{name:"Strategy 3: toggle css classes",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"With smart usage of css descending selectors, you can start creating good looking hover effects."})}),readTime:4,link:"/course/hover-effect/toggle-class-in-js",status:"wip",moduleId:"hover effect"},{name:"Strategy 4: react internal state",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Perfect to build complicated UIs, but mind the performances!"})}),readTime:4,link:"/course/hover-effect/internal-state",status:"wip",moduleId:"hover effect"},{name:"Design consideration",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Before coding, let's check what a tooltip is, when it can be useful, and how to make it look good."})}),readTime:4,link:"/course/responsiveness/introduction",status:"not available",moduleId:"tooltip"},{name:"Tooltip component",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's create a tooltip component"})}),readTime:4,link:"",status:"not available",moduleId:"tooltip"},{name:"Display on hover",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Now, let's displays the tooltip only on hover, at the right position."})}),readTime:4,link:"",status:"not available",moduleId:"tooltip"},{name:"Templates",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Several tooltip template components ready to be used in your graph."})}),readTime:4,link:"",status:"not available",moduleId:"tooltip"},{name:"Do you really need a legend?",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Check the few alternatives that exist instead of using a legend"})}),readTime:4,link:"",status:"not available",moduleId:"legend"},{name:"Categoric legend",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Check the few alternatives that exist instead of using a legend"})}),readTime:4,link:"",status:"not available",moduleId:"legend"},{name:"Continuous legend",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Check the few alternatives that exist instead of using a legend"})}),readTime:4,link:"",status:"not available",moduleId:"legend"},{name:"local JSON file",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"local csv file",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"data fetching",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"spinner for data loading",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"What's a spring animation",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"There are 2 big families of animation. Let's understand why spring animations are more natural."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"Most simple: animating a circle",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's try to make the most simple animation with react-spring. Just a circle that moves from right to left."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"Application on a scatterplot",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Now, let's create a reusable circle component that we can use to animate a scatterplot transition."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"Enter, Update, Exit",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's see how to deal with shapes that appear, move and leave the graph."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"What is it, and why is it useful?",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Canvas is the alternative to SVG to increase performance. This lesson explains what is it and why it's faster."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"},{name:"Draw basic shapes",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"A quick intro to drawing circles, rectangles, lines, paths and any shape you need."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"},{name:"Tooltip",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"You don't draw the tooltip in canvas. Let's see how to mix layers to use the best of both worlds and display a tooltip."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"},{name:"Hover effect",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's use a little trick for a nice hover effect: using 2 canvas layers: one for the normal state, one for the hovered state."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"}]},89181:function(e,t,s){"use strict";s.d(t,{F:function(){return n}});var a=s(85893);let n=[{id:"introduction",name:"Introduction",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:["While you're likely familiar with React, you might not know that D3 is the ",(0,a.jsx)("b",{children:"essential JavaScript library"})," for data visualization."]}),(0,a.jsxs)("p",{children:["This module provides a quick overview of the ",(0,a.jsx)("b",{children:"tools needed"})," to create great charts in a browser."]})]})},{id:"svg",name:"SVG",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"A graph is basically a compendium of shapes drawn on a screen."}),(0,a.jsx)("p",{children:"The most common way to draw shapes in a browser is to use SVG. Let's learn the essential of what SVG is, step by step."})]})},{id:"scales",name:"Scales",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Your svg area goes from 0 to 500px. Your data goes from 0 to 100. If the value of a data point is 30, where should you draw it?"}),(0,a.jsx)("p",{children:"You need a scale to find out."})]})},{id:"axis",name:"Axes",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Now that we know how to add shapes on the graph, it is time to add context to it. Let's see how to draw axes."})})},{id:"responsiveness",name:"Responsiveness",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Some people have big monitors when others will read your work on their phone. Let's see how to make your graph look good in any situation."})})},{id:"hover effect",name:"Hover effect",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"You want something to happen when a graph element is hovered. This module dives into several strategies using CSS and Javascript. It provides a clear mental modal of the main use cases and how to deal with each of them."})})},{id:"tooltip",name:"Tooltip",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's check how to add a tooltip. Give a tooltip definition. Give several tooltip component starters."})})},{id:"reading-data",name:"Reading data",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Your data can be a json file or a tabular format. It can be hosted locally or available through an API. How can you read it?"})})},{id:"legend",name:"Legend",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Those little legends are often small, but as complicated to build as the main graph. This module provides a few ready to use legend components."})})},{id:"animation",name:"Animation",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("p",{children:["Let's dig into those smooth dataset transition that make the viz magical. It's challenging, but ",(0,a.jsx)("code",{children:"react-spring"})," is of great help here."]})})},{id:"canvas",name:"Canvas",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"With thousands of shapes on your graph, using SVG will make your graph slow."}),(0,a.jsx)("p",{children:"Canvas is an alternative way to draw on a screen. Much more performant, but harder to deal with."})]})}]},21832:function(e){e.exports={tooltip:"tooltip_tooltip__b_kg5",right:"tooltip_right__zvLDU",left:"tooltip_left__mQ0Xf",bottom:"tooltip_bottom__MVFNa",top:"tooltip_top__kPfp4"}}}]); \ No newline at end of file diff --git a/_next/static/chunks/3710-c14b1d4c5a1a83e2.js b/_next/static/chunks/3710-c14b1d4c5a1a83e2.js deleted file mode 100644 index 03c2b5be..00000000 --- a/_next/static/chunks/3710-c14b1d4c5a1a83e2.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3710],{26865:function(e,t,s){"use strict";s.d(t,{y:function(){return i}});var a=s(85893),n=s(8117);let i=e=>{let{lessonStatus:t}=e;return"free"===t?(0,a.jsx)(n.C,{variant:"outlineGreen",className:"font-extralight opacity-90",children:"Free"}):"wip"===t?(0,a.jsx)(n.C,{variant:"outlineOrange",className:"font-extralight opacity-90",children:"Wip"}):"membersOnly"===t?(0,a.jsx)(n.C,{className:"font-extralight opacity-90",children:"Members Only"}):"not available"===t?(0,a.jsx)(n.C,{variant:"outlineDestructive",className:"font-extralight opacity-90",children:"Unavail."}):null}},56438:function(e,t,s){"use strict";s.d(t,{J:function(){return r}});var a=s(85893),n=s(41664),i=s.n(n);let r=e=>{let{children:t,href:s,isFilled:n,size:r="md",isFaded:o}=e,d=s.startsWith("www")||s.startsWith("http"),l="font-normal rounded mr-1 cursor-pointer border-reactGallery border ";n?l+=" bg-reactGallery hover:bg-reactGallery text-white ":l+=" bg-white hover:bg-reactGallery hover:text-white text-reactGallery ","sm"===r&&(l+="text-sm py-1 px-2 "),"md"===r&&(l+="text-md py-2 px-4 "),o&&(l+="opacity-60");let c=(0,a.jsx)("span",{className:l,children:t});return d?(0,a.jsx)("a",{href:s,target:"_blank",children:c}):(0,a.jsx)(i(),{href:s,passHref:!0,children:c})}},43710:function(e,t,s){"use strict";s.d(t,{Z:function(){return H}});var a=s(85893),n=s(67294),i=s(28843),r=s(77522),o=s(61859),d=s(56438),l=s(21832),c=s.n(l);let m=e=>{let{direction:t,text:s,children:n}=e;return(0,a.jsx)("span",{className:c().tooltip+" "+c()[t],id:s,children:n})};var h=s(95887),u=s(26865),p=s(88426),x=s(64998);s(9404);let f=n.forwardRef((e,t)=>{let{...s}=e;return(0,a.jsx)("nav",{ref:t,"aria-label":"breadcrumb",...s})});f.displayName="Breadcrumb";let g=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)("ol",{ref:t,className:(0,r.cn)("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",s),...n})});g.displayName="BreadcrumbList";let j=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)("li",{ref:t,className:(0,r.cn)("inline-flex items-center gap-1.5",s),...n})});j.displayName="BreadcrumbItem";let v=n.forwardRef((e,t)=>{let{asChild:s,className:n,...i}=e,o=s?p.g7:"a";return(0,a.jsx)(o,{ref:t,className:(0,r.cn)("transition-colors hover:text-foreground",n),...i})});v.displayName="BreadcrumbLink";let w=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)("span",{ref:t,role:"link","aria-disabled":"true","aria-current":"page",className:(0,r.cn)("font-normal text-foreground",s),...n})});w.displayName="BreadcrumbPage";let b=e=>{let{children:t,className:s,...n}=e;return(0,a.jsx)("li",{role:"presentation","aria-hidden":"true",className:(0,r.cn)("[&>svg]:size-3.5",s),...n,children:null!=t?t:(0,a.jsx)(x.Z,{})})};b.displayName="BreadcrumbSeparator";var y=s(93133),k=s(13742),N=s(50316);let F=y.fC,I=y.xz;y.ZA;let T=y.Uv,z=y.Tr;y.Ee;let S=n.forwardRef((e,t)=>{let{className:s,inset:n,children:i,...o}=e;return(0,a.jsxs)(y.fF,{ref:t,className:(0,r.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",n&&"pl-8",s),...o,children:[i,(0,a.jsx)(x.Z,{className:"ml-auto h-4 w-4"})]})});S.displayName=y.fF.displayName;let C=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(y.tu,{ref:t,className:(0,r.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...n})});C.displayName=y.tu.displayName;let L=n.forwardRef((e,t)=>{let{className:s,sideOffset:n=4,...i}=e;return(0,a.jsx)(y.Uv,{children:(0,a.jsx)(y.VY,{ref:t,sideOffset:n,className:(0,r.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",s),...i})})});L.displayName=y.VY.displayName;let R=n.forwardRef((e,t)=>{let{className:s,inset:n,...i}=e;return(0,a.jsx)(y.ck,{ref:t,className:(0,r.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",s),...i})});R.displayName=y.ck.displayName;let _=n.forwardRef((e,t)=>{let{className:s,children:n,checked:i,...o}=e;return(0,a.jsxs)(y.oC,{ref:t,className:(0,r.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),checked:i,...o,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(y.wU,{children:(0,a.jsx)(k.Z,{className:"h-4 w-4"})})}),n]})});_.displayName=y.oC.displayName;let G=n.forwardRef((e,t)=>{let{className:s,children:n,...i}=e;return(0,a.jsxs)(y.Rk,{ref:t,className:(0,r.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...i,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(y.wU,{children:(0,a.jsx)(N.Z,{className:"h-2 w-2 fill-current"})})}),n]})});G.displayName=y.Rk.displayName;let B=n.forwardRef((e,t)=>{let{className:s,inset:n,...i}=e;return(0,a.jsx)(y.__,{ref:t,className:(0,r.cn)("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",s),...i})});B.displayName=y.__.displayName;let V=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(y.Z0,{ref:t,className:(0,r.cn)("-mx-1 my-1 h-px bg-muted",s),...n})});V.displayName=y.Z0.displayName;var W=s(5),A=s(89181),D=s(11236),U=s(41664),Y=s.n(U);let Z=e=>{let{selectedLesson:t}=e,s=t.moduleId,n=A.F.find(e=>e.id===s);return n?(0,a.jsx)(f,{children:(0,a.jsxs)(g,{children:[(0,a.jsx)(j,{children:(0,a.jsx)(v,{href:"/react-d3-dataviz-course",className:(0,W.d)({variant:"outline",size:"sm"})+" no-underline text-xs border-gray-200 h-8 text-gray-500",children:"Course"})}),(0,a.jsx)(b,{}),(0,a.jsx)(j,{children:(0,a.jsxs)(F,{children:[(0,a.jsx)(I,{asChild:!0,children:(0,a.jsx)(W.z,{variant:"outline",size:"sm",className:"text-xs border-gray-200 h-8",children:n.name})}),(0,a.jsx)(L,{children:A.F.map((e,n)=>(0,a.jsxs)(z,{children:[(0,a.jsxs)(S,{children:[(0,a.jsx)(N.Z,{fill:"black",size:8,className:"mr-2",opacity:e.id===s?1:0}),(0,a.jsx)("span",{children:e.name})]}),(0,a.jsx)(T,{children:(0,a.jsx)(C,{children:D.Y.filter(t=>t.moduleId===e.id).map((e,s)=>(0,a.jsx)(Y(),{className:"no-underline text-black",href:e.link,children:(0,a.jsxs)(R,{children:[(0,a.jsx)(N.Z,{fill:"black",size:8,className:"mr-2",opacity:e.name===t.name?1:0}),(0,a.jsx)("span",{children:e.name})]})},s))})})]},n))})]})}),(0,a.jsx)(b,{}),(0,a.jsx)(j,{children:(0,a.jsxs)(F,{children:[(0,a.jsx)(I,{asChild:!0,children:(0,a.jsx)(W.z,{variant:"outline",size:"sm",className:"text-xs border-gray-200 h-8",children:t.name})}),(0,a.jsx)(L,{children:D.Y.filter(e=>e.moduleId===s).map((e,s)=>(0,a.jsx)(Y(),{className:"no-underline text-black",href:e.link,children:(0,a.jsxs)(R,{className:"flex justify-between gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(N.Z,{fill:"black",size:8,className:"mr-2",opacity:e.name===t.name?1:0}),e.name]}),(0,a.jsx)(u.y,{lessonStatus:e.status})]})},s))})]})})]})}):null};function H(e){let{title:t,description:s,chartType:n,showSectionLink:l=!1,showInspirationLink:c=!0,showD3GalleryLink:p=!0,lessonStatus:x,readTime:f,selectedLesson:g}=e,j=i.c.find(e=>e.id===n);return(0,a.jsxs)("div",{className:"w-full pt-1 sm:pt-28 pb-20 ",children:[g&&(0,a.jsx)("div",{className:"mb-4",children:(0,a.jsx)(Z,{selectedLesson:g})}),(0,a.jsxs)("div",{className:"flex justify-start items-center",children:[(0,a.jsx)("h1",{children:t}),n&&j&&(0,a.jsx)("div",{className:"w-20 ml-4",children:(0,a.jsx)(h.Z,{chartLogo:null==j?void 0:j.logo})})]}),(0,a.jsx)(o.r,{}),(0,a.jsx)("div",{className:"max-w-xxl py-2",children:s}),n&&(0,a.jsx)("span",{className:"text-gray-400 text-sm font-light",children:"Useful links"}),j&&(0,a.jsxs)("div",{className:"flex flex-row flex-wrap",children:[l&&(0,a.jsx)(m,{text:"visit related section in the gallery",direction:"bottom",children:(0,a.jsx)(d.J,{href:(0,r.y)(j.reactURL),size:"sm",children:j.label+" section"})}),c&&(0,a.jsx)(m,{text:"Hundreds of stunning dataviz projects to gather inspiration",direction:"bottom",children:(0,a.jsx)(d.J,{href:"https://www.dataviz-inspiration.com/"+j.id,size:"sm",children:"inspiration"})}),p&&(0,a.jsx)(m,{text:"Pure d3 implementation, no React",direction:"bottom",children:(0,a.jsx)(d.J,{href:j.d3URL,size:"sm",children:"d3 gallery"})}),(0,a.jsx)(m,{text:"Dataviz theory about this chart",direction:"bottom",children:(0,a.jsx)(d.J,{href:j.dataToVizURL,isFilled:!0,size:"sm",children:"About this chart"})})]}),x&&f&&(0,a.jsxs)("div",{className:"flex flex-row items-center flex-wrap gap-2",children:[(0,a.jsx)(u.y,{lessonStatus:x}),(0,a.jsx)("span",{className:"text-xs",children:f+" minutes read"})]})]})}},8117:function(e,t,s){"use strict";s.d(t,{C:function(){return o}});var a=s(85893);s(67294);var n=s(45139),i=s(77522);let r=(0,n.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground",outlineDestructive:"text-xs text-destructive border-destructive",outlineGreen:"text-xs text-green-500 border-green-500",outlineOrange:"text-xs text-orange-500 border-orange-500"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:s,...n}=e;return(0,a.jsx)("div",{className:(0,i.cn)(r({variant:s}),t),...n})}},5:function(e,t,s){"use strict";s.d(t,{d:function(){return d},z:function(){return l}});var a=s(85893),n=s(67294),i=s(88426),r=s(45139),o=s(77522);let d=(0,r.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),l=n.forwardRef((e,t)=>{let{className:s,variant:n,size:r,asChild:l=!1,...c}=e,m=l?i.g7:"button";return(0,a.jsx)(m,{className:(0,o.cn)(d({variant:n,size:r,className:s})),ref:t,...c})});l.displayName="Button"},11236:function(e,t,s){"use strict";s.d(t,{Y:function(){return n}});var a=s(85893);let n=[{name:"What is react",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"React is the most widely used javascript library when it comes to building user interfaces."})}),readTime:4,link:"/course/introduction/introduction-to-react",status:"free",moduleId:"introduction"},{name:"Chart libraries: don't",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Why it will make you save time at the beginning, but is a bad idea on the long run"})}),readTime:4,link:"/course/introduction/js-dataviz-libraries",status:"wip",moduleId:"introduction"},{name:"What is d3",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"React is the most widely used javascript library when it comes to building user interfaces."})}),readTime:4,link:"/course/introduction/introduction-to-d3",status:"wip",moduleId:"introduction"},{name:"Initial setup",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"/course/introduction/initial-setup",status:"wip",moduleId:"introduction"},{name:"Introduction to svg",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"SVG stands for vector graphic. Let's see why it is useful and widespread in dataviz."})}),readTime:4,link:"/course/svg/introduction",status:"free",moduleId:"svg"},{name:"Main SVG elements",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's learn how to draw the basic SVG shapes: circle, rectangles, segment and text."})}),readTime:4,link:"/course/svg/main-svg-elements",status:"free",moduleId:"svg"},{name:"The path element",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"path is the most complicated yet most useful svg element."})}),readTime:4,link:"/course/svg/path-element",status:"free",moduleId:"svg"},{name:"SVG tips & tricks",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"path is the most complicated yet most useful svg element."})}),readTime:4,link:"/course/svg/tips-and-tricks",status:"wip",moduleId:"svg"},{name:"Introduction to scales",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Thanks to SVG we now know how to build any shape anywhere on the screen. But we do not want to draw theme anywhere."}),(0,a.jsx)("p",{children:"We want to draw them on a spot determined by data. And we need a scale for this."})]}),readTime:4,link:"/course/scales/introduction",status:"wip",moduleId:"scales"},{name:"Linear Scales",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Thanks to SVG we now know how to build any shape anywhere on the screen. But we do not want to draw theme anywhere."}),(0,a.jsx)("p",{children:"We want to draw them on a spot determined by data. And we need a scale for this."})]}),readTime:4,link:"/course/scales/linear-scale",status:"wip",moduleId:"scales"},{name:"Other scale types",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Thanks to SVG we now know how to build any shape anywhere on the screen. But we do not want to draw theme anywhere."}),(0,a.jsx)("p",{children:"We want to draw them on a spot determined by data. And we need a scale for this."})]}),readTime:4,link:"/course/scales/other-scale-types",status:"wip",moduleId:"scales"},{name:"Introduction",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"How to add margins around the chart withouth the headache"})}),readTime:4,link:"/course/axis/introduction",status:"wip",moduleId:"axis"},{name:"Margin and translation",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"How to add margins around the chart withouth the headache"})}),readTime:4,link:"/course/axis/margin-and-translation",status:"wip",moduleId:"axis"},{name:"Build a bottom axis",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's learn how to build a bottom axis component"})}),readTime:4,link:"/course/axis/bottom-axis",status:"wip",moduleId:"axis"},{name:"Axis component variations",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Bottom axis? Axis with grids? Axis title? Let's see how to create those variations."})}),readTime:4,link:"/course/axis/axis-variations",status:"wip",moduleId:"axis"},{name:"Alternative: use d3 helper",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"D3 has some great functions to draw the axes. I do not recommend it, but you can use them!"})}),readTime:4,link:"/course/axis/axis-with-d3",status:"wip",moduleId:"axis"},{name:"Introduction to responsiveness",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Learn the basics of what responsiveness means and why it is crucial for creating dynamic charts."})}),readTime:4,link:"/course/responsiveness/introduction",status:"free",moduleId:"responsiveness"},{name:"Creating a useDimensions Hook",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Discover how to create a custom hook that listens for changes in dimensions, a key component for responsive charts."})}),readTime:4,link:"/course/responsiveness/use-dimension-hook",status:"wip",moduleId:"responsiveness"},{name:"Integrating the Hook with Your Graph",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Learn how to pass the results of the useDimensions hook to your graph components to make them fully responsive."})}),readTime:4,link:"/course/responsiveness/using-the-hook",status:"wip",moduleId:"responsiveness"},{name:"Best Practices for Code Organization",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Explore suggested ways to organize your code when working with responsive charts in React and D3."})}),readTime:4,link:"/course/responsiveness/code-organization",status:"wip",moduleId:"responsiveness"},{name:"Common Pitfalls and How to Avoid Them",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Identify common issues you might face when implementing responsive charts and learn strategies to overcome them."})}),readTime:4,link:"/course/responsiveness/common-pitfalls",status:"wip",moduleId:"responsiveness"},{name:"What is it?",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"What's an hover effect? Why is it important? How to make it look good?"})}),readTime:3,link:"/course/hover-effect/introduction",status:"free",moduleId:"hover effect"},{name:"Strategy 1: CSS pseudo element",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"First simple but weak strategy using css pseudo element. Good for performance, but weak in term of design."})}),readTime:4,link:"/course/hover-effect/css-pseudo-class",status:"free",moduleId:"hover effect"},{name:"Strategy 2: CSS descendant selector",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"With smart usage of css descending selectors, you can start creating good looking hover effects."})}),readTime:4,link:"/course/hover-effect/css-descendant-selector",status:"wip",moduleId:"hover effect"},{name:"Strategy 3: toggle css classes",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"With smart usage of css descending selectors, you can start creating good looking hover effects."})}),readTime:4,link:"/course/hover-effect/toggle-class-in-js",status:"wip",moduleId:"hover effect"},{name:"Strategy 4: react internal state",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Perfect to build complicated UIs, but mind the performances!"})}),readTime:4,link:"/course/hover-effect/internal-state",status:"wip",moduleId:"hover effect"},{name:"Design consideration",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Before coding, let's check what a tooltip is, when it can be useful, and how to make it look good."})}),readTime:4,link:"/course/responsiveness/introduction",status:"not available",moduleId:"tooltip"},{name:"Tooltip component",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's create a tooltip component"})}),readTime:4,link:"",status:"not available",moduleId:"tooltip"},{name:"Display on hover",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Now, let's displays the tooltip only on hover, at the right position."})}),readTime:4,link:"",status:"not available",moduleId:"tooltip"},{name:"Templates",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Several tooltip template components ready to be used in your graph."})}),readTime:4,link:"",status:"not available",moduleId:"tooltip"},{name:"Do you really need a legend?",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Check the few alternatives that exist instead of using a legend"})}),readTime:4,link:"",status:"not available",moduleId:"legend"},{name:"Categoric legend",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Check the few alternatives that exist instead of using a legend"})}),readTime:4,link:"",status:"not available",moduleId:"legend"},{name:"Continuous legend",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Check the few alternatives that exist instead of using a legend"})}),readTime:4,link:"",status:"not available",moduleId:"legend"},{name:"local JSON file",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"local csv file",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"data fetching",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"spinner for data loading",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Be ready to build graph in 10 seconds."})}),readTime:4,link:"",status:"not available",moduleId:"reading-data"},{name:"What's a spring animation",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"There are 2 big families of animation. Let's understand why spring animations are more natural."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"Most simple: animating a circle",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's try to make the most simple animation with react-spring. Just a circle that moves from right to left."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"Application on a scatterplot",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Now, let's create a reusable circle component that we can use to animate a scatterplot transition."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"Enter, Update, Exit",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's see how to deal with shapes that appear, move and leave the graph."})}),readTime:4,link:"",status:"not available",moduleId:"animation"},{name:"What is it, and why is it useful?",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Canvas is the alternative to SVG to increase performance. This lesson explains what is it and why it's faster."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"},{name:"Draw basic shapes",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"A quick intro to drawing circles, rectangles, lines, paths and any shape you need."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"},{name:"Tooltip",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"You don't draw the tooltip in canvas. Let's see how to mix layers to use the best of both worlds and display a tooltip."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"},{name:"Hover effect",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's use a little trick for a nice hover effect: using 2 canvas layers: one for the normal state, one for the hovered state."})}),readTime:4,link:"",status:"not available",moduleId:"canvas"}]},89181:function(e,t,s){"use strict";s.d(t,{F:function(){return n}});var a=s(85893);let n=[{id:"introduction",name:"Introduction",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("p",{children:["While you're likely familiar with React, you might not know that D3 is the ",(0,a.jsx)("b",{children:"essential JavaScript library"})," for data visualization."]}),(0,a.jsxs)("p",{children:["This module provides a quick overview of the ",(0,a.jsx)("b",{children:"tools needed"})," to create great charts in a browser."]})]})},{id:"svg",name:"SVG",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"A graph is basically a compendium of shapes drawn on a screen."}),(0,a.jsx)("p",{children:"The most common way to draw shapes in a browser is to use SVG. Let's learn the essential of what SVG is, step by step."})]})},{id:"scales",name:"Scales",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"Your svg area goes from 0 to 500px. Your data goes from 0 to 100. If the value of a data point is 30, where should you draw it?"}),(0,a.jsx)("p",{children:"You need a scale to find out."})]})},{id:"axis",name:"Axes",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Now that we know how to add shapes on the graph, it is time to add context to it. Let's see how to draw axes."})})},{id:"responsiveness",name:"Responsiveness",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Some people have big monitors when others will read your work on their phone. Let's see how to make your graph look good in any situation."})})},{id:"hover effect",name:"Hover effect",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"You want something to happen when a graph element is hovered. This module dives into several strategies using CSS and Javascript. It provides a clear mental modal of the main use cases and how to deal with each of them."})})},{id:"tooltip",name:"Tooltip",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Let's check how to add a tooltip. Give a tooltip definition. Give several tooltip component starters."})})},{id:"reading-data",name:"Reading data",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Your data can be a json file or a tabular format. It can be hosted locally or available through an API. How can you read it?"})})},{id:"legend",name:"Legend",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("p",{children:"Those little legends are often small, but as complicated to build as the main graph. This module provides a few ready to use legend components."})})},{id:"animation",name:"Animation",description:(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("p",{children:["Let's dig into those smooth dataset transition that make the viz magical. It's challenging, but ",(0,a.jsx)("code",{children:"react-spring"})," is of great help here."]})})},{id:"canvas",name:"Canvas",description:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{children:"With thousands of shapes on your graph, using SVG will make your graph slow."}),(0,a.jsx)("p",{children:"Canvas is an alternative way to draw on a screen. Much more performant, but harder to deal with."})]})}]},21832:function(e){e.exports={tooltip:"tooltip_tooltip__b_kg5",right:"tooltip_right__zvLDU",left:"tooltip_left__mQ0Xf",bottom:"tooltip_bottom__MVFNa",top:"tooltip_top__kPfp4"}}}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/course/introduction/introduction-to-d3-6181d1c81df340d4.js b/_next/static/chunks/pages/course/introduction/introduction-to-d3-6181d1c81df340d4.js deleted file mode 100644 index 93430c14..00000000 --- a/_next/static/chunks/pages/course/introduction/introduction-to-d3-6181d1c81df340d4.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4065],{15047:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/course/introduction/introduction-to-d3",function(){return n(83171)}])},41843:function(e,t,n){"use strict";n.d(t,{p:function(){return o}});var i=n(85893),s=n(49700),r=n(63476),l=n(17414),c=n(41664),a=n.n(c);let o=e=>{let{children:t,title:n,seoDescription:c,previousTocItem:o,nextTocItem:d}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.A,{title:n,seoDescription:c}),(0,i.jsx)(s.Z,{}),(0,i.jsx)("div",{className:"wrapper",children:t}),(0,i.jsxs)("div",{className:"flex justify-center items-center space-x-6 my-24 py-12 bg-muted/50",children:[o?(0,i.jsxs)(a(),{href:o.link,className:"text-gray-500 no-underline flex flex-col justify-start items-end w-96 h-32 border-r border-black p-8 hover:bg-muted ",children:[(0,i.jsx)("span",{className:"uppercase font-light text-transparent bg-gradient-to-l to-fuchsia-300 from-blue-400 bg-clip-text",children:"← Previous"}),(0,i.jsx)("p",{children:o.name})]}):(0,i.jsx)("div",{className:"w-96"}),d&&(0,i.jsxs)(a(),{href:d.link,className:"text-gray-500 no-underline flex flex-col justify-start w-96 h-32 border-l border-black p-8 hover:bg-muted ",children:[(0,i.jsx)("span",{className:"uppercase font-light text-transparent bg-gradient-to-l from-fuchsia-300 to-blue-400 bg-clip-text",children:"Next →"}),(0,i.jsx)("p",{children:d.name})]})]}),(0,i.jsx)("div",{className:"wrapper",children:(0,i.jsx)(r.Z,{})})]})}},83171:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var i=n(85893);n(67294);var s=n(43710),r=n(41843),l=n(11236);function c(){let e=l.Y.find(e=>"/course/introduction/introduction-to-d3"===e.link);return e?(0,i.jsxs)(r.p,{title:e.name,seoDescription:"",nextTocItem:l.Y.find(e=>"/course/introduction/initial-setup"===e.link),previousTocItem:l.Y.find(e=>"/course/introduction/js-dataviz-libraries"===e.link),children:[(0,i.jsx)(s.Z,{title:e.name,lessonStatus:e.status,readTime:e.readTime,selectedLesson:e,description:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("p",{children:"d3 is THE reference when it comes to build viz on the web"}),(0,i.jsx)("p",{children:"But we will use only a fraction of what it offers."})]})}),(0,i.jsx)("h2",{children:"What is d3"}),(0,i.jsx)("p",{children:"Explain what d3 is in a nutshell."}),(0,i.jsx)("p",{children:"Link to d3 graph gallery."}),(0,i.jsx)("h2",{children:"Why is d3 so useful?"}),(0,i.jsx)("p",{children:"Give the example of an awesome d3 function. May be the treemap function?"}),(0,i.jsx)("h2",{children:"Only a fraction"}),(0,i.jsx)("p",{children:"Create circle pack of all the modules. Explain that we will use only a fraction of this."})]}):null}}},function(e){e.O(0,[2343,7754,8190,3710,9774,2888,179],function(){return e(e.s=15047)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/course/introduction/introduction-to-d3-8562c260eec219f7.js b/_next/static/chunks/pages/course/introduction/introduction-to-d3-8562c260eec219f7.js new file mode 100644 index 00000000..9717eda4 --- /dev/null +++ b/_next/static/chunks/pages/course/introduction/introduction-to-d3-8562c260eec219f7.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4065],{15047:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/course/introduction/introduction-to-d3",function(){return n(83171)}])},81122:function(e,t,n){"use strict";n.d(t,{$:function(){return c}});var i=n(85893),s=n(67294),r=n(59973),a=n(80615),l=n(88578),o=n(5);let c=e=>{let{VizComponent:t,vizName:n,height:c=400,maxWidth:d=800,caption:h}=e,[u,m]=(0,s.useState)(!1),x=(0,s.useRef)(null),p=(0,r.B)(x);return(0,i.jsx)("div",{style:{marginLeft:"-50vw",left:"50%"},className:"my-4 py-4 w-screen relative",children:u?(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center w-full",children:[(0,i.jsx)("div",{style:{maxWidth:2e3},className:"w-full z-50",children:(0,i.jsx)(l.X,{vizName:n})}),(0,i.jsx)("div",{className:"flex justify-center mt-2",children:(0,i.jsx)(o.z,{size:"sm",onClick:()=>m(!u),children:"Hide Sandbox"})})]}):(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center",children:[(0,i.jsx)("div",{className:"bg-gray-100 bg-opacity-50 w-screen flex justify-center z-50 pointer-events-none",children:(0,i.jsx)("div",{style:{height:c,width:"100%",maxWidth:d},ref:x,className:"pointer-events-auto",children:(0,i.jsx)(t,{height:c,width:p.width})})}),(0,i.jsx)(a.Y,{children:h}),(0,i.jsx)("div",{className:"flex justify-center",children:(0,i.jsx)(o.z,{size:"sm",onClick:()=>m(!u),children:"Show code"})})]})})}},88578:function(e,t,n){"use strict";n.d(t,{X:function(){return s}});var i=n(85893);n(67294);let s=e=>{let{vizName:t}=e;return(0,i.jsx)("iframe",{src:"https://codesandbox.io/embed/github/holtzy/react-graph-gallery/tree/main/viz/"+t+"?fontsize=14&hidenavigation=1&theme=dark&expanddevtools=0",style:{width:"100%",height:"500px",border:"solid",borderWidth:2,borderRadius:"4px",overflow:"hidden"},allow:"accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking",sandbox:"allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"})}},41843:function(e,t,n){"use strict";n.d(t,{p:function(){return c}});var i=n(85893),s=n(49700),r=n(63476),a=n(17414),l=n(41664),o=n.n(l);let c=e=>{let{children:t,title:n,seoDescription:l,previousTocItem:c,nextTocItem:d}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.A,{title:n,seoDescription:l}),(0,i.jsx)(s.Z,{}),(0,i.jsx)("div",{className:"wrapper",children:t}),(0,i.jsxs)("div",{className:"flex justify-center items-center space-x-6 my-24 py-12 bg-muted/50",children:[c?(0,i.jsxs)(o(),{href:c.link,className:"text-gray-500 no-underline flex flex-col justify-start items-end w-96 h-32 border-r border-black p-8 hover:bg-muted ",children:[(0,i.jsx)("span",{className:"uppercase font-light text-transparent bg-gradient-to-l to-fuchsia-300 from-blue-400 bg-clip-text",children:"← Previous"}),(0,i.jsx)("p",{children:c.name})]}):(0,i.jsx)("div",{className:"w-96"}),d&&(0,i.jsxs)(o(),{href:d.link,className:"text-gray-500 no-underline flex flex-col justify-start w-96 h-32 border-l border-black p-8 hover:bg-muted ",children:[(0,i.jsx)("span",{className:"uppercase font-light text-transparent bg-gradient-to-l from-fuchsia-300 to-blue-400 bg-clip-text",children:"Next →"}),(0,i.jsx)("p",{children:d.name})]})]}),(0,i.jsx)("div",{className:"wrapper",children:(0,i.jsx)(r.Z,{})})]})}},80615:function(e,t,n){"use strict";n.d(t,{Y:function(){return s}});var i=n(85893);let s=e=>{let{children:t}=e;return(0,i.jsx)("p",{className:"text-sm text-gray-500 max-w-xs italic text-center mt-4 font-light",children:t})}},59973:function(e,t,n){"use strict";n.d(t,{B:function(){return s}});var i=n(67294);let s=e=>{let t=()=>({width:e.current?e.current.offsetWidth:0,height:e.current?e.current.offsetHeight:0}),[n,s]=(0,i.useState)(t),r=()=>{s(t())};return(0,i.useEffect)(()=>(window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)),[]),(0,i.useEffect)(()=>{r()},[e]),n}},83171:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});var i=n(85893);n(67294);var s=n(43710),r=n(41843),a=n(11236),l=n(80615),o=n(81122),c=n(98332),d=n(41664),h=n.n(d);function u(){let e=a.Y.find(e=>"/course/introduction/introduction-to-d3"===e.link);return e?(0,i.jsxs)(r.p,{title:e.name,seoDescription:"",nextTocItem:a.Y.find(e=>"/course/introduction/initial-setup"===e.link),previousTocItem:a.Y.find(e=>"/course/introduction/js-dataviz-libraries"===e.link),children:[(0,i.jsx)(s.Z,{title:e.name,lessonStatus:e.status,readTime:e.readTime,selectedLesson:e,description:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("p",{children:[(0,i.jsx)("a",{href:"https://d3js.org",children:"D3.js"})," is a powerful JavaScript library that offers a wide range of functions for creating dynamic graphs and visualizations."]}),(0,i.jsxs)("p",{children:["Its popularity is ",(0,i.jsx)("b",{children:"immense"}),"; you’ll find it hard to encounter a web-based graph that doesn’t leverage D3 in some capacity. Let’s explore why it’s become such an essential tool."]})]})}),(0,i.jsx)("h2",{children:"\uD83C\uDF33 Try to make a treemap"}),(0,i.jsxs)("p",{children:["Do you know what a"," ",(0,i.jsx)("a",{href:"https://www.data-to-viz.com/graph/treemap.html",children:"treemap"})," is?"]}),(0,i.jsxs)("p",{children:["It is this kind of graph, where rectangles are used to represent hierarchical data, with size ",(0,i.jsx)("b",{children:"proportional"})," to a value:"]}),(0,i.jsx)(o.$,{vizName:"Treemap2Levels",VizComponent:c.e,maxWidth:600,height:400,caption:"A basic treemap made with React and D3.js"}),(0,i.jsxs)("p",{children:["Drawing rectangles with React and some ",(0,i.jsx)("code",{children:"div"}),"s is simple. But"," ",(0,i.jsx)("b",{children:"how do you calculate the coordinates"})," to ensure each rectangle's area matches its corresponding value? \uD83D\uDE48"]}),(0,i.jsxs)("p",{children:["That's exactly what the ",(0,i.jsx)("code",{children:"treemap()"})," function in d3.js does for you."]}),(0,i.jsx)("p",{children:"And that's why we need d3!"}),(0,i.jsx)("p",{children:(0,i.jsx)("br",{})}),(0,i.jsxs)("blockquote",{children:["Note: the React Graph Gallery has a whole section on"," ",(0,i.jsx)(h(),{href:"/treemap",children:"treemaps"}),"! But do not try to understand the code for now!"]}),(0,i.jsx)("h2",{children:"❌ Not a Charting library"}),(0,i.jsxs)("p",{children:["It's important to understand that D3 is ",(0,i.jsx)("b",{children:"not a charting library"}),"."]}),(0,i.jsxs)("p",{children:["A charting library would offer a ready-made ",(0,i.jsx)("code",{children:"Scatterplot"})," ","component where you pass some properties, and it renders the chart for you."]}),(0,i.jsxs)("p",{children:["D3 doesn’t do that. It provides utility functions to help you create your scatterplot, but ",(0,i.jsx)("b",{children:"it won’t build it for you"}),"."]}),(0,i.jsxs)("div",{className:"flex flex-col items-center mt-8 mb-12",children:[(0,i.jsx)("img",{src:"/img/d3-website-overview.png",style:{width:"100%",maxWidth:900},alt:"Screenshot of the d3.js website"}),(0,i.jsx)(l.Y,{children:"D3.js website screenshot."})]}),(0,i.jsxs)("p",{children:['That\'s why d3 is ideal for "bespoke" dataviz. It requires more effort but gives you ',(0,i.jsx)("b",{children:"complete control"})," for any customization."]}),(0,i.jsx)("h2",{children:"\uD83D\uDDE1️ Only a fraction"}),(0,i.jsx)("p",{children:"D3.js offers a wide range of functions, which can be grouped into two main categories:"}),(0,i.jsx)("h3",{children:"\uD83D\uDCD0 Math functions"}),(0,i.jsxs)("p",{children:["These include functions like ",(0,i.jsx)("code",{children:"treemap()"})," mentioned earlier. They return numbers, positions, colors, or text, but don’t interact with the DOM."]}),(0,i.jsx)("h3",{children:"✍️ Rendering functions"}),(0,i.jsxs)("p",{children:["Functions that modify the DOM, like ",(0,i.jsx)("code",{children:"append"}),", which can add elements (e.g., a circle) to an SVG."]}),(0,i.jsx)("p",{children:(0,i.jsx)("br",{})}),(0,i.jsx)("p",{children:"Here’s the good news: in a React environment, we only need D3's math functions, since all the rendering will be handled by React and its JSX!"})]}):null}},98332:function(e,t,n){"use strict";n.d(t,{e:function(){return c}});var i=n(85893);let s={type:"node",name:"boss",value:0,children:[{type:"node",name:"Team Dataviz",value:0,children:[{type:"leaf",name:"Mark",value:90},{type:"leaf",name:"Robert",value:12},{type:"leaf",name:"Emily",value:34},{type:"leaf",name:"Marion",value:53}]},{type:"node",name:"Team DevOps",value:0,children:[{type:"leaf",name:"Nicolas",value:98},{type:"leaf",name:"Malki",value:22},{type:"leaf",name:"Dj\xe9",value:12}]},{type:"node",name:"Team Sales",value:0,children:[{type:"leaf",name:"M\xe9lanie",value:45},{type:"leaf",name:"Einstein",value:76}]}]};var r=n(67294),a=n(88657);let l=["#e0ac2b","#6689c6","#a4c969","#e85252","#9a6fb0","#a53253","#7f7f7f"],o=e=>{let{width:t,height:n,data:s}=e,o=(0,r.useMemo)(()=>a.bT9(s).sum(e=>e.value),[s]),c=null==o?void 0:null===(d=o.children)||void 0===d?void 0:d.map(e=>e.data.name);var d,h=a.PKp().domain(c||[]).range(l);let u=(0,r.useMemo)(()=>{let e=a.pNI().size([t,n]).padding(4);return e(o)},[o,t,n]),m=u.leaves().map((e,t)=>{var n;let s=null===(n=e.parent)||void 0===n?void 0:n.data.name;return(0,i.jsxs)("g",{children:[(0,i.jsx)("rect",{x:e.x0,y:e.y0,width:e.x1-e.x0,height:e.y1-e.y0,stroke:"transparent",fill:h(s),className:"opacity-80 hover:opacity-100"}),(0,i.jsx)("text",{x:e.x0+3,y:e.y0+3,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-bold",children:e.data.name}),(0,i.jsx)("text",{x:e.x0+3,y:e.y0+18,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-light",children:e.data.value})]},e.id)});return(0,i.jsx)("div",{children:(0,i.jsx)("svg",{width:t,height:n,children:m})})},c=e=>{let{width:t=700,height:n=400}=e;return(0,i.jsx)(o,{data:s,width:t,height:n})}}},function(e){e.O(0,[2343,7754,8657,8190,3710,9774,2888,179],function(){return e(e.s=15047)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/treemap-16433d6ce228c28d.js b/_next/static/chunks/pages/treemap-16433d6ce228c28d.js new file mode 100644 index 00000000..1677fac4 --- /dev/null +++ b/_next/static/chunks/pages/treemap-16433d6ce228c28d.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3212],{8990:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/treemap",function(){return a(64519)}])},61651:function(e,t,a){"use strict";a.d(t,{Z:function(){return o}});var n=a(85893);a(67294);var r=a(49871),i=a(28843),s=a(77522);let l={distribution:"Distribution",correlation:"Correlation",ranking:"Ranking",partOfAWhole:"Part Of A Whole",evolution:"Evolution",map:"Map",flow:"Flow",general:"General Knowledge"};function o(e){let{chartFamily:t}=e,a=i.c.filter(e=>e.family===t).map((e,t)=>{let a=(0,s.y)(e.reactURL);return(0,n.jsx)("div",{className:"flex flex-col items-center justify-center",children:(0,n.jsx)(r.Z,{link:a,chartLogo:e.logo,caption:e.label,isAvailable:e.isAvailable,size:122})},t)});return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:t+" mt-4 text-md border-b mb-2 border-gray-100 tracking-wider",children:null==l?void 0:l[t]}),(0,n.jsx)("div",{className:"flex flex-row justify-start flex-wrap",children:a})]})}},81122:function(e,t,a){"use strict";a.d(t,{$:function(){return c}});var n=a(85893),r=a(67294),i=a(59973),s=a(80615),l=a(88578),o=a(5);let c=e=>{let{VizComponent:t,vizName:a,height:c=400,maxWidth:h=800,caption:d}=e,[u,m]=(0,r.useState)(!1),p=(0,r.useRef)(null),x=(0,i.B)(p);return(0,n.jsx)("div",{style:{marginLeft:"-50vw",left:"50%"},className:"my-4 py-4 w-screen relative",children:u?(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center w-full",children:[(0,n.jsx)("div",{style:{maxWidth:2e3},className:"w-full z-50",children:(0,n.jsx)(l.X,{vizName:a})}),(0,n.jsx)("div",{className:"flex justify-center mt-2",children:(0,n.jsx)(o.z,{size:"sm",onClick:()=>m(!u),children:"Hide Sandbox"})})]}):(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center",children:[(0,n.jsx)("div",{className:"bg-gray-100 bg-opacity-50 w-screen flex justify-center z-50 pointer-events-none",children:(0,n.jsx)("div",{style:{height:c,width:"100%",maxWidth:h},ref:p,className:"pointer-events-auto",children:(0,n.jsx)(t,{height:c,width:x.width})})}),(0,n.jsx)(s.Y,{children:d}),(0,n.jsx)("div",{className:"flex justify-center",children:(0,n.jsx)(o.z,{size:"sm",onClick:()=>m(!u),children:"Show code"})})]})})}},88578:function(e,t,a){"use strict";a.d(t,{X:function(){return r}});var n=a(85893);a(67294);let r=e=>{let{vizName:t}=e;return(0,n.jsx)("iframe",{src:"https://codesandbox.io/embed/github/holtzy/react-graph-gallery/tree/main/viz/"+t+"?fontsize=14&hidenavigation=1&theme=dark&expanddevtools=0",style:{width:"100%",height:"500px",border:"solid",borderWidth:2,borderRadius:"4px",overflow:"hidden"},allow:"accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking",sandbox:"allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"})}},80153:function(e,t,a){"use strict";a.d(t,{A:function(){return u}});var n=a(85893),r=a(49700),i=a(63476),s=a(67294),l=a(63084),o=a.n(l);function c(){let[e,t]=(0,s.useState)([]),[a,r]=(0,s.useState)(0);return(0,s.useEffect)(()=>{let e=Array.from(document.querySelectorAll("h2"));t(e)},[]),(0,s.useEffect)(()=>{let t=()=>{let t=e.map(e=>e.offsetTop-e.scrollTop+e.clientTop),a=window.scrollY+150,n=t.reduce((e,t)=>Math.abs(t-a)e===n);r(-1===i?0:i)};return window.addEventListener("scroll",t),()=>window.removeEventListener("scroll",t)},[e]),(0,n.jsx)("div",{className:o().tableOfContent,children:e.map((t,r)=>(0,n.jsx)("p",{className:a===r?"".concat(o().tocItem," ").concat(o().tocItemActive):o().tocItem,onClick:t=>{t.preventDefault(),e[r].scrollIntoView({behavior:"smooth",block:"start",alignToTop:!0})},children:t.id.charAt(0).toUpperCase()+t.id.slice(1)},t.id))})}var h=a(17414),d=a(62594);let u=e=>{let{children:t,title:a,seoDescription:s}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(h.A,{title:a,seoDescription:s}),(0,n.jsx)(r.Z,{}),(0,n.jsx)("div",{className:"wrapper",children:t}),(0,n.jsx)(d.Z,{}),(0,n.jsx)("div",{className:"wrapper",children:(0,n.jsx)(i.Z,{})}),(0,n.jsx)(c,{})]})}},49871:function(e,t,a){"use strict";a.d(t,{Z:function(){return c}});var n=a(85893);a(67294);var r=a(95887),i=a(28843),s=a(41664),l=a.n(s);let o=i.c.filter(e=>"general"===e.family).map(e=>e.logo);function c(e){let{chartLogo:t,caption:a,link:i,isAvailable:s,size:c}=e,d=o.includes(t),u=s?"opacity-100":"opacity-20";return(0,n.jsx)(l(),{href:s?i:"subscribe",className:"no-underline",children:(0,n.jsxs)("div",{className:"flex flex-col items-center",children:[(0,n.jsxs)("div",{style:{width:c,height:c},className:"relative mr-2 rounded-full "+u+" "+(s?"cursor-pointer":"cursor-not-allowed"),children:[(0,n.jsx)("div",{className:"absolute",children:(0,n.jsx)(r.Z,{chartLogo:t,size:c})}),d?(0,n.jsx)("div",{className:"absolute opacity-0 hover:opacity-60 flex items-center justify-center w-full h-full z-30",children:(0,n.jsx)(h,{size:c})}):(0,n.jsx)("div",{style:{backgroundColor:"var(--react-gallery)"},className:"opacity-0 hover:opacity-60 flex items-center justify-center w-full h-full rounded-full z-30",children:(0,n.jsx)("span",{className:"text-white text-4xl",children:"+"})})]}),(0,n.jsx)("p",{className:"font-light text-sm text-gray-600 "+u,children:a})]})})}let h=e=>{let{size:t}=e;return(0,n.jsx)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 100 100",className:"fill-current text-purple-800",children:(0,n.jsx)("path",{d:"M50,0 L100,20 L100,80 L50,100 L0,80 L0,20 Z"})})}},80615:function(e,t,a){"use strict";a.d(t,{Y:function(){return r}});var n=a(85893);let r=e=>{let{children:t}=e;return(0,n.jsx)("p",{className:"text-sm text-gray-500 max-w-xs italic text-center mt-4 font-light",children:t})}},3572:function(e,t,a){"use strict";a.d(t,{d:function(){return h}});var n=a(85893),r=a(32581),i=a(15660),s=a.n(i),l=a(67294),o=a(45993),c=a.n(o);let h=e=>{let{code:t}=e,[a,i]=(0,l.useState)(!1),o=(0,l.useRef)(null);(0,l.useEffect)(()=>{o.current&&s().highlightElement(o.current)},[o,t]);let h=(0,n.jsx)("div",{onClick:()=>{navigator.clipboard.writeText(t),i(!0)},className:c().codeChunckCopyButton,children:a?"Copied":(0,n.jsx)(r.Z,{size:14,style:{padding:0}})});return(0,n.jsxs)("div",{className:"mb-6 relative",children:[(0,n.jsx)("pre",{className:"rounded-md line-numbers",children:(0,n.jsx)("code",{ref:o,className:"language-javascript",children:t})}),(0,n.jsx)("div",{className:c().copyButtonContainer,children:h})]})}},59973:function(e,t,a){"use strict";a.d(t,{B:function(){return r}});var n=a(67294);let r=e=>{let t=()=>({width:e.current?e.current.offsetWidth:0,height:e.current?e.current.offsetHeight:0}),[a,r]=(0,n.useState)(t),i=()=>{r(t())};return(0,n.useEffect)(()=>(window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)),[]),(0,n.useEffect)(()=>{i()},[e]),a}},64519:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var n=a(85893),r=a(67294),i=a(80153),s=a(43710),l=a(61651),o=a(3572),c=a(81122);let h={type:"node",name:"boss",value:0,children:[{type:"leaf",name:"Mark",value:90},{type:"leaf",name:"Robert",value:12},{type:"leaf",name:"Emily",value:34},{type:"leaf",name:"Marion",value:53},{type:"leaf",name:"Nicolas",value:98},{type:"leaf",name:"Malki",value:22},{type:"leaf",name:"Dj\xe9",value:12},{type:"leaf",name:"M\xe9lanie",value:45},{type:"leaf",name:"Einstein",value:76}]};var d=a(88657);let u=e=>{let{width:t,height:a,data:i}=e,s=(0,r.useMemo)(()=>d.bT9(i).sum(e=>e.value),[i]),l=(0,r.useMemo)(()=>{let e=d.pNI().size([t,a]).padding(4);return e(s)},[s,t,a]),o=l.leaves().map(e=>(0,n.jsxs)("g",{children:[(0,n.jsx)("rect",{x:e.x0,y:e.y0,width:e.x1-e.x0,height:e.y1-e.y0,stroke:"transparent",fill:"#69b3a2",className:"opacity-80 hover:opacity-100"}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+3,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-bold",children:e.data.name}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+18,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-light",children:e.data.value})]},e.id));return(0,n.jsx)("div",{children:(0,n.jsx)("svg",{width:t,height:a,children:o})})},m=e=>{let{width:t=700,height:a=400}=e;return(0,n.jsx)(u,{data:h,width:t,height:a})};var p=a(98332),x=a(60390),f=a(41664),j=a.n(f),v=a(56438);let y=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("p",{children:["A ",(0,n.jsx)("a",{href:"https://www.data-to-viz.com/graph/treemap.html",children:"treemap"})," ","displays a hierarchical dataset (a ",(0,n.jsx)("i",{children:"tree"}),") as a set of"," ",(0,n.jsx)("b",{children:"rectangles"}),". Rectangle sizes are proportional to their numeric value."]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("code",{children:"d3.js"})," has some handy functions to compute the rectangle positions. ",(0,n.jsx)("code",{children:"React"})," becomes useful to render those rectangles, animate transitions and more. This post explains how to make those 2 tools work together to build a ",(0,n.jsx)("code",{children:"Treemap"})," component."]})]});function g(){return(0,n.jsxs)(i.A,{title:"Treemap with React",seoDescription:"How to build a treemap with React and D3.js. A set of re-usable components",children:[(0,n.jsx)(s.Z,{title:"Treemap",description:y,chartType:"treemap"}),(0,n.jsx)("h2",{id:"data",children:"The Data"})," ",(0,n.jsxs)("p",{children:["The dataset describes a ",(0,n.jsx)("b",{children:"hierarchy"})," using a ",(0,n.jsx)("b",{children:"recursive"})," ","structure. Each item in this structure is called a ",(0,n.jsx)("b",{children:"node"}),", the lowest nodes of the hierarchy being called ",(0,n.jsx)("b",{children:"leaves"}),"."]}),(0,n.jsxs)("p",{children:["The dataset is an ",(0,n.jsx)("b",{children:"object"})," that has at least 3 properties:"," ",(0,n.jsx)("code",{children:"name"}),", ",(0,n.jsx)("code",{children:"value"})," and ",(0,n.jsx)("code",{children:"children"}),".",(0,n.jsx)("code",{children:"children"})," is an array of nodes that have this structure too."]}),(0,n.jsx)("br",{}),(0,n.jsx)("p",{children:"Here is a minimal example of the data structure:"}),(0,n.jsx)(o.d,{code:b}),(0,n.jsxs)("p",{children:["It's very likely that your dataset is not formatted as above ",(0,n.jsx)("b",{children:"yet"}),". But don't fret, the next section will teach you how to ",(0,n.jsx)("b",{children:"convert"})," ","it. ⬇️"]})," ",(0,n.jsx)("div",{className:"bg-gray-50 full-bleed mt-12",children:(0,n.jsxs)("div",{className:"wrapper pb-20",children:[(0,n.jsx)("h2",{id:"reformat data",children:"Data wrangling"})," ",(0,n.jsxs)("p",{children:[(0,n.jsx)("b",{children:"Three main input data formats"})," are usually encountered when it comes to store hierarchical information. It's always a struggle to deal with those various formats:"]}),(0,n.jsx)("p",{children:"→ list of connection (csv)"}),(0,n.jsx)("p",{children:"→ list of connection (js object)"}),(0,n.jsx)("p",{children:"→ json with hierarchy"}),(0,n.jsxs)("p",{children:["I described in depth how to deal with those format in the"," ",(0,n.jsx)(j(),{href:"/dendrogram",children:"dendrogram section"})," of the gallery that shares the same kind of input format. Please take a look there!"]}),(0,n.jsx)(v.J,{isFilled:!0,size:"sm",href:"/dendrogram#hierarchy",children:"Read more"})]})}),(0,n.jsx)("h2",{id:"hierarchy()",children:'The hierarchy format or "root node"'}),(0,n.jsxs)("p",{children:["A treemap is a ",(0,n.jsx)("b",{children:"hierarchical layout"}),". D3.js has a lot of"," ",(0,n.jsx)("a",{href:"https://github.com/d3/d3-hierarchy",children:"utility functions"})," ","allowing to deal with this kind of hierarchical data. To use those functions we first need to create a ",(0,n.jsx)("b",{children:'"Root node"'})," or"," ",(0,n.jsx)("b",{children:'"Hierarchy"'}),"."]}),(0,n.jsxs)("p",{children:["But ",(0,n.jsx)("i",{children:"what the heck is this"}),"? \uD83E\uDD14"]}),(0,n.jsxs)("p",{children:['A "root node" or "hierarchy" is a ',(0,n.jsx)("b",{children:"javascript object"}),". It has almost the same shape as the input data described above. But with some additional properties and methods that will make our life easier."]}),(0,n.jsx)("h3",{children:"→ how to build a root node"}),(0,n.jsxs)("p",{children:["If your dealing with the format describe in the previous section, you just have to pass it to the d3 ",(0,n.jsx)("code",{children:"hierarchy"})," function:"]}),(0,n.jsx)(o.d,{code:w}),(0,n.jsxs)("p",{children:["Note that this concept of ",(0,n.jsx)("b",{children:"root node"})," is ",(0,n.jsx)("b",{children:"key"})," for all the charts representing a hierarchy like"," ",(0,n.jsx)(j(),{href:"/dendrogram",children:"dendrograms"}),","," ",(0,n.jsx)(j(),{href:"/circular-packing",children:"circle packing"}),","," ",(0,n.jsx)(j(),{href:"/network-chart",children:"networks"})," and more. Please check the dendrogram page where I explain it in detail."]}),(0,n.jsx)(v.J,{isFilled:!0,size:"sm",href:"/dendrogram#hierarchy",children:"Read more"}),(0,n.jsxs)("h2",{id:"treemap()",children:["Compute rectangle positions with ",(0,n.jsx)("code",{children:"d3.treemap()"})]}),(0,n.jsxs)("p",{children:["From the ",(0,n.jsx)("code",{children:"hierarchy"})," object computed above we need to compute the position of every rectangles of the treemap."]}),(0,n.jsxs)("p",{children:["This is possible thanks to the ",(0,n.jsx)("code",{children:"treemap()"})," function of d3.js that can be invoked like this:"]}),(0,n.jsx)(o.d,{code:N}),(0,n.jsxs)("p",{children:["The result is an object that has almost the same shape as the initial"," ",(0,n.jsx)("code",{children:"hierarchy"})," object. But for each node, an additional"," ",(0,n.jsx)("code",{children:"x0"}),", ",(0,n.jsx)("code",{children:"x1"}),", ",(0,n.jsx)("code",{children:"y0"})," and ",(0,n.jsx)("code",{children:"y1"})," ","are available. Those are the coordinates of the rectangle in our SVG space! \uD83D\uDD25"]}),(0,n.jsx)("h2",{id:"1 level",children:"Treemap with 1️⃣ level of hierarchy"}),(0,n.jsxs)("p",{children:["With the coordinates of each rectangle being available, it is just a matter of ",(0,n.jsx)("b",{children:"looping"})," through all of them and drawing them using SVG."]}),(0,n.jsxs)("p",{children:["The ",(0,n.jsx)("code",{children:"leaves()"})," method is usefull to list all leaves, allowing to make the loop easily:"]}),(0,n.jsx)(o.d,{code:k}),(0,n.jsx)("p",{children:"This results in a first basic treemap \uD83D\uDE0B"}),(0,n.jsx)(c.$,{vizName:"TreemapBasic",VizComponent:m,maxWidth:600,height:400,caption:"The most basic treemap with 1 level of hierarchy made with react and d3.js."}),(0,n.jsx)("h2",{id:"2 levels",children:"Treemap with 2️⃣ levels of hierarchy"}),(0,n.jsxs)("p",{children:["Treemaps are also handy to display ",(0,n.jsx)("b",{children:"nested data structure"}),". For instance, let's consider a company with a CEO, several teams, and a few employees per team. This result in a structure with"," ",(0,n.jsx)("b",{children:"several levels"})," of hierarchy."]}),(0,n.jsxs)("p",{children:["Pretty much the same strategy is used to draw the treemap. But note that each leaf has a ",(0,n.jsx)("code",{children:"parent"})," property that is very handy to use a"," ",(0,n.jsx)("b",{children:"categorical color scale"})," to the graph."]}),(0,n.jsx)(o.d,{code:T}),(0,n.jsx)(c.$,{vizName:"Treemap2Levels",VizComponent:p.e,maxWidth:600,height:400,caption:"Treemap with 2 levels of hierarchy and a color scale, made with react and d3.js."}),(0,n.jsx)("h2",{id:"hover effect",children:"Hover effect"}),(0,n.jsxs)("p",{children:["Adding a ",(0,n.jsx)("b",{children:"hover effect"})," to your treemap is a nice polish detail. Here I suggest to highlight the slice that is hovered over by"," ",(0,n.jsx)("b",{children:"dimming"})," all the other slices."]}),(0,n.jsxs)("p",{children:["There are several strategies available to implement such an effect. One can rely on css ",(0,n.jsx)("b",{children:"pseudo classes"})," only, or ",(0,n.jsx)("b",{children:"add a css class"})," ","using javascript and the ",(0,n.jsx)("code",{children:"onMouseEnter"})," event. It's also possible to rely on an ",(0,n.jsx)("b",{children:"animation library"})," like"," ",(0,n.jsx)("code",{children:"react-spring"}),"."]}),(0,n.jsxs)("p",{children:["I'm preparing a full section on the topic. You can subscribe to my"," ",(0,n.jsx)(j(),{href:"/subscribe",children:"dataviz-universe newsletter"})," to know when it will be ready. Meanwhile, there is a code sandbox waiting for you below to reveal the code of this example."]}),(0,n.jsx)(v.J,{isFilled:!0,size:"sm",href:"/subscribe",children:"Subscribe"}),(0,n.jsx)(c.$,{vizName:"TreemapHoverEffect",VizComponent:x.C,maxWidth:600,height:400,caption:"Hover over a group on the treemap to see the other groups fading."}),(0,n.jsx)("br",{}),(0,n.jsx)("br",{}),(0,n.jsx)("br",{}),(0,n.jsx)("div",{className:"full-bleed border-t h-0 bg-gray-100 my-3"}),(0,n.jsx)(l.Z,{chartFamily:"partOfAWhole"}),(0,n.jsx)("div",{className:"mt-20"})]})}let b="\nconst data = {\n type: 'node',\n name: \"boss\",\n value: 2300,\n children: [\n {type: 'leaf', name:\"Mark\", value: 90},\n {type: 'leaf', name:\"Robert\", value: 12},\n {type: 'leaf', name:\"Emily\", value: 34},\n ...\n}\n".trim(),w="\nconst hierarchy = d3.hierarchy(data)\n".trim(),N="\nconst treeGenerator = d3.treemap()\n .size([width, height])\n .padding(4); // space between rectangles\n\n// Use the generator on the hierarchy object built in previous section\nconst treeLayout = treeGenerator(hierarchy);\n".trim(),k="\nconst rects = treeLayout.leaves().map((leaf) => {\n return (\n \n \n \n )\n}\n".trim(),T="\n// Create a color scale\nconst firstLevelGroups = hierarchy?.children?.map((child) => child.data.name);\nvar colorScale = d3\n .scaleOrdinal()\n .domain(firstLevelGroups)\n .range(['red', 'green', 'blue', ...]);\n\n// Then In the loop through each leaves:\ntreeLayout.leaves().map((leaf) => {\n const parentName = leaf.parent?.data.name;\n const color = colorScale(parentName)\n\n // ... render rect using this color\n}\n".trim()},98332:function(e,t,a){"use strict";a.d(t,{e:function(){return c}});var n=a(85893);let r={type:"node",name:"boss",value:0,children:[{type:"node",name:"Team Dataviz",value:0,children:[{type:"leaf",name:"Mark",value:90},{type:"leaf",name:"Robert",value:12},{type:"leaf",name:"Emily",value:34},{type:"leaf",name:"Marion",value:53}]},{type:"node",name:"Team DevOps",value:0,children:[{type:"leaf",name:"Nicolas",value:98},{type:"leaf",name:"Malki",value:22},{type:"leaf",name:"Dj\xe9",value:12}]},{type:"node",name:"Team Sales",value:0,children:[{type:"leaf",name:"M\xe9lanie",value:45},{type:"leaf",name:"Einstein",value:76}]}]};var i=a(67294),s=a(88657);let l=["#e0ac2b","#6689c6","#a4c969","#e85252","#9a6fb0","#a53253","#7f7f7f"],o=e=>{let{width:t,height:a,data:r}=e,o=(0,i.useMemo)(()=>s.bT9(r).sum(e=>e.value),[r]),c=null==o?void 0:null===(h=o.children)||void 0===h?void 0:h.map(e=>e.data.name);var h,d=s.PKp().domain(c||[]).range(l);let u=(0,i.useMemo)(()=>{let e=s.pNI().size([t,a]).padding(4);return e(o)},[o,t,a]),m=u.leaves().map((e,t)=>{var a;let r=null===(a=e.parent)||void 0===a?void 0:a.data.name;return(0,n.jsxs)("g",{children:[(0,n.jsx)("rect",{x:e.x0,y:e.y0,width:e.x1-e.x0,height:e.y1-e.y0,stroke:"transparent",fill:d(r),className:"opacity-80 hover:opacity-100"}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+3,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-bold",children:e.data.name}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+18,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-light",children:e.data.value})]},e.id)});return(0,n.jsx)("div",{children:(0,n.jsx)("svg",{width:t,height:a,children:m})})},c=e=>{let{width:t=700,height:a=400}=e;return(0,n.jsx)(o,{data:r,width:t,height:a})}},60390:function(e,t,a){"use strict";a.d(t,{C:function(){return d}});var n=a(85893);let r={type:"node",name:"boss",value:0,children:[{type:"node",name:"Team Dataviz",value:0,children:[{type:"leaf",name:"Mark",value:90},{type:"leaf",name:"Robert",value:12},{type:"leaf",name:"Emily",value:34},{type:"leaf",name:"Marion",value:53}]},{type:"node",name:"Team DevOps",value:0,children:[{type:"leaf",name:"Nicolas",value:98},{type:"leaf",name:"Malki",value:22},{type:"leaf",name:"Dj\xe9",value:12}]},{type:"node",name:"Team Sales",value:0,children:[{type:"leaf",name:"M\xe9lanie",value:45},{type:"leaf",name:"Einstein",value:76}]}]};var i=a(67294),s=a(88657),l=a(87552),o=a.n(l);let c=["#e0ac2b","#6689c6","#a4c969","#e85252","#9a6fb0","#a53253","#7f7f7f"],h=e=>{let{width:t,height:a,data:r}=e,l=(0,i.useMemo)(()=>s.bT9(r).sum(e=>e.value),[r]),h=null==l?void 0:null===(d=l.children)||void 0===d?void 0:d.map(e=>e.data.name);var d,u=s.PKp().domain(h||[]).range(c);let m=(0,i.useMemo)(()=>{let e=s.pNI().size([t,a]).padding(4);return e(l)},[l,t,a]),p=m.leaves().map((e,t)=>{var a;let r=null===(a=e.parent)||void 0===a?void 0:a.data.name;return(0,n.jsxs)("g",{className:o().rectangle,children:[(0,n.jsx)("rect",{x:e.x0,y:e.y0,width:e.x1-e.x0,height:e.y1-e.y0,stroke:"transparent",fill:u(r),className:"opacity-80 hover:opacity-100"}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+3,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-bold",children:e.data.name}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+18,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-light",children:e.data.value})]},e.id)});return(0,n.jsx)("div",{children:(0,n.jsx)("svg",{width:t,height:a,className:o().container,children:p})})},d=e=>{let{width:t=700,height:a=400}=e;return(0,n.jsx)(h,{data:r,width:t,height:a})}},45993:function(e){e.exports={codeChunckCopyButton:"code-block_codeChunckCopyButton__yPrL_",copyButtonContainer:"code-block_copyButtonContainer__BrX9E"}},63084:function(e){e.exports={tableOfContent:"table-of-content_tableOfContent__jj0Ai",tocItem:"table-of-content_tocItem__osS9X",tocItemActive:"table-of-content_tocItemActive__CGMTh"}},87552:function(e){e.exports={container:"treemap_container__nYrjn",rectangle:"treemap_rectangle__xOWar"}}},function(e){e.O(0,[2343,7754,8657,7823,8190,3710,2594,9774,2888,179],function(){return e(e.s=8990)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/_next/static/chunks/pages/treemap-ae99d40681a9dfd4.js b/_next/static/chunks/pages/treemap-ae99d40681a9dfd4.js deleted file mode 100644 index 98347320..00000000 --- a/_next/static/chunks/pages/treemap-ae99d40681a9dfd4.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3212],{8990:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/treemap",function(){return a(15525)}])},61651:function(e,t,a){"use strict";a.d(t,{Z:function(){return o}});var n=a(85893);a(67294);var r=a(49871),i=a(28843),s=a(77522);let l={distribution:"Distribution",correlation:"Correlation",ranking:"Ranking",partOfAWhole:"Part Of A Whole",evolution:"Evolution",map:"Map",flow:"Flow",general:"General Knowledge"};function o(e){let{chartFamily:t}=e,a=i.c.filter(e=>e.family===t).map((e,t)=>{let a=(0,s.y)(e.reactURL);return(0,n.jsx)("div",{className:"flex flex-col items-center justify-center",children:(0,n.jsx)(r.Z,{link:a,chartLogo:e.logo,caption:e.label,isAvailable:e.isAvailable,size:122})},t)});return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:t+" mt-4 text-md border-b mb-2 border-gray-100 tracking-wider",children:null==l?void 0:l[t]}),(0,n.jsx)("div",{className:"flex flex-row justify-start flex-wrap",children:a})]})}},81122:function(e,t,a){"use strict";a.d(t,{$:function(){return c}});var n=a(85893),r=a(67294),i=a(59973),s=a(80615),l=a(88578),o=a(5);let c=e=>{let{VizComponent:t,vizName:a,height:c=400,maxWidth:h=800,caption:d}=e,[u,m]=(0,r.useState)(!1),p=(0,r.useRef)(null),x=(0,i.B)(p);return(0,n.jsx)("div",{style:{marginLeft:"-50vw",left:"50%"},className:"my-4 py-4 w-screen relative",children:u?(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center w-full",children:[(0,n.jsx)("div",{style:{maxWidth:2e3},className:"w-full z-50",children:(0,n.jsx)(l.X,{vizName:a})}),(0,n.jsx)("div",{className:"flex justify-center mt-2",children:(0,n.jsx)(o.z,{size:"sm",onClick:()=>m(!u),children:"Hide Sandbox"})})]}):(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center",children:[(0,n.jsx)("div",{className:"bg-gray-100 bg-opacity-50 w-screen flex justify-center z-50 pointer-events-none",children:(0,n.jsx)("div",{style:{height:c,width:"100%",maxWidth:h},ref:p,className:"pointer-events-auto",children:(0,n.jsx)(t,{height:c,width:x.width})})}),(0,n.jsx)(s.Y,{children:d}),(0,n.jsx)("div",{className:"flex justify-center",children:(0,n.jsx)(o.z,{size:"sm",onClick:()=>m(!u),children:"Show code"})})]})})}},88578:function(e,t,a){"use strict";a.d(t,{X:function(){return r}});var n=a(85893);a(67294);let r=e=>{let{vizName:t}=e;return(0,n.jsx)("iframe",{src:"https://codesandbox.io/embed/github/holtzy/react-graph-gallery/tree/main/viz/"+t+"?fontsize=14&hidenavigation=1&theme=dark&expanddevtools=0",style:{width:"100%",height:"500px",border:"solid",borderWidth:2,borderRadius:"4px",overflow:"hidden"},allow:"accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking",sandbox:"allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"})}},80153:function(e,t,a){"use strict";a.d(t,{A:function(){return u}});var n=a(85893),r=a(49700),i=a(63476),s=a(67294),l=a(63084),o=a.n(l);function c(){let[e,t]=(0,s.useState)([]),[a,r]=(0,s.useState)(0);return(0,s.useEffect)(()=>{let e=Array.from(document.querySelectorAll("h2"));t(e)},[]),(0,s.useEffect)(()=>{let t=()=>{let t=e.map(e=>e.offsetTop-e.scrollTop+e.clientTop),a=window.scrollY+150,n=t.reduce((e,t)=>Math.abs(t-a)e===n);r(-1===i?0:i)};return window.addEventListener("scroll",t),()=>window.removeEventListener("scroll",t)},[e]),(0,n.jsx)("div",{className:o().tableOfContent,children:e.map((t,r)=>(0,n.jsx)("p",{className:a===r?"".concat(o().tocItem," ").concat(o().tocItemActive):o().tocItem,onClick:t=>{t.preventDefault(),e[r].scrollIntoView({behavior:"smooth",block:"start",alignToTop:!0})},children:t.id.charAt(0).toUpperCase()+t.id.slice(1)},t.id))})}var h=a(17414),d=a(62594);let u=e=>{let{children:t,title:a,seoDescription:s}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(h.A,{title:a,seoDescription:s}),(0,n.jsx)(r.Z,{}),(0,n.jsx)("div",{className:"wrapper",children:t}),(0,n.jsx)(d.Z,{}),(0,n.jsx)("div",{className:"wrapper",children:(0,n.jsx)(i.Z,{})}),(0,n.jsx)(c,{})]})}},49871:function(e,t,a){"use strict";a.d(t,{Z:function(){return c}});var n=a(85893);a(67294);var r=a(95887),i=a(28843),s=a(41664),l=a.n(s);let o=i.c.filter(e=>"general"===e.family).map(e=>e.logo);function c(e){let{chartLogo:t,caption:a,link:i,isAvailable:s,size:c}=e,d=o.includes(t),u=s?"opacity-100":"opacity-20";return(0,n.jsx)(l(),{href:s?i:"subscribe",className:"no-underline",children:(0,n.jsxs)("div",{className:"flex flex-col items-center",children:[(0,n.jsxs)("div",{style:{width:c,height:c},className:"relative mr-2 rounded-full "+u+" "+(s?"cursor-pointer":"cursor-not-allowed"),children:[(0,n.jsx)("div",{className:"absolute",children:(0,n.jsx)(r.Z,{chartLogo:t,size:c})}),d?(0,n.jsx)("div",{className:"absolute opacity-0 hover:opacity-60 flex items-center justify-center w-full h-full z-30",children:(0,n.jsx)(h,{size:c})}):(0,n.jsx)("div",{style:{backgroundColor:"var(--react-gallery)"},className:"opacity-0 hover:opacity-60 flex items-center justify-center w-full h-full rounded-full z-30",children:(0,n.jsx)("span",{className:"text-white text-4xl",children:"+"})})]}),(0,n.jsx)("p",{className:"font-light text-sm text-gray-600 "+u,children:a})]})})}let h=e=>{let{size:t}=e;return(0,n.jsx)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 100 100",className:"fill-current text-purple-800",children:(0,n.jsx)("path",{d:"M50,0 L100,20 L100,80 L50,100 L0,80 L0,20 Z"})})}},80615:function(e,t,a){"use strict";a.d(t,{Y:function(){return r}});var n=a(85893);let r=e=>{let{children:t}=e;return(0,n.jsx)("p",{className:"text-sm text-gray-500 max-w-xs italic text-center mt-4 font-light",children:t})}},3572:function(e,t,a){"use strict";a.d(t,{d:function(){return h}});var n=a(85893),r=a(32581),i=a(15660),s=a.n(i),l=a(67294),o=a(45993),c=a.n(o);let h=e=>{let{code:t}=e,[a,i]=(0,l.useState)(!1),o=(0,l.useRef)(null);(0,l.useEffect)(()=>{o.current&&s().highlightElement(o.current)},[o,t]);let h=(0,n.jsx)("div",{onClick:()=>{navigator.clipboard.writeText(t),i(!0)},className:c().codeChunckCopyButton,children:a?"Copied":(0,n.jsx)(r.Z,{size:14,style:{padding:0}})});return(0,n.jsxs)("div",{className:"mb-6 relative",children:[(0,n.jsx)("pre",{className:"rounded-md line-numbers",children:(0,n.jsx)("code",{ref:o,className:"language-javascript",children:t})}),(0,n.jsx)("div",{className:c().copyButtonContainer,children:h})]})}},59973:function(e,t,a){"use strict";a.d(t,{B:function(){return r}});var n=a(67294);let r=e=>{let t=()=>({width:e.current?e.current.offsetWidth:0,height:e.current?e.current.offsetHeight:0}),[a,r]=(0,n.useState)(t),i=()=>{r(t())};return(0,n.useEffect)(()=>(window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)),[]),(0,n.useEffect)(()=>{i()},[e]),a}},15525:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return N}});var n=a(85893),r=a(67294),i=a(80153),s=a(43710),l=a(61651),o=a(3572),c=a(81122);let h={type:"node",name:"boss",value:0,children:[{type:"leaf",name:"Mark",value:90},{type:"leaf",name:"Robert",value:12},{type:"leaf",name:"Emily",value:34},{type:"leaf",name:"Marion",value:53},{type:"leaf",name:"Nicolas",value:98},{type:"leaf",name:"Malki",value:22},{type:"leaf",name:"Dj\xe9",value:12},{type:"leaf",name:"M\xe9lanie",value:45},{type:"leaf",name:"Einstein",value:76}]};var d=a(88657);let u=e=>{let{width:t,height:a,data:i}=e,s=(0,r.useMemo)(()=>d.bT9(i).sum(e=>e.value),[i]),l=(0,r.useMemo)(()=>{let e=d.pNI().size([t,a]).padding(4);return e(s)},[s,t,a]),o=l.leaves().map(e=>(0,n.jsxs)("g",{children:[(0,n.jsx)("rect",{x:e.x0,y:e.y0,width:e.x1-e.x0,height:e.y1-e.y0,stroke:"transparent",fill:"#69b3a2",className:"opacity-80 hover:opacity-100"}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+3,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-bold",children:e.data.name}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+18,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-light",children:e.data.value})]},e.id));return(0,n.jsx)("div",{children:(0,n.jsx)("svg",{width:t,height:a,children:o})})},m=e=>{let{width:t=700,height:a=400}=e;return(0,n.jsx)(u,{data:h,width:t,height:a})},p={type:"node",name:"boss",value:0,children:[{type:"node",name:"Team Dataviz",value:0,children:[{type:"leaf",name:"Mark",value:90},{type:"leaf",name:"Robert",value:12},{type:"leaf",name:"Emily",value:34},{type:"leaf",name:"Marion",value:53}]},{type:"node",name:"Team DevOps",value:0,children:[{type:"leaf",name:"Nicolas",value:98},{type:"leaf",name:"Malki",value:22},{type:"leaf",name:"Dj\xe9",value:12}]},{type:"node",name:"Team Sales",value:0,children:[{type:"leaf",name:"M\xe9lanie",value:45},{type:"leaf",name:"Einstein",value:76}]}]},x=["#e0ac2b","#6689c6","#a4c969","#e85252","#9a6fb0","#a53253","#7f7f7f"],f=e=>{let{width:t,height:a,data:i}=e,s=(0,r.useMemo)(()=>d.bT9(i).sum(e=>e.value),[i]),l=null==s?void 0:null===(o=s.children)||void 0===o?void 0:o.map(e=>e.data.name);var o,c=d.PKp().domain(l||[]).range(x);let h=(0,r.useMemo)(()=>{let e=d.pNI().size([t,a]).padding(4);return e(s)},[s,t,a]),u=h.leaves().map((e,t)=>{var a;let r=null===(a=e.parent)||void 0===a?void 0:a.data.name;return(0,n.jsxs)("g",{children:[(0,n.jsx)("rect",{x:e.x0,y:e.y0,width:e.x1-e.x0,height:e.y1-e.y0,stroke:"transparent",fill:c(r),className:"opacity-80 hover:opacity-100"}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+3,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-bold",children:e.data.name}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+18,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-light",children:e.data.value})]},e.id)});return(0,n.jsx)("div",{children:(0,n.jsx)("svg",{width:t,height:a,children:u})})},j=e=>{let{width:t=700,height:a=400}=e;return(0,n.jsx)(f,{data:p,width:t,height:a})};var v=a(60390),y=a(41664),g=a.n(y),b=a(56438);let w=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("p",{children:["A ",(0,n.jsx)("a",{href:"https://www.data-to-viz.com/graph/treemap.html",children:"treemap"})," ","displays a hierarchical dataset (a ",(0,n.jsx)("i",{children:"tree"}),") as a set of"," ",(0,n.jsx)("b",{children:"rectangles"}),". Rectangle sizes are proportional to their numeric value."]}),(0,n.jsxs)("p",{children:[(0,n.jsx)("code",{children:"d3.js"})," has some handy functions to compute the rectangle positions. ",(0,n.jsx)("code",{children:"React"})," becomes useful to render those rectangles, animate transitions and more. This post explains how to make those 2 tools work together to build a ",(0,n.jsx)("code",{children:"Treemap"})," component."]})]});function N(){return(0,n.jsxs)(i.A,{title:"Treemap with React",seoDescription:"How to build a treemap with React and D3.js. A set of re-usable components",children:[(0,n.jsx)(s.Z,{title:"Treemap",description:w,chartType:"treemap"}),(0,n.jsx)("h2",{id:"data",children:"The Data"})," ",(0,n.jsxs)("p",{children:["The dataset describes a ",(0,n.jsx)("b",{children:"hierarchy"})," using a ",(0,n.jsx)("b",{children:"recursive"})," ","structure. Each item in this structure is called a ",(0,n.jsx)("b",{children:"node"}),", the lowest nodes of the hierarchy being called ",(0,n.jsx)("b",{children:"leaves"}),"."]}),(0,n.jsxs)("p",{children:["The dataset is an ",(0,n.jsx)("b",{children:"object"})," that has at least 3 properties:"," ",(0,n.jsx)("code",{children:"name"}),", ",(0,n.jsx)("code",{children:"value"})," and ",(0,n.jsx)("code",{children:"children"}),".",(0,n.jsx)("code",{children:"children"})," is an array of nodes that have this structure too."]}),(0,n.jsx)("br",{}),(0,n.jsx)("p",{children:"Here is a minimal example of the data structure:"}),(0,n.jsx)(o.d,{code:k}),(0,n.jsxs)("p",{children:["It's very likely that your dataset is not formatted as above ",(0,n.jsx)("b",{children:"yet"}),". But don't fret, the next section will teach you how to ",(0,n.jsx)("b",{children:"convert"})," ","it. ⬇️"]})," ",(0,n.jsx)("div",{className:"bg-gray-50 full-bleed mt-12",children:(0,n.jsxs)("div",{className:"wrapper pb-20",children:[(0,n.jsx)("h2",{id:"reformat data",children:"Data wrangling"})," ",(0,n.jsxs)("p",{children:[(0,n.jsx)("b",{children:"Three main input data formats"})," are usually encountered when it comes to store hierarchical information. It's always a struggle to deal with those various formats:"]}),(0,n.jsx)("p",{children:"→ list of connection (csv)"}),(0,n.jsx)("p",{children:"→ list of connection (js object)"}),(0,n.jsx)("p",{children:"→ json with hierarchy"}),(0,n.jsxs)("p",{children:["I described in depth how to deal with those format in the"," ",(0,n.jsx)(g(),{href:"/dendrogram",children:"dendrogram section"})," of the gallery that shares the same kind of input format. Please take a look there!"]}),(0,n.jsx)(b.J,{isFilled:!0,size:"sm",href:"/dendrogram#hierarchy",children:"Read more"})]})}),(0,n.jsx)("h2",{id:"hierarchy()",children:'The hierarchy format or "root node"'}),(0,n.jsxs)("p",{children:["A treemap is a ",(0,n.jsx)("b",{children:"hierarchical layout"}),". D3.js has a lot of"," ",(0,n.jsx)("a",{href:"https://github.com/d3/d3-hierarchy",children:"utility functions"})," ","allowing to deal with this kind of hierarchical data. To use those functions we first need to create a ",(0,n.jsx)("b",{children:'"Root node"'})," or"," ",(0,n.jsx)("b",{children:'"Hierarchy"'}),"."]}),(0,n.jsxs)("p",{children:["But ",(0,n.jsx)("i",{children:"what the heck is this"}),"? \uD83E\uDD14"]}),(0,n.jsxs)("p",{children:['A "root node" or "hierarchy" is a ',(0,n.jsx)("b",{children:"javascript object"}),". It has almost the same shape as the input data described above. But with some additional properties and methods that will make our life easier."]}),(0,n.jsx)("h3",{children:"→ how to build a root node"}),(0,n.jsxs)("p",{children:["If your dealing with the format describe in the previous section, you just have to pass it to the d3 ",(0,n.jsx)("code",{children:"hierarchy"})," function:"]}),(0,n.jsx)(o.d,{code:T}),(0,n.jsxs)("p",{children:["Note that this concept of ",(0,n.jsx)("b",{children:"root node"})," is ",(0,n.jsx)("b",{children:"key"})," for all the charts representing a hierarchy like"," ",(0,n.jsx)(g(),{href:"/dendrogram",children:"dendrograms"}),","," ",(0,n.jsx)(g(),{href:"/circular-packing",children:"circle packing"}),","," ",(0,n.jsx)(g(),{href:"/network-chart",children:"networks"})," and more. Please check the dendrogram page where I explain it in detail."]}),(0,n.jsx)(b.J,{isFilled:!0,size:"sm",href:"/dendrogram#hierarchy",children:"Read more"}),(0,n.jsxs)("h2",{id:"treemap()",children:["Compute rectangle positions with ",(0,n.jsx)("code",{children:"d3.treemap()"})]}),(0,n.jsxs)("p",{children:["From the ",(0,n.jsx)("code",{children:"hierarchy"})," object computed above we need to compute the position of every rectangles of the treemap."]}),(0,n.jsxs)("p",{children:["This is possible thanks to the ",(0,n.jsx)("code",{children:"treemap()"})," function of d3.js that can be invoked like this:"]}),(0,n.jsx)(o.d,{code:z}),(0,n.jsxs)("p",{children:["The result is an object that has almost the same shape as the initial"," ",(0,n.jsx)("code",{children:"hierarchy"})," object. But for each node, an additional"," ",(0,n.jsx)("code",{children:"x0"}),", ",(0,n.jsx)("code",{children:"x1"}),", ",(0,n.jsx)("code",{children:"y0"})," and ",(0,n.jsx)("code",{children:"y1"})," ","are available. Those are the coordinates of the rectangle in our SVG space! \uD83D\uDD25"]}),(0,n.jsx)("h2",{id:"1 level",children:"Treemap with 1️⃣ level of hierarchy"}),(0,n.jsxs)("p",{children:["With the coordinates of each rectangle being available, it is just a matter of ",(0,n.jsx)("b",{children:"looping"})," through all of them and drawing them using SVG."]}),(0,n.jsxs)("p",{children:["The ",(0,n.jsx)("code",{children:"leaves()"})," method is usefull to list all leaves, allowing to make the loop easily:"]}),(0,n.jsx)(o.d,{code:_}),(0,n.jsx)("p",{children:"This results in a first basic treemap \uD83D\uDE0B"}),(0,n.jsx)(c.$,{vizName:"TreemapBasic",VizComponent:m,maxWidth:600,height:400,caption:"The most basic treemap with 1 level of hierarchy made with react and d3.js."}),(0,n.jsx)("h2",{id:"2 levels",children:"Treemap with 2️⃣ levels of hierarchy"}),(0,n.jsxs)("p",{children:["Treemaps are also handy to display ",(0,n.jsx)("b",{children:"nested data structure"}),". For instance, let's consider a company with a CEO, several teams, and a few employees per team. This result in a structure with"," ",(0,n.jsx)("b",{children:"several levels"})," of hierarchy."]}),(0,n.jsxs)("p",{children:["Pretty much the same strategy is used to draw the treemap. But note that each leaf has a ",(0,n.jsx)("code",{children:"parent"})," property that is very handy to use a"," ",(0,n.jsx)("b",{children:"categorical color scale"})," to the graph."]}),(0,n.jsx)(o.d,{code:C}),(0,n.jsx)(c.$,{vizName:"Treemap2Levels",VizComponent:j,maxWidth:600,height:400,caption:"Treemap with 2 levels of hierarchy and a color scale, made with react and d3.js."}),(0,n.jsx)("h2",{id:"hover effect",children:"Hover effect"}),(0,n.jsxs)("p",{children:["Adding a ",(0,n.jsx)("b",{children:"hover effect"})," to your treemap is a nice polish detail. Here I suggest to highlight the slice that is hovered over by"," ",(0,n.jsx)("b",{children:"dimming"})," all the other slices."]}),(0,n.jsxs)("p",{children:["There are several strategies available to implement such an effect. One can rely on css ",(0,n.jsx)("b",{children:"pseudo classes"})," only, or ",(0,n.jsx)("b",{children:"add a css class"})," ","using javascript and the ",(0,n.jsx)("code",{children:"onMouseEnter"})," event. It's also possible to rely on an ",(0,n.jsx)("b",{children:"animation library"})," like"," ",(0,n.jsx)("code",{children:"react-spring"}),"."]}),(0,n.jsxs)("p",{children:["I'm preparing a full section on the topic. You can subscribe to my"," ",(0,n.jsx)(g(),{href:"/subscribe",children:"dataviz-universe newsletter"})," to know when it will be ready. Meanwhile, there is a code sandbox waiting for you below to reveal the code of this example."]}),(0,n.jsx)(b.J,{isFilled:!0,size:"sm",href:"/subscribe",children:"Subscribe"}),(0,n.jsx)(c.$,{vizName:"TreemapHoverEffect",VizComponent:v.C,maxWidth:600,height:400,caption:"Hover over a group on the treemap to see the other groups fading."}),(0,n.jsx)("br",{}),(0,n.jsx)("br",{}),(0,n.jsx)("br",{}),(0,n.jsx)("div",{className:"full-bleed border-t h-0 bg-gray-100 my-3"}),(0,n.jsx)(l.Z,{chartFamily:"partOfAWhole"}),(0,n.jsx)("div",{className:"mt-20"})]})}let k="\nconst data = {\n type: 'node',\n name: \"boss\",\n value: 2300,\n children: [\n {type: 'leaf', name:\"Mark\", value: 90},\n {type: 'leaf', name:\"Robert\", value: 12},\n {type: 'leaf', name:\"Emily\", value: 34},\n ...\n}\n".trim(),T="\nconst hierarchy = d3.hierarchy(data)\n".trim(),z="\nconst treeGenerator = d3.treemap()\n .size([width, height])\n .padding(4); // space between rectangles\n\n// Use the generator on the hierarchy object built in previous section\nconst treeLayout = treeGenerator(hierarchy);\n".trim(),_="\nconst rects = treeLayout.leaves().map((leaf) => {\n return (\n \n \n \n )\n}\n".trim(),C="\n// Create a color scale\nconst firstLevelGroups = hierarchy?.children?.map((child) => child.data.name);\nvar colorScale = d3\n .scaleOrdinal()\n .domain(firstLevelGroups)\n .range(['red', 'green', 'blue', ...]);\n\n// Then In the loop through each leaves:\ntreeLayout.leaves().map((leaf) => {\n const parentName = leaf.parent?.data.name;\n const color = colorScale(parentName)\n\n // ... render rect using this color\n}\n".trim()},60390:function(e,t,a){"use strict";a.d(t,{C:function(){return d}});var n=a(85893);let r={type:"node",name:"boss",value:0,children:[{type:"node",name:"Team Dataviz",value:0,children:[{type:"leaf",name:"Mark",value:90},{type:"leaf",name:"Robert",value:12},{type:"leaf",name:"Emily",value:34},{type:"leaf",name:"Marion",value:53}]},{type:"node",name:"Team DevOps",value:0,children:[{type:"leaf",name:"Nicolas",value:98},{type:"leaf",name:"Malki",value:22},{type:"leaf",name:"Dj\xe9",value:12}]},{type:"node",name:"Team Sales",value:0,children:[{type:"leaf",name:"M\xe9lanie",value:45},{type:"leaf",name:"Einstein",value:76}]}]};var i=a(67294),s=a(88657),l=a(87552),o=a.n(l);let c=["#e0ac2b","#6689c6","#a4c969","#e85252","#9a6fb0","#a53253","#7f7f7f"],h=e=>{let{width:t,height:a,data:r}=e,l=(0,i.useMemo)(()=>s.bT9(r).sum(e=>e.value),[r]),h=null==l?void 0:null===(d=l.children)||void 0===d?void 0:d.map(e=>e.data.name);var d,u=s.PKp().domain(h||[]).range(c);let m=(0,i.useMemo)(()=>{let e=s.pNI().size([t,a]).padding(4);return e(l)},[l,t,a]),p=m.leaves().map((e,t)=>{var a;let r=null===(a=e.parent)||void 0===a?void 0:a.data.name;return(0,n.jsxs)("g",{className:o().rectangle,children:[(0,n.jsx)("rect",{x:e.x0,y:e.y0,width:e.x1-e.x0,height:e.y1-e.y0,stroke:"transparent",fill:u(r),className:"opacity-80 hover:opacity-100"}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+3,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-bold",children:e.data.name}),(0,n.jsx)("text",{x:e.x0+3,y:e.y0+18,fontSize:12,textAnchor:"start",alignmentBaseline:"hanging",fill:"white",className:"font-light",children:e.data.value})]},e.id)});return(0,n.jsx)("div",{children:(0,n.jsx)("svg",{width:t,height:a,className:o().container,children:p})})},d=e=>{let{width:t=700,height:a=400}=e;return(0,n.jsx)(h,{data:r,width:t,height:a})}},45993:function(e){e.exports={codeChunckCopyButton:"code-block_codeChunckCopyButton__yPrL_",copyButtonContainer:"code-block_copyButtonContainer__BrX9E"}},63084:function(e){e.exports={tableOfContent:"table-of-content_tableOfContent__jj0Ai",tocItem:"table-of-content_tocItem__osS9X",tocItemActive:"table-of-content_tocItemActive__CGMTh"}},87552:function(e){e.exports={container:"treemap_container__nYrjn",rectangle:"treemap_rectangle__xOWar"}}},function(e){e.O(0,[2343,7754,8657,7823,8190,3710,2594,9774,2888,179],function(){return e(e.s=8990)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/_next/static/sWj_jUUesQ9Eg6jPat9WP/_buildManifest.js b/_next/static/sWj_jUUesQ9Eg6jPat9WP/_buildManifest.js new file mode 100644 index 00000000..e798238c --- /dev/null +++ b/_next/static/sWj_jUUesQ9Eg6jPat9WP/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST=function(s,a,e,c,t,i,o,r,n,p,d,u,l,h,b,f,g,m,k,j,v,x,w,z,y,_,I){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,"static/chunks/2718-c1b4ae8aebf23716.js",a,t,"static/chunks/pages/index-d41f25467ee6dcf3.js"],"/2d-density-plot":[s,e,i,o,a,c,t,v,r,"static/chunks/pages/2d-density-plot-147f90a5d8e8c593.js"],"/404":[s,e,i,a,c,t,m,"static/css/8a734e64c19c3976.css","static/chunks/pages/404-b85241062cab5048.js"],"/_error":["static/chunks/pages/_error-82b79221b9ed784b.js"],"/about":[s,e,i,a,c,t,h,"static/chunks/pages/about-3b56a821b500a5e6.js"],"/all":[s,e,a,c,t,n,f,"static/chunks/pages/all-c5ea439386fed3d0.js"],"/animation":[s,e,a,c,t,n,f,"static/chunks/pages/animation-fa9dfe1d4e131eb9.js"],"/arc-diagram":[s,e,i,o,a,c,t,n,d,"static/chunks/pages/arc-diagram-0cd124895e80ad94.js"],"/area-plot":[s,e,i,o,a,c,t,r,"static/chunks/pages/area-plot-f924661c3a9b2958.js"],"/articles":[s,e,a,c,t,h,"static/chunks/pages/articles-4f71b8e4bef1386a.js"],"/barplot":[s,e,i,o,p,a,c,t,n,k,d,"static/chunks/pages/barplot-673304709dd1fab4.js"],"/boxplot":[s,e,i,o,a,c,t,n,d,"static/chunks/pages/boxplot-82e704905eabb30a.js"],"/bubble-map":[s,e,i,o,p,a,c,t,n,g,d,"static/chunks/pages/bubble-map-485b7134a4e47eb4.js"],"/bubble-plot":[s,e,i,o,p,a,c,t,n,m,"static/css/ec7558f4d3e32e69.css","static/chunks/pages/bubble-plot-d62206987d094835.js"],"/build-axis-with-react":[s,e,i,o,a,c,t,r,"static/chunks/pages/build-axis-with-react-e547a8f59779247a.js"],"/cartogram":[s,e,a,c,t,h,"static/chunks/pages/cartogram-3909805a96300cc2.js"],"/chord-diagram":[s,e,i,o,a,c,t,r,"static/chunks/pages/chord-diagram-c630fcbbb34fadc5.js"],"/choropleth-map":[s,e,i,o,a,c,t,g,r,"static/chunks/pages/choropleth-map-36a7bf052e70cfb4.js"],"/circular-barplot":[s,e,i,o,a,c,t,r,"static/chunks/pages/circular-barplot-1aa8c2336ab3e058.js"],"/circular-packing":[s,e,i,o,p,a,c,t,n,d,"static/chunks/pages/circular-packing-a9fee065b643bd3a.js"],"/connected-scatter-plot":[s,e,i,o,a,c,t,r,"static/chunks/pages/connected-scatter-plot-846d452ea7cf227d.js"],"/connection-map":[s,e,i,o,a,c,t,g,r,"static/chunks/pages/connection-map-27b9a1c883c61e01.js"],"/correlogram":[s,e,i,o,a,c,t,"static/css/d54486714a313ae1.css","static/chunks/pages/correlogram-8c37581cff2c0f67.js"],"/course/axis/axis-variations":[s,e,a,c,l,"static/chunks/pages/course/axis/axis-variations-e8cf5bd8282a7c5f.js"],"/course/axis/axis-with-d3":[s,e,i,o,a,c,u,"static/chunks/pages/course/axis/axis-with-d3-1a6cdc32ad8e4d5a.js"],"/course/axis/bottom-axis":[s,e,i,o,a,c,u,"static/chunks/pages/course/axis/bottom-axis-272ff8da119afd4c.js"],"/course/axis/introduction":[s,e,i,a,c,l,"static/chunks/pages/course/axis/introduction-cc94a936e34f47a3.js"],"/course/axis/margin-and-translation":[s,e,o,a,c,u,"static/chunks/pages/course/axis/margin-and-translation-1dd15c5814a91e12.js"],"/course/hover-effect/css-descendant-selector":[s,e,i,o,a,c,n,"static/css/8666b20defb3e011.css","static/chunks/pages/course/hover-effect/css-descendant-selector-bee614cc0a119133.js"],"/course/hover-effect/css-pseudo-class":[s,e,i,o,a,c,n,x,"static/css/69b5bd49186db9de.css","static/chunks/pages/course/hover-effect/css-pseudo-class-d62e9a8a70a63b8a.js"],"/course/hover-effect/internal-state":[s,e,i,o,a,c,n,j,"static/css/b8e43ac6f7da4f41.css","static/chunks/pages/course/hover-effect/internal-state-c530fd0159cbb1c9.js"],"/course/hover-effect/introduction":[s,e,i,p,a,c,x,"static/css/0ec73f568dde8513.css","static/chunks/pages/course/hover-effect/introduction-f55a4b3bae6d4f44.js"],"/course/hover-effect/link-two-graphs":[s,e,i,o,a,c,t,n,j,"static/css/c76003f718a0f9be.css","static/chunks/pages/course/hover-effect/link-two-graphs-73df4a48119378bb.js"],"/course/hover-effect/toggle-class-in-js":[s,e,i,o,a,c,"static/css/f5258d81ed13d0d5.css","static/chunks/pages/course/hover-effect/toggle-class-in-js-9b0499013d580797.js"],"/course/introduction/initial-setup":[s,e,a,c,l,"static/chunks/pages/course/introduction/initial-setup-9864d096096c6d74.js"],"/course/introduction/introduction-to-d3":[s,e,i,a,c,l,"static/chunks/pages/course/introduction/introduction-to-d3-8562c260eec219f7.js"],"/course/introduction/introduction-to-react":[s,e,a,c,l,"static/chunks/pages/course/introduction/introduction-to-react-c637887e6d1abdb2.js"],"/course/introduction/js-dataviz-libraries":[s,e,a,c,l,"static/chunks/pages/course/introduction/js-dataviz-libraries-74c92e8842ad53dc.js"],"/course/responsiveness/code-organization":[s,e,o,a,c,u,"static/chunks/pages/course/responsiveness/code-organization-4dee38ef916f6e9b.js"],"/course/responsiveness/common-pitfalls":[s,e,a,c,l,"static/chunks/pages/course/responsiveness/common-pitfalls-b052d1cc732e6cb4.js"],"/course/responsiveness/introduction":[s,e,i,o,a,c,u,"static/chunks/pages/course/responsiveness/introduction-56eb4fa55687caf3.js"],"/course/responsiveness/use-dimension-hook":[s,e,o,a,c,u,"static/chunks/pages/course/responsiveness/use-dimension-hook-43c87ce446c179a8.js"],"/course/responsiveness/using-the-hook":[s,e,o,a,c,u,"static/chunks/pages/course/responsiveness/using-the-hook-bf478aef397c7778.js"],"/course/scales/introduction":[s,e,o,a,c,u,"static/chunks/pages/course/scales/introduction-a64b598ed70be2c3.js"],"/course/svg/introduction":[s,e,a,c,l,"static/chunks/pages/course/svg/introduction-22b600d19c2fd7b1.js"],"/course/svg/main-svg-elements":[s,e,o,w,a,c,u,"static/chunks/pages/course/svg/main-svg-elements-dbe2ca0a29bd02e7.js"],"/course/svg/path-element":[s,e,o,w,a,c,u,"static/chunks/pages/course/svg/path-element-35d32a7cf86bf3c2.js"],"/course/svg/tips-and-tricks":[s,e,"static/chunks/2860-d038ef2b7795bb05.js",a,c,l,"static/chunks/pages/course/svg/tips-and-tricks-88a63679798eac94.js"],"/cross-graph-highlight-interaction":[s,e,i,o,"static/chunks/8446-4892663fdb75b8e1.js",a,c,t,"static/css/507114ea18f6728e.css","static/chunks/pages/cross-graph-highlight-interaction-a4cacec5e5484d83.js"],"/dataset-transition":[s,e,i,o,p,a,c,t,k,r,"static/chunks/pages/dataset-transition-b4a7858906f02b49.js"],"/dendrogram":[s,e,i,o,a,c,t,z,r,"static/chunks/pages/dendrogram-c826d5b12a6b4aa4.js"],"/density-plot":[s,e,i,o,a,c,t,y,r,"static/chunks/pages/density-plot-0fd8894d1f59fa01.js"],"/donut":[s,e,i,o,p,b,a,c,t,_,"static/css/306a1a30c14677d4.css","static/chunks/pages/donut-9f07ef710315a712.js"],"/example/arc-diagram-vertical":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/arc-diagram-vertical-510fec31f9d4aefe.js"],"/example/barplot-data-transition-animation":[s,e,i,o,p,a,c,t,k,r,"static/chunks/pages/example/barplot-data-transition-animation-fc8df0dba6abcc31.js"],"/example/barplot-stacked-horizontal":[s,e,i,o,a,c,t,n,d,"static/chunks/pages/example/barplot-stacked-horizontal-cc38dcf6fdc4ea69.js"],"/example/barplot-stacked-vertical":[s,e,i,a,c,t,n,f,"static/chunks/pages/example/barplot-stacked-vertical-642ee93340ed71c0.js"],"/example/boxplot-horizontal":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/boxplot-horizontal-f3f4840afd5c9254.js"],"/example/boxplot-jitter":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/boxplot-jitter-0c5bd9bd7102d91b.js"],"/example/circle-packing-with-d3-force":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/circle-packing-with-d3-force-8e013bef41c752c8.js"],"/example/histogram-mirror":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/histogram-mirror-54a46518e20f5fdf.js"],"/example/histogram-small-multiple":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/histogram-small-multiple-7fcd166f8c70c891.js"],"/example/histogram-with-several-groups":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/histogram-with-several-groups-65fcf3237ad480e5.js"],"/example/line-chart-synchronized-cursors":[s,e,i,o,p,a,c,t,r,"static/chunks/pages/example/line-chart-synchronized-cursors-8652c38f3204d236.js"],"/example/network-diagram-with-colored-groups":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/network-diagram-with-colored-groups-64637dc93ab02c1f.js"],"/example/population-pyramid":[i,p,"static/css/d71181803328322d.css","static/chunks/pages/example/population-pyramid-67f94f5badec49bd.js"],"/example/radar-chart-animation":[s,e,i,o,p,a,c,t,r,"static/chunks/pages/example/radar-chart-animation-15a70ec580185e4b.js"],"/example/scatterplot-basic-canvas":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/scatterplot-basic-canvas-e59e60397c156772.js"],"/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection":[s,e,i,o,a,c,t,r,"static/chunks/pages/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection-203d7a9d1bc1b8ef.js"],"/example/timeseries-moving-average":[s,e,i,o,a,c,t,n,"static/css/0051346e12b181a2.css","static/chunks/pages/example/timeseries-moving-average-812bda06f49b893b.js"],"/fix-canvas-blurry-dataviz":[s,e,o,a,c,t,r,"static/chunks/pages/fix-canvas-blurry-dataviz-4af0c3d36cc71b61.js"],"/heatmap":[s,e,i,o,a,c,t,"static/css/efd490e62b6b40d6.css","static/chunks/pages/heatmap-7ee0ec76c2108be6.js"],"/hexbin-map":[s,e,i,o,a,c,t,v,r,"static/chunks/pages/hexbin-map-cf918439d4f4fca5.js"],"/hierarchical-edge-bundling":[s,e,i,o,a,c,t,z,r,"static/chunks/pages/hierarchical-edge-bundling-479181149ed46c9c.js"],"/histogram":[s,e,i,o,p,a,c,t,n,d,"static/chunks/pages/histogram-66813aef02d7e800.js"],"/interactivity":[s,e,a,c,t,n,f,"static/chunks/pages/interactivity-54e994fb8fdc812d.js"],"/line-chart":[s,e,i,o,p,a,c,t,n,d,"static/chunks/pages/line-chart-a0b85a3167d15f83.js"],"/lollipop-plot":[s,e,i,o,p,a,c,t,n,"static/css/64f55f4f67c1b792.css","static/chunks/pages/lollipop-plot-6fe0f7f4f57c6fdd.js"],"/map":[s,e,i,o,a,c,t,g,r,"static/chunks/pages/map-19bb8bc3512eb38c.js"],"/network-chart":[s,e,i,o,a,c,t,n,d,"static/chunks/pages/network-chart-20eeb0eef115cf74.js"],"/parallel-plot":[s,e,i,o,a,c,t,r,"static/chunks/pages/parallel-plot-25970b16e6625e36.js"],"/pie-plot":[s,e,i,o,p,b,a,c,t,_,"static/css/7b5f8c9d016b3f7c.css","static/chunks/pages/pie-plot-90911147e22806e8.js"],"/radar-chart":[s,e,i,o,a,c,t,n,d,"static/chunks/pages/radar-chart-7f63336695bad06b.js"],"/react-d3-dataviz-course":[s,e,a,c,t,h,"static/chunks/pages/react-d3-dataviz-course-f771d9fed9984c64.js"],"/react-dataviz-animation-with-react-spring":[s,e,i,p,a,c,t,h,"static/chunks/pages/react-dataviz-animation-with-react-spring-991c78b1ba5ec831.js"],"/ridgeline":[s,e,i,o,a,c,t,n,y,d,"static/chunks/pages/ridgeline-496ccb41e3235595.js"],"/sankey-diagram":[s,e,i,o,a,c,t,r,"static/chunks/pages/sankey-diagram-dadacc5bf07b220d.js"],"/scatter-plot":[s,e,i,o,a,c,t,n,m,j,"static/css/1973cdfb43563a59.css","static/chunks/pages/scatter-plot-aac658433f84812b.js"],"/shape-morphism-for-dataviz-with-react":[s,e,i,o,p,b,a,c,t,r,"static/chunks/pages/shape-morphism-for-dataviz-with-react-c7253eef85ade9ff.js"],"/stacked-area-plot":[s,e,i,o,p,b,a,c,t,I,"static/css/c79e5809ea8fe7eb.css","static/chunks/pages/stacked-area-plot-8abcf4a980f9465b.js"],"/stacked-barplot-with-negative-values":[s,e,i,a,c,t,h,"static/chunks/pages/stacked-barplot-with-negative-values-918bd6b7a8902573.js"],"/streamchart":[s,e,i,o,p,b,a,c,t,I,"static/css/003d5c48b04543ca.css","static/chunks/pages/streamchart-80bed00e20cde110.js"],"/subscribe":[s,e,a,c,t,h,"static/chunks/pages/subscribe-cd6b3b49e0189ed1.js"],"/timeseries":[s,e,i,o,p,a,c,t,n,d,"static/chunks/pages/timeseries-700dd1034af1c2a0.js"],"/treemap":[s,e,i,o,a,c,t,"static/css/25919ae4f53719a0.css","static/chunks/pages/treemap-16433d6ce228c28d.js"],"/typescript-d3-axis":[s,e,i,o,a,c,t,r,"static/chunks/pages/typescript-d3-axis-55f5ab0e8153b725.js"],"/violin-plot":[s,e,i,o,a,c,t,r,"static/chunks/pages/violin-plot-5e04f2c69ac70eb5.js"],"/viz-from-the-future":[s,e,a,c,t,"static/css/8d4c0e152872e92c.css","static/chunks/pages/viz-from-the-future-49fa6f74df593093.js"],"/voronoi":[s,e,i,o,a,c,t,n,d,"static/chunks/pages/voronoi-7431c12c9500bb92.js"],"/what-is-a-color":[s,e,a,c,t,h,"static/chunks/pages/what-is-a-color-2ceba4025243af3a.js"],"/wordcloud":[s,e,i,o,a,c,t,r,"static/chunks/pages/wordcloud-f3768ea1506d7f1c.js"],sortedPages:["/","/2d-density-plot","/404","/_app","/_error","/about","/all","/animation","/arc-diagram","/area-plot","/articles","/barplot","/boxplot","/bubble-map","/bubble-plot","/build-axis-with-react","/cartogram","/chord-diagram","/choropleth-map","/circular-barplot","/circular-packing","/connected-scatter-plot","/connection-map","/correlogram","/course/axis/axis-variations","/course/axis/axis-with-d3","/course/axis/bottom-axis","/course/axis/introduction","/course/axis/margin-and-translation","/course/hover-effect/css-descendant-selector","/course/hover-effect/css-pseudo-class","/course/hover-effect/internal-state","/course/hover-effect/introduction","/course/hover-effect/link-two-graphs","/course/hover-effect/toggle-class-in-js","/course/introduction/initial-setup","/course/introduction/introduction-to-d3","/course/introduction/introduction-to-react","/course/introduction/js-dataviz-libraries","/course/responsiveness/code-organization","/course/responsiveness/common-pitfalls","/course/responsiveness/introduction","/course/responsiveness/use-dimension-hook","/course/responsiveness/using-the-hook","/course/scales/introduction","/course/svg/introduction","/course/svg/main-svg-elements","/course/svg/path-element","/course/svg/tips-and-tricks","/cross-graph-highlight-interaction","/dataset-transition","/dendrogram","/density-plot","/donut","/example/arc-diagram-vertical","/example/barplot-data-transition-animation","/example/barplot-stacked-horizontal","/example/barplot-stacked-vertical","/example/boxplot-horizontal","/example/boxplot-jitter","/example/circle-packing-with-d3-force","/example/histogram-mirror","/example/histogram-small-multiple","/example/histogram-with-several-groups","/example/line-chart-synchronized-cursors","/example/network-diagram-with-colored-groups","/example/population-pyramid","/example/radar-chart-animation","/example/scatterplot-basic-canvas","/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection","/example/timeseries-moving-average","/fix-canvas-blurry-dataviz","/heatmap","/hexbin-map","/hierarchical-edge-bundling","/histogram","/interactivity","/line-chart","/lollipop-plot","/map","/network-chart","/parallel-plot","/pie-plot","/radar-chart","/react-d3-dataviz-course","/react-dataviz-animation-with-react-spring","/ridgeline","/sankey-diagram","/scatter-plot","/shape-morphism-for-dataviz-with-react","/stacked-area-plot","/stacked-barplot-with-negative-values","/streamchart","/subscribe","/timeseries","/treemap","/typescript-d3-axis","/violin-plot","/viz-from-the-future","/voronoi","/what-is-a-color","/wordcloud"]}}("static/chunks/2343-fd77427f6d276a64.js","static/chunks/8190-bc54b059aeb5396b.js","static/chunks/7754-86d7d1d8f1f2cbb4.js","static/chunks/3710-ad4884527bb1921e.js","static/chunks/2594-166023395f0e3eec.js","static/chunks/8657-581e9b42e1f41b29.js","static/chunks/7823-7fe55b50301cbfb1.js","static/css/3f9dc76f65000636.css","static/chunks/693-fc37b082b568d0e9.js","static/chunks/2236-19fcef54ecc4f5b6.js","static/css/bf3bc3250ab9e729.css","static/css/0fa95a85e3c094ce.css","static/css/4aaaca05e34861fe.css","static/css/2247407c30b587b7.css","static/chunks/7303-2813398c13243040.js","static/css/537902226fc25775.css","static/chunks/301-fb0066bc9a032722.js","static/chunks/814-6f6cd086489440d9.js","static/chunks/4369-3cf45ab8af8a21da.js","static/chunks/6155-0ba4f3b6f1f1f5ca.js","static/chunks/4131-4e76bf573a6a50e1.js","static/chunks/2830-adbbaa28bd9788fd.js","static/chunks/4133-cb2169106fc9e4f5.js","static/chunks/9041-b8dc7e7055ab97a1.js","static/chunks/7443-dd841eedb9d57660.js","static/chunks/7067-ad41ed7893ce1ebd.js","static/chunks/3646-bfca271cd623b31b.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/9oo_T2Qa5grQI-THNE5RY/_ssgManifest.js b/_next/static/sWj_jUUesQ9Eg6jPat9WP/_ssgManifest.js similarity index 100% rename from _next/static/9oo_T2Qa5grQI-THNE5RY/_ssgManifest.js rename to _next/static/sWj_jUUesQ9Eg6jPat9WP/_ssgManifest.js diff --git a/about.html b/about.html index 98b4f3f1..8a90ed93 100644 --- a/about.html +++ b/about.html @@ -1,4 +1,4 @@ -About the gallery

      React + D3.js = ❤️


      A love story – So simple powerful yet so complicated

      A few years ago I created the d3 graph gallery, a website showcasing hundreds of simple charts made with d3.js. It worked well! Thousands of people use it daily to learn d3. 🎉

      Since then, React became the most popular framework to build user interfaces. This rose a question: how to build a chart in react? That's a complicated question with many answers. Here are the 3 most common approaches.

      3 ways to draw a chart in react

      → 1️⃣ Charting libraries

      There is a myriad of charting libraries offering react components for every chart type. HighChart, ReCharts, React-viz, plot, visX and so many more. Those libraries are awesome: you'll get a working chart in minutes using them.

      But simplicity comes with a cost: the time you saved in the first place will be lost when you'll try to reach a high level of customization.

      If you want to build something unique, you need to draw shapes one by one.

      → 2️⃣ D3 for rendering in a useEffect hook

      If you're familiar with d3.js already, it's possible to use any of its examples (from a block or the gallery) by using a useEffect hook.

      Basically, you can create a div in the DOM using react. You can then use the drawing methods of the d3-selection module like append or axisBottom to target this div, and add the content of the chart.

      Let's apply this to draw axes:

      You can use all the d3 knowlege you have in a useEffect hook to build the graph in a react context.

      This works but comes with some caveats. To put it in a nutshell you now have 2 tools trying to control the DOM: react and d3. That's hard to maintain for large applications.

      → 3️⃣ D3 for maths, React for rendering

      This gallery suggests using d3.js only for the math utils it provides. And to add entries to the DOM using react, like for any other UI element.

      Let's say we want to build a scatterplot. The scaleLinear function of d3.js is used to build the scales. Now that we can easily know the position of a circle on the screen, we can just loop through all data items and render them as a circle svg element.

      012345678910

      Use d3.js to compute the scales. Use React to render the circles.

      Learn concepts, Get templates

      This gallery is all about using the power of the d3 math utils and the react rendering engine.

      The first goal is to teach the concepts. Many examples are provided for each chart type. Each one targets a specific theme like color, axis, responsiveness, hover effect, or tooltips.

      The second goal is to provide templates for each viz type. Building a viz from scratch is time-consuming, so better tweak an existing example.

      All graph examples come with an explanation and a code sandbox allowing you to play with the code.

      I built this website with ❤️. I hope it will help you create stunning vizs in a minimum amount of time. Reach me on Twitter, contribute on github and subscribe to the newsletter to know when new chart types are published!

      Contact

      👋 Hey, I'm Yan and I'm currently working on this project!

      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

      +About the gallery

      React + D3.js = ❤️


      A love story – So simple powerful yet so complicated

      A few years ago I created the d3 graph gallery, a website showcasing hundreds of simple charts made with d3.js. It worked well! Thousands of people use it daily to learn d3. 🎉

      Since then, React became the most popular framework to build user interfaces. This rose a question: how to build a chart in react? That's a complicated question with many answers. Here are the 3 most common approaches.

      3 ways to draw a chart in react

      → 1️⃣ Charting libraries

      There is a myriad of charting libraries offering react components for every chart type. HighChart, ReCharts, React-viz, plot, visX and so many more. Those libraries are awesome: you'll get a working chart in minutes using them.

      But simplicity comes with a cost: the time you saved in the first place will be lost when you'll try to reach a high level of customization.

      If you want to build something unique, you need to draw shapes one by one.

      → 2️⃣ D3 for rendering in a useEffect hook

      If you're familiar with d3.js already, it's possible to use any of its examples (from a block or the gallery) by using a useEffect hook.

      Basically, you can create a div in the DOM using react. You can then use the drawing methods of the d3-selection module like append or axisBottom to target this div, and add the content of the chart.

      Let's apply this to draw axes:

      You can use all the d3 knowlege you have in a useEffect hook to build the graph in a react context.

      This works but comes with some caveats. To put it in a nutshell you now have 2 tools trying to control the DOM: react and d3. That's hard to maintain for large applications.

      → 3️⃣ D3 for maths, React for rendering

      This gallery suggests using d3.js only for the math utils it provides. And to add entries to the DOM using react, like for any other UI element.

      Let's say we want to build a scatterplot. The scaleLinear function of d3.js is used to build the scales. Now that we can easily know the position of a circle on the screen, we can just loop through all data items and render them as a circle svg element.

      012345678910

      Use d3.js to compute the scales. Use React to render the circles.

      Learn concepts, Get templates

      This gallery is all about using the power of the d3 math utils and the react rendering engine.

      The first goal is to teach the concepts. Many examples are provided for each chart type. Each one targets a specific theme like color, axis, responsiveness, hover effect, or tooltips.

      The second goal is to provide templates for each viz type. Building a viz from scratch is time-consuming, so better tweak an existing example.

      All graph examples come with an explanation and a code sandbox allowing you to play with the code.

      I built this website with ❤️. I hope it will help you create stunning vizs in a minimum amount of time. Reach me on Twitter, contribute on github and subscribe to the newsletter to know when new chart types are published!

      Contact

      👋 Hey, I'm Yan and I'm currently working on this project!

      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

        -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/all.html b/all.html index 5ad563a6..f1c1df27 100644 --- a/all.html +++ b/all.html @@ -1,4 +1,4 @@ -All graphs

        All graphs

        Dataviz logo representing a DataArt2 chart.

        The react graph gallery displays hundreds of graphs made with React, often with the help of d3.js. This page provides an overview of all charts showcased in this gallery.

        Note that all chart types are presented on the welcome page of the gallery. It is probably a more convenient way to browse this website if you know what you are looking for!

        Useful links
        Picture of an empty chart area with X and Y axes

        Scales and axes

        How to map your data in a 2d space, and how to draw the axes

        GIF of a scatterplot with hover effect

        Scatterplot Hover effect

        How to add a hover effect to highlight a group on a scatterplot

        Most basic scatterplot made with react and d3

        Basic scatter plot

        Add circles to get a basic scatter plot

        Scatterplot with tooltip made with react and d3

        Add tooltip

        Get more details about each datapoint by adding a tooltip on hover

        Scatterplot with hover effect made with react and d3

        Add a hover effect

        Highlight a specific group on hover

        Real life example of a scatterplot made with react and d3

        Real life use-case

        Reproduction of a data wrapper chart representing countries CO2 data

        gif of a scatterplot with voronoi diagram for closest point detection

        Closest point detection with Voronoi

        Using a voronoi diagram in the scatterplot background is a smart way to efficiently find the mouse closest point

        a scatterplot made with react and rendered in canvas

        Scatterplot in Canvas

        Learn how to render a scatterplot in canvas to improve performances

        Picture of a simple heatmap made with react and d3.js

        Basic heatmap

        Most basic heatmap

        Picture of a heatmap with a tooltip that appears on hover

        Heatmap with tooltip

        Learn how to add a tooltip to a heatmap with react

        Picture of a continuous color scale built with d3.js

        Continuous color scale

        How to add a color legend to your chart that uses a continuous color scale

        Picture of a heatmap showing the effect of vaccination, built with react and d3

        Vaccination heatmap

        Reproduction of a famous vaccination heatmap using d3 and react

        Picture of a correlogram built with react and d3

        Basic correlogram

        Learn how to build a correlogram with react and d3

        Picture of a simple bubble plot with a legend made with react and d3.js

        Bubble plot

        Learn how to build a bubble plot with react and d3.js

        GIF of a bubble plot smoothly transitioning data

        Bubble plot data set transition

        How to smoothly animate the transition between dataset

        Picture of a hexbin chart made with React and d3.js

        Hexbin chart

        A hexbin chart split the figure in hexagons to show a 2d density

        Picture of a connected scatter plot made with React and d3.js

        Simple connected scatterplot

        A very simple connected scatter plot showing the evolution of 1 numeric variable

        gif of a violin plot smoothly transitioning to a boxplot using shape morphism

        Violin to Boxplot transition

        Using shape morphism to smoothly transition from a boxplot to a violin and reverse

        GIF showing a violin plot with varying bucket size

        Bucket size effect

        Interactive example showing the bucket size effect on a violin chart

        Picture of a violin shape built with react and d3

        Violin shape

        How to build the shape of a violin with SVG

        GIF showing a mirror transition between a boxplot and a violin plot

        Boxplot to Violin plot

        Interactive example showing the difference between a boxplot and a violin

        Picture of a basic violin chart built in react

        Basic violin plot

        Learn how to build a basic violin chart with d3 and react

        Picture of a violin plot with variable bucket size

        Violin with variable bucket size

        A violin plot with a slider to change the bucket size in use

        Picture of a basic density plot built with React and d3

        Basic density plot

        Most basic density plot built with React and d3

        Picture of a density plot with multiple groups

        Density plot with multiple groups

        How to add several groups on the same density plot

        Picture of a simple histogram made with react and d3.js

        Histogram

        Learn how to build a histogram with react and d3.js

        GIF of a histogram with animated data transition

        Histogram dataset transition

        How to animate the transition between datasets

        picture of a mirror histogram made with react and d3.js

        Mirror histogram

        Create a mirror histogram to compare the distribution of 2 groups in a dataset

        Picture of a histogram with small multiple built with react and d3.js

        Small multiple

        Create one panel per group to show its distribution separately

        Picture of a histogram with multiple groups built with react and d3.js

        Multiple groups

        A histogram with <b>multiple</b> groups displayed on the same axis.

        Picture of a boxplot with jitter built using react and d3.js

        Boxplot with jitter

        Add individual data points using jitter on top of the boxplot

        Picture of a box component, allowing to build a boxplot later on

        Boxplot shape

        How to build a boxplot shape in SVG

        Picture of a basic boxplot built with react and d3

        Basic boxplot

        How to build a basic boxplot with react

        Picture of a horizontal boxplot built with react and d3

        Horizontal boxplot

        How to build a horizontal boxplot with react

        Picture of a basic ridgeline chart built with react and d3

        Basic ridgeline chart

        Most basic version of a ridgeline plot

        Picture of a horizontal barplot made with React and d3

        Basic barplot

        Most basic barplot built with React and d3

        GIF of a data update on a React barplot

        Barplot dataset transition

        How to smoothly animate the transition between dataset

        Picture of a stacked barchart made with react and d3

        Horizontal Stacked Barplot

        Represent group and subgroup values by stacking the data

        Picture of a vertical stacked barchart made with react and d3

        Vertical Stacked Barplot

        Represent group and subgroup values by stacking the data

        Picture of a very simple lollipop chart

        Most basic lollipop plot

        Learn how to build a very simple lollipop chart with React and D3.js

        Picture of a very simple dumbbell chart

        Most basic dumbbell plot

        Learn how to build a very simple dumbbell chart with React and D3.js

        Picture of a lollipop chart with hover effect

        Lollipop with hover effect

        Learn how to add a hover effect to your lollipop chart

        Picture of a lollipop with buttons and animated transition

        Animation between dataset

        Learn how to build a smooth animated transition between 2 datasets

        Picture of the background grid of a radar chart

        Most basic line chart

        Learn how to build the background grid of a radar chart

        Picture of a very simple radar chart with 1 group only made with react and d3

        Most basic radar chart

        The most basic radar chart one can make using d3 and react

        Picture of a radar chart made with react and d3, with several groups displayed on the figure.

        Multi-group radar chart

        Radar chart with several groups displayed

        GIF of a radar chart, a line chart and a lollipop that animate between dataset

        Radar chart, line chart an lollipop with animated transition

        Three charts connected to same buttons, with smooth, synchronized animation when a button is clicked

        Picture of a simple treemap

        Basic treemap

        Most simple treemap, with 1 level of hierarchy only

        Picture of a simple treemap with 2 levels of hierarchy

        Treemap with 2 levels

        Simple treemap with 2 levels of hierarchy

        Picture of a simple treemap

        Hover effect

        Treemap with hover effect to highlight a group

        Picture of the most basic donut chart

        Basic Donut chart

        Most simple donut chart. No annotation, static figure.

        Picture of a simple donut chart with inline labels

        Inline labels

        Donut chart with inline labels and connection lines

        GIF of a donut chart with a hover effect

        Hover effect

        Donut chart with hover effect to highlight a slice

        GIF of a donut chart switching between 2 datasets

        Data transition

        How to smoothly transition dataset

        GIF of a donut chart switching between to a barplot and reverse

        Shape morphism

        Transition between a barplot and a donut chart

        Picture of the most basic pie chart

        Basic Pie chart

        Most simple pie chart. No annotation, static figure.

        Picture of a simple pie chart with inline labels

        Inline labels

        pie chart with inline labels and connection lines

        Picture of a very simple line chart made with react and d3

        Most basic line chart

        The most basic line chart one can make using d3 and react

        GIF of a line chart that animates between 2 dataset

        Line chart with dataset transition

        How to smoothly animate the transition between 2 dataset on a line chart

        line charts with synchronized cursors

        Synchronized cursors

        Add a cursor synchronized on all your charts

        Picture of a basic area chart made with React and D3

        Basic Area Chart

        Most basic version of an area chart made with react and d3.js

        picture of a basic stacked area plot made with react

        Basis stacked area chart

        Most basic version of a stacked area chart. Explains how to use the stack() function of d3.js

        Picture of a basic streamgraph made using Reacrt and d3.js

        Basic Streamgraph

        Most basic streamgraph one can build using d3 and react

        GIF of a streamgraph react component that supports hover effect

        Streamgraph with hover effect

        How to add a hover effect on a streamgraph to highlight a group

        GIF of a streamgraph

        Offset and Smoothing transition

        An interactive streamgraph example showing how to animate transition between the chart stacking features.

        GIF of a streamgraph with multiple interactive features

        Streamgraph application

        Streamgraph with a slider to zoom on a time stamp and with interactive inline legends

        Picture of a timeseries chart made with React and D3.js: scatterplot and line chart in use.

        Timeseries with moving average

        A scatterplot used for timeseries, with the moving average shown as a line chart on top.

        Picture of a very basic circle packing chart

        Most basic circular packing chart

        The most basic circular packing chart one can make using d3.js and React.

        Picture of a very basic circle packing chart with 2 levels of hierarchy

        Circular packing: 2 levels of hierarchy

        A simple circular packing chart with 2 levels of hierarchy built with React and d3.

        Picture of a circle packing chart made using the d3-force plugin

        Circle Pack with d3-force

        Another approach to build a circle packing chart using physical forces to compute node positions.

        Picture of a vertical arc diagram

        Vertical arc diagram

        The vertical version of the arc diagram is more convenient to display labels

        Picture of a very simple network chart built with React and D3.js.

        Most basic network chart

        Most basic network chart using the d3-force plugin to apply physical forces.

        Picture of a playground allowing to play with the various d3 forces

        Play with forces

        A playground to discover the effect of the various forces you can apply to your particles

        Picture of a force directed network chart showing character co-occurence in les miserables

        Force directed graph

        A force directed network chart showing character co-occurence in les miserables

        Contact

        👋 Hey, I'm Yan and I'm currently working on this project!

        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

        +All graphs

        All graphs

        Dataviz logo representing a DataArt2 chart.

        The react graph gallery displays hundreds of graphs made with React, often with the help of d3.js. This page provides an overview of all charts showcased in this gallery.

        Note that all chart types are presented on the welcome page of the gallery. It is probably a more convenient way to browse this website if you know what you are looking for!

        Useful links
        Picture of an empty chart area with X and Y axes

        Scales and axes

        How to map your data in a 2d space, and how to draw the axes

        GIF of a scatterplot with hover effect

        Scatterplot Hover effect

        How to add a hover effect to highlight a group on a scatterplot

        Most basic scatterplot made with react and d3

        Basic scatter plot

        Add circles to get a basic scatter plot

        Scatterplot with tooltip made with react and d3

        Add tooltip

        Get more details about each datapoint by adding a tooltip on hover

        Scatterplot with hover effect made with react and d3

        Add a hover effect

        Highlight a specific group on hover

        Real life example of a scatterplot made with react and d3

        Real life use-case

        Reproduction of a data wrapper chart representing countries CO2 data

        gif of a scatterplot with voronoi diagram for closest point detection

        Closest point detection with Voronoi

        Using a voronoi diagram in the scatterplot background is a smart way to efficiently find the mouse closest point

        a scatterplot made with react and rendered in canvas

        Scatterplot in Canvas

        Learn how to render a scatterplot in canvas to improve performances

        Picture of a simple heatmap made with react and d3.js

        Basic heatmap

        Most basic heatmap

        Picture of a heatmap with a tooltip that appears on hover

        Heatmap with tooltip

        Learn how to add a tooltip to a heatmap with react

        Picture of a continuous color scale built with d3.js

        Continuous color scale

        How to add a color legend to your chart that uses a continuous color scale

        Picture of a heatmap showing the effect of vaccination, built with react and d3

        Vaccination heatmap

        Reproduction of a famous vaccination heatmap using d3 and react

        Picture of a correlogram built with react and d3

        Basic correlogram

        Learn how to build a correlogram with react and d3

        Picture of a simple bubble plot with a legend made with react and d3.js

        Bubble plot

        Learn how to build a bubble plot with react and d3.js

        GIF of a bubble plot smoothly transitioning data

        Bubble plot data set transition

        How to smoothly animate the transition between dataset

        Picture of a hexbin chart made with React and d3.js

        Hexbin chart

        A hexbin chart split the figure in hexagons to show a 2d density

        Picture of a connected scatter plot made with React and d3.js

        Simple connected scatterplot

        A very simple connected scatter plot showing the evolution of 1 numeric variable

        gif of a violin plot smoothly transitioning to a boxplot using shape morphism

        Violin to Boxplot transition

        Using shape morphism to smoothly transition from a boxplot to a violin and reverse

        GIF showing a violin plot with varying bucket size

        Bucket size effect

        Interactive example showing the bucket size effect on a violin chart

        Picture of a violin shape built with react and d3

        Violin shape

        How to build the shape of a violin with SVG

        GIF showing a mirror transition between a boxplot and a violin plot

        Boxplot to Violin plot

        Interactive example showing the difference between a boxplot and a violin

        Picture of a basic violin chart built in react

        Basic violin plot

        Learn how to build a basic violin chart with d3 and react

        Picture of a violin plot with variable bucket size

        Violin with variable bucket size

        A violin plot with a slider to change the bucket size in use

        Picture of a basic density plot built with React and d3

        Basic density plot

        Most basic density plot built with React and d3

        Picture of a density plot with multiple groups

        Density plot with multiple groups

        How to add several groups on the same density plot

        Picture of a simple histogram made with react and d3.js

        Histogram

        Learn how to build a histogram with react and d3.js

        GIF of a histogram with animated data transition

        Histogram dataset transition

        How to animate the transition between datasets

        picture of a mirror histogram made with react and d3.js

        Mirror histogram

        Create a mirror histogram to compare the distribution of 2 groups in a dataset

        Picture of a histogram with small multiple built with react and d3.js

        Small multiple

        Create one panel per group to show its distribution separately

        Picture of a histogram with multiple groups built with react and d3.js

        Multiple groups

        A histogram with <b>multiple</b> groups displayed on the same axis.

        Picture of a boxplot with jitter built using react and d3.js

        Boxplot with jitter

        Add individual data points using jitter on top of the boxplot

        Picture of a box component, allowing to build a boxplot later on

        Boxplot shape

        How to build a boxplot shape in SVG

        Picture of a basic boxplot built with react and d3

        Basic boxplot

        How to build a basic boxplot with react

        Picture of a horizontal boxplot built with react and d3

        Horizontal boxplot

        How to build a horizontal boxplot with react

        Picture of a basic ridgeline chart built with react and d3

        Basic ridgeline chart

        Most basic version of a ridgeline plot

        Picture of a horizontal barplot made with React and d3

        Basic barplot

        Most basic barplot built with React and d3

        GIF of a data update on a React barplot

        Barplot dataset transition

        How to smoothly animate the transition between dataset

        Picture of a stacked barchart made with react and d3

        Horizontal Stacked Barplot

        Represent group and subgroup values by stacking the data

        Picture of a vertical stacked barchart made with react and d3

        Vertical Stacked Barplot

        Represent group and subgroup values by stacking the data

        Picture of a very simple lollipop chart

        Most basic lollipop plot

        Learn how to build a very simple lollipop chart with React and D3.js

        Picture of a very simple dumbbell chart

        Most basic dumbbell plot

        Learn how to build a very simple dumbbell chart with React and D3.js

        Picture of a lollipop chart with hover effect

        Lollipop with hover effect

        Learn how to add a hover effect to your lollipop chart

        Picture of a lollipop with buttons and animated transition

        Animation between dataset

        Learn how to build a smooth animated transition between 2 datasets

        Picture of the background grid of a radar chart

        Most basic line chart

        Learn how to build the background grid of a radar chart

        Picture of a very simple radar chart with 1 group only made with react and d3

        Most basic radar chart

        The most basic radar chart one can make using d3 and react

        Picture of a radar chart made with react and d3, with several groups displayed on the figure.

        Multi-group radar chart

        Radar chart with several groups displayed

        GIF of a radar chart, a line chart and a lollipop that animate between dataset

        Radar chart, line chart an lollipop with animated transition

        Three charts connected to same buttons, with smooth, synchronized animation when a button is clicked

        Picture of a simple treemap

        Basic treemap

        Most simple treemap, with 1 level of hierarchy only

        Picture of a simple treemap with 2 levels of hierarchy

        Treemap with 2 levels

        Simple treemap with 2 levels of hierarchy

        Picture of a simple treemap

        Hover effect

        Treemap with hover effect to highlight a group

        Picture of the most basic donut chart

        Basic Donut chart

        Most simple donut chart. No annotation, static figure.

        Picture of a simple donut chart with inline labels

        Inline labels

        Donut chart with inline labels and connection lines

        GIF of a donut chart with a hover effect

        Hover effect

        Donut chart with hover effect to highlight a slice

        GIF of a donut chart switching between 2 datasets

        Data transition

        How to smoothly transition dataset

        GIF of a donut chart switching between to a barplot and reverse

        Shape morphism

        Transition between a barplot and a donut chart

        Picture of the most basic pie chart

        Basic Pie chart

        Most simple pie chart. No annotation, static figure.

        Picture of a simple pie chart with inline labels

        Inline labels

        pie chart with inline labels and connection lines

        Picture of a very simple line chart made with react and d3

        Most basic line chart

        The most basic line chart one can make using d3 and react

        GIF of a line chart that animates between 2 dataset

        Line chart with dataset transition

        How to smoothly animate the transition between 2 dataset on a line chart

        line charts with synchronized cursors

        Synchronized cursors

        Add a cursor synchronized on all your charts

        Picture of a basic area chart made with React and D3

        Basic Area Chart

        Most basic version of an area chart made with react and d3.js

        picture of a basic stacked area plot made with react

        Basis stacked area chart

        Most basic version of a stacked area chart. Explains how to use the stack() function of d3.js

        Picture of a basic streamgraph made using Reacrt and d3.js

        Basic Streamgraph

        Most basic streamgraph one can build using d3 and react

        GIF of a streamgraph react component that supports hover effect

        Streamgraph with hover effect

        How to add a hover effect on a streamgraph to highlight a group

        GIF of a streamgraph

        Offset and Smoothing transition

        An interactive streamgraph example showing how to animate transition between the chart stacking features.

        GIF of a streamgraph with multiple interactive features

        Streamgraph application

        Streamgraph with a slider to zoom on a time stamp and with interactive inline legends

        Picture of a timeseries chart made with React and D3.js: scatterplot and line chart in use.

        Timeseries with moving average

        A scatterplot used for timeseries, with the moving average shown as a line chart on top.

        Picture of a very basic circle packing chart

        Most basic circular packing chart

        The most basic circular packing chart one can make using d3.js and React.

        Picture of a very basic circle packing chart with 2 levels of hierarchy

        Circular packing: 2 levels of hierarchy

        A simple circular packing chart with 2 levels of hierarchy built with React and d3.

        Picture of a circle packing chart made using the d3-force plugin

        Circle Pack with d3-force

        Another approach to build a circle packing chart using physical forces to compute node positions.

        Picture of a vertical arc diagram

        Vertical arc diagram

        The vertical version of the arc diagram is more convenient to display labels

        Picture of a very simple network chart built with React and D3.js.

        Most basic network chart

        Most basic network chart using the d3-force plugin to apply physical forces.

        Picture of a playground allowing to play with the various d3 forces

        Play with forces

        A playground to discover the effect of the various forces you can apply to your particles

        Picture of a force directed network chart showing character co-occurence in les miserables

        Force directed graph

        A force directed network chart showing character co-occurence in les miserables

        Contact

        👋 Hey, I'm Yan and I'm currently working on this project!

        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

          -
          \ No newline at end of file +
          \ No newline at end of file diff --git a/animation.html b/animation.html index dd6a9d89..cab0a415 100644 --- a/animation.html +++ b/animation.html @@ -1,4 +1,4 @@ -Animation

          Animation

          Dataviz logo representing a Anim chart.

          Animation is both the most challenging and the most exciting part of an interactive chart. Animation is like salt: use the right amount of it and your creation is a delight. Too much of it and it spoils the dish 🤌.

          There are many ways to animate the transition between 2 chart states. Here I suggest to use react-spring in combination with react andd3.js.

          Useful links

          Work in Progress

          This section is a work in progress. 🚧

          For now, it just lists all the charts using react-spring in the gallery.

          But I plan to write some complete tutorials on this passionating and complicated topic. You can subscribe to the project to know when it's ready!


          Subscribe


          GIF of a bubble plot smoothly transitioning data

          Bubble plot data set transition

          How to smoothly animate the transition between dataset

          gif of a violin plot smoothly transitioning to a boxplot using shape morphism

          Violin to Boxplot transition

          Using shape morphism to smoothly transition from a boxplot to a violin and reverse

          GIF showing a violin plot with varying bucket size

          Bucket size effect

          Interactive example showing the bucket size effect on a violin chart

          GIF showing a mirror transition between a boxplot and a violin plot

          Boxplot to Violin plot

          Interactive example showing the difference between a boxplot and a violin

          GIF of a histogram with animated data transition

          Histogram dataset transition

          How to animate the transition between datasets

          GIF of a data update on a React barplot

          Barplot dataset transition

          How to smoothly animate the transition between dataset

          GIF of a line chart that animates between 2 dataset

          Line chart with dataset transition

          How to smoothly animate the transition between 2 dataset on a line chart

          GIF of a streamgraph

          Offset and Smoothing transition

          An interactive streamgraph example showing how to animate transition between the chart stacking features.

          Contact

          👋 Hey, I'm Yan and I'm currently working on this project!

          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

          +Animation

          Animation

          Dataviz logo representing a Anim chart.

          Animation is both the most challenging and the most exciting part of an interactive chart. Animation is like salt: use the right amount of it and your creation is a delight. Too much of it and it spoils the dish 🤌.

          There are many ways to animate the transition between 2 chart states. Here I suggest to use react-spring in combination with react andd3.js.

          Useful links

          Work in Progress

          This section is a work in progress. 🚧

          For now, it just lists all the charts using react-spring in the gallery.

          But I plan to write some complete tutorials on this passionating and complicated topic. You can subscribe to the project to know when it's ready!


          Subscribe


          GIF of a bubble plot smoothly transitioning data

          Bubble plot data set transition

          How to smoothly animate the transition between dataset

          gif of a violin plot smoothly transitioning to a boxplot using shape morphism

          Violin to Boxplot transition

          Using shape morphism to smoothly transition from a boxplot to a violin and reverse

          GIF showing a violin plot with varying bucket size

          Bucket size effect

          Interactive example showing the bucket size effect on a violin chart

          GIF showing a mirror transition between a boxplot and a violin plot

          Boxplot to Violin plot

          Interactive example showing the difference between a boxplot and a violin

          GIF of a histogram with animated data transition

          Histogram dataset transition

          How to animate the transition between datasets

          GIF of a data update on a React barplot

          Barplot dataset transition

          How to smoothly animate the transition between dataset

          GIF of a line chart that animates between 2 dataset

          Line chart with dataset transition

          How to smoothly animate the transition between 2 dataset on a line chart

          GIF of a streamgraph

          Offset and Smoothing transition

          An interactive streamgraph example showing how to animate transition between the chart stacking features.

          Contact

          👋 Hey, I'm Yan and I'm currently working on this project!

          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

            -
            \ No newline at end of file +
            \ No newline at end of file diff --git a/arc-diagram.html b/arc-diagram.html index 25d13529..2e1dd893 100644 --- a/arc-diagram.html +++ b/arc-diagram.html @@ -1,4 +1,4 @@ -How to build an Arc Diagram with React and D3.

            Arc diagram

            Dataviz logo representing a Arc chart.

            An arc diagram is a special kind of network graph. It is consituted by nodes that represent entities and by links that show relationships between entities. In arc diagrams, nodes are displayed along a single axis and links are represented with arcs.

            This page is a step by step tutorial explaining how to build an Arc diagram component with React and D3.js. It comes with explanations and code sandboxes. It starts by simple concept like how to format the data and how to draw arcs in SVG, and then goes further with hover effect, tooltip and more.

            Useful links

            The Data

            Two layers of information are required to build an arc diagram: a list of nodes to build the circles and a list of links to build the arcs.

            Many different data structures can be used to store such information. In this tutorial I suggest to start with the following:

            export const data = {
            +How to build an Arc Diagram with React and D3.

            Arc diagram

            Dataviz logo representing a Arc chart.

            An arc diagram is a special kind of network graph. It is consituted by nodes that represent entities and by links that show relationships between entities. In arc diagrams, nodes are displayed along a single axis and links are represented with arcs.

            This page is a step by step tutorial explaining how to build an Arc diagram component with React and D3.js. It comes with explanations and code sandboxes. It starts by simple concept like how to format the data and how to draw arcs in SVG, and then goes further with hover effect, tooltip and more.

            Useful links

            The Data

            Two layers of information are required to build an arc diagram: a list of nodes to build the circles and a list of links to build the arcs.

            Many different data structures can be used to store such information. In this tutorial I suggest to start with the following:

            export const data = {
               nodes: [
                   { id: "Myriel", group: 'team1' },
                   { id: "Anne", group: 'team1' },
            @@ -100,4 +100,4 @@
             }

            I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




            Arc Diagram inspiration

            If you're looking for inspiration to create your next Arc Diagram, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

            dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Arc Diagram looks good!

            visit

            Variations

            Once you've understood how to build a basic arc diagram with d3 and react, it opens an infinite world of customization. Here are a few examples highlighting what it is possible to do with arc diagrams.

            Click on the overview below to get details and code.


            Picture of a vertical arc diagram

            Vertical arc diagram

            The vertical version of the arc diagram is more convenient to display labels

            Contact

            👋 Hey, I'm Yan and I'm currently working on this project!

            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

              -
              \ No newline at end of file +
              \ No newline at end of file diff --git a/area-plot.html b/area-plot.html index c67f340c..ce832fef 100644 --- a/area-plot.html +++ b/area-plot.html @@ -1,4 +1,4 @@ -Area charts with React

              Area charts

              Dataviz logo representing a Area chart.

              An area chart displays the evolution of one numeric variables. It is like a line chart, but with the area below the line being filled.

              This section describes how to build area charts on the web with d3.js and react. It starts very basic and then explains how to add more complex features like brushing, adding hover effects and more.

              Useful links

              The Data

              The dataset required to build a line chart is usually an array where each item is an object providing the x and the y values of the data point.


              Here is a minimal example:

              const data = [
              +Area charts with React

              Area charts

              Dataviz logo representing a Area chart.

              An area chart displays the evolution of one numeric variables. It is like a line chart, but with the area below the line being filled.

              This section describes how to build area charts on the web with d3.js and react. It starts very basic and then explains how to add more complex features like brushing, adding hover effects and more.

              Useful links

              The Data

              The dataset required to build a line chart is usually an array where each item is an object providing the x and the y values of the data point.


              Here is a minimal example:

              const data = [
                 {x:1, y: 90},
                 {x: 2, y: 12},
                 {x: 3, y: 34},
              @@ -16,4 +16,4 @@
               const areaPath = areaBuilder(data);

              Both a y0 and a y1 arguments are used. They provide both the bottom and the top position of the shape for each x position.

              The output areaPath can now be passed to a path resulting in the following area chart:

              A very basic area chart made using react and the area() function of d3.js

              Area chart inspiration

              If you're looking for inspiration to create your next Area chart, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

              dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Area chart looks good!

              visit



              Contact

              👋 Hey, I'm Yan and I'm currently working on this project!

              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                -
                \ No newline at end of file +
                \ No newline at end of file diff --git a/articles.html b/articles.html index 70bd3290..78ce377c 100644 --- a/articles.html +++ b/articles.html @@ -1,7 +1,7 @@ -How to make react and d3.js work together

                Dataviz Insights with React and D3.js


                While our gallery showcases a myriad of graph examples, this space is dedicated to delving into the intricacies of data visualization using React and D3.js.

                From unraveling the complexities of creating stacked bar plots with negative values to envisioning futuristic visualizations, our articles aim to enlighten, inspire, and guide you through the advanced realms of dataviz.

                Whether you're a seasoned developer or just starting out, these articles offer a wealth of knowledge to elevate your visualization game.

                Let's embark on this enlightening journey together! 🔥

                Responsiveness: a hook that makes your viz fits its container

                Viz components often take a width and a height properties as input. This blogposts explains how to build a wrapper around it that computes the parent's div dimension and pass it as propsRead more

                5 minutes read

                Fundamental
                Responsiveness
                Interaction

                Hover interaction

                Interactivity is an important part of dataviz when working in the browser. Adding a hover effect can improve the user experience by highlighting a series on the chart. Here are a couple way to implement it, always keeping performances in mind.Read more

                6 minutes read

                Fundamental
                Interaction

                🍔 Stacked barplot: how to deal with negative values

                A stacked barchart displays the values of items split in group and subgroups. It's a quite common chart type, but dealing with negative values in the dataset brings some interesting dataviz discussions.Read more

                6 minutes read

                Dataviz

                The next articles are currently in writing mode. ⬇️

                They will be released soon and you can be updated through my newsletter:


                +How to make react and d3.js work together

                Dataviz Insights with React and D3.js


                While our gallery showcases a myriad of graph examples, this space is dedicated to delving into the intricacies of data visualization using React and D3.js.

                From unraveling the complexities of creating stacked bar plots with negative values to envisioning futuristic visualizations, our articles aim to enlighten, inspire, and guide you through the advanced realms of dataviz.

                Whether you're a seasoned developer or just starting out, these articles offer a wealth of knowledge to elevate your visualization game.

                Let's embark on this enlightening journey together! 🔥

                Responsiveness: a hook that makes your viz fits its container

                Viz components often take a width and a height properties as input. This blogposts explains how to build a wrapper around it that computes the parent's div dimension and pass it as propsRead more

                5 minutes read

                Fundamental
                Responsiveness
                Interaction

                Hover interaction

                Interactivity is an important part of dataviz when working in the browser. Adding a hover effect can improve the user experience by highlighting a series on the chart. Here are a couple way to implement it, always keeping performances in mind.Read more

                6 minutes read

                Fundamental
                Interaction

                🍔 Stacked barplot: how to deal with negative values

                A stacked barchart displays the values of items split in group and subgroups. It's a quite common chart type, but dealing with negative values in the dataset brings some interesting dataviz discussions.Read more

                6 minutes read

                Dataviz

                The next articles are currently in writing mode. ⬇️

                They will be released soon and you can be updated through my newsletter:


                  Using react and d3.js: The 2 strategies

                  React modifies the DOM. So does d3.js. It makes it notoriously hard to have them work together. This blog post describes the 2 main strategies to use d3.js in a react app, with their pros and cons.

                  4 minutes read

                  Fundamental

                  Axes: build them with react (and a bit of d3)

                  Most of the viz types need some axes to be insightful. This post explains how to build them from a d3 scale, using the tick() method of d3 to create re-usable react components.

                  8 minutes read

                  Fundamental
                  Axis

                  Graph to graph interaction

                  Let's say you have a choropleth map on a side, a timeseries on the other. How can you add cross-viz interactions, like hovering a country to highlight its trend on the timeseries?

                  10 minutes read

                  Interaction
                  Advanced

                  Spring animations with react spring

                  It's often necessary to transition between 2 ys of a graph. React-spring is here to help, allowing to use spring animations easily.

                  5 minutes read

                  Fundamental
                  Animation

                  Dataset transition

                  Adding a smooth transition between dataset often adds a nice touch to your viz component. Let's see how to implement it with react-spring.

                  5 minutes read

                  Animation

                  Shape morphism: animate the transition between 2 distincts charts

                  How can we build a smooth transition between a pie chart and a barplot? The flubber js library allows to interpolate shapes and react-spring can animate this interpolation.

                  5 minutes read

                  Advanced
                  Animation

                  Improve chart performance with Canvas

                  Rendering a chart using svg is limited in term of performace. The DOM gets to crowded and updating it ends up being slow. Using canvas is the best workaround but you need to be able to draw your svg path using it!

                  5 minutes read

                  Fundamental
                  Canvas

                  Fix the blurry canvas on Retina screens

                  When using canvas for your viz, the result will be blurry on retina screens if you don't scale the canvas properly. Here is why and how to implement it.

                  5 minutes read

                  Canvas
                  Advanced

                  What is a color

                  There are so many ways to define a color when talking with a computer. Let's take a tour and see what's the most appropriate for a dataviz point of view.

                  3 minutes read

                  Fundamental
                  Axis

                  Buiding a futuristic viz

                  What makes a viz look from the future. And how to implement it with d3.js and reac.

                  3 minutes read

                  Fundamental
                  Axis

                  Contact

                  👋 Hey, I'm Yan and I'm currently working on this project!

                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                    -
                    \ No newline at end of file +
                    \ No newline at end of file diff --git a/barplot.html b/barplot.html index 46627de0..f0f4d075 100644 --- a/barplot.html +++ b/barplot.html @@ -1,4 +1,4 @@ -Barplot with React

                    Barplot

                    Dataviz logo representing a Bar chart.

                    A barplot displays a numeric value for several groups of a dataset using rectangles. This page is a step-by-step guide on how to build your own barplot for the web, using React and D3.js.

                    It starts with very basic concepts like data structure, scales and svg rectangle rendering. It then shows how to add interactivity to the chart with hover effects. Last but not least it explains how to build variations like the stacked barplot.

                    Useful links

                    The Data

                    The dataset required to build a barplot is usually an array where each item is an object providing the name and the value of the group.


                    Here is a minimal example

                    const data = [
                    +Barplot with React

                    Barplot

                    Dataviz logo representing a Bar chart.

                    A barplot displays a numeric value for several groups of a dataset using rectangles. This page is a step-by-step guide on how to build your own barplot for the web, using React and D3.js.

                    It starts with very basic concepts like data structure, scales and svg rectangle rendering. It then shows how to add interactivity to the chart with hover effects. Last but not least it explains how to build variations like the stacked barplot.

                    Useful links

                    The Data

                    The dataset required to build a barplot is usually an array where each item is an object providing the name and the value of the group.


                    Here is a minimal example

                    const data = [
                       {name:"Mark", value: 90},
                       {name:"Robert", value: 12},
                       {name:"Emily", value: 34},
                    @@ -66,4 +66,4 @@
                     }

                    I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                    Transition

                    When the dataset updates, it adds a nice touch to smoothly animate the transition. In the example below, changing the dataset will update the bar sizes and their positions on the Y axis to keep the ranking accurate.

                    Animation is a complicated topic in dataviz. We have to deal with updates (an element changes its features), enter (a new element appears) and exit (an element is not present anymore) patterns.

                    I suggest to rely on the react-spring library to help here. Please check this dedicated blogpost to get explanations about the code of this example.

                    Most basic barplot built with d3.js for scales, and react for rendering

                    Stacking

                    A stacked barplot is a variation of a barplot where an additional level of grouping is represented. Each bar represent the value of a group, for instance how much each my friend spent in the last month. Each bar is then subdivided, each part representing the value of a subgroup, for instance the category of expense.

                    D3 comes with a very handy stack() function. The 2 tutorials below explain how this function works, and how to use it to render a clean stacked barplot.

                    Picture of a stacked barchart made with react and d3

                    Horizontal Stacked Barplot

                    Represent group and subgroup values by stacking the data

                    Picture of a vertical stacked barchart made with react and d3

                    Vertical Stacked Barplot

                    Represent group and subgroup values by stacking the data

                    Vertical barplot

                    The vertical option is less common since it makes is much harder to read the labels. But if you really need it, it is just a matter of swaping the X and Y axes of the previous example.

                    This example will be publish soon, please subscribe below if you want to be notified.

                    Hover effect

                    This example will be publish soon, please subscribe to the newsletter if you want to be notified.

                    Variations

                    Let's go beyond the basic barcharts. Click on the overview images below to get details and code.


                    GIF of a donut chart switching between to a barplot and reverse

                    Shape morphism

                    Transition between a barplot and a donut chart

                    Contact

                    👋 Hey, I'm Yan and I'm currently working on this project!

                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                      -
                      \ No newline at end of file +
                      \ No newline at end of file diff --git a/boxplot.html b/boxplot.html index 3edce528..ba8f4209 100644 --- a/boxplot.html +++ b/boxplot.html @@ -1,4 +1,4 @@ -Boxplot with React

                      Boxplot

                      Dataviz logo representing a Box1 chart.

                      A boxplot summarizes the distribution of a numeric variable, often for several groups of a dataset. This page is a step-by-step guide on how to build a reusable boxplot component for the web using React and D3.js.

                      It starts by describing how to format the dataset and how to initialize the boxplot component. It then explains how to create a Box component that displays a single box. Finally, it shows how to render the boxplot and suggests a few variations. 🙇‍♂️.

                      Useful links

                      The Data 💾

                      The dataset used to build a boxplot is usually an array of objects. For each object, a name property provides the group name, and a value property provides the numeric value. It looks like this:

                      const data = [
                      +Boxplot with React

                      Boxplot

                      Dataviz logo representing a Box1 chart.

                      A boxplot summarizes the distribution of a numeric variable, often for several groups of a dataset. This page is a step-by-step guide on how to build a reusable boxplot component for the web using React and D3.js.

                      It starts by describing how to format the dataset and how to initialize the boxplot component. It then explains how to create a Box component that displays a single box. Finally, it shows how to render the boxplot and suggests a few variations. 🙇‍♂️.

                      Useful links

                      The Data 💾

                      The dataset used to build a boxplot is usually an array of objects. For each object, a name property provides the group name, and a value property provides the numeric value. It looks like this:

                      const data = [
                         { name: "A", value: 10.7577 },
                         { name: "A", value: 19.9273 },
                         { name: "B", value: 13.8917 },
                      @@ -190,4 +190,4 @@
                       }

                      I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                      Boxplot inspiration

                      If you're looking for inspiration to create your next Boxplot, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                      dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Boxplot looks good!

                      visit

                      Boxplot variations

                      Even if powerful to summarize the distribution of a numeric variable, the boxplot has flaws.

                      It indeed hides the underlying distribution. For instance, a low sample size or a bi-modal distribution is impossible to detect by reading the boxes only.

                      Jittering is a good workaround. Add all individual data points with low size, low opacity, and some random shift to the right or the left (jitter). The underlying distribution becomes instantly available.

                      Note that another good alternative is the violin plot, especially for a high sample size.

                      gif of a violin plot smoothly transitioning to a boxplot using shape morphism

                      Violin to Boxplot transition

                      Using shape morphism to smoothly transition from a boxplot to a violin and reverse

                      Picture of a violin plot with variable bucket size

                      Violin with variable bucket size

                      A violin plot with a slider to change the bucket size in use

                      Picture of a boxplot with jitter built using react and d3.js

                      Boxplot with jitter

                      Add individual data points using jitter on top of the boxplot

                      Picture of a horizontal boxplot built with react and d3

                      Horizontal boxplot

                      How to build a horizontal boxplot with react

                      Contact

                      👋 Hey, I'm Yan and I'm currently working on this project!

                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                        -
                        \ No newline at end of file +
                        \ No newline at end of file diff --git a/bubble-map.html b/bubble-map.html index 14ee8bef..b4cbd473 100644 --- a/bubble-map.html +++ b/bubble-map.html @@ -1,4 +1,4 @@ -How to build a bubble map component with React and D3.

                        Bubble Map

                        Dataviz logo representing a BubbleMap chart.

                        A bubble map uses circles of different size to represent a numeric value on a territory. It displays one bubble per geographic coordinate, or one bubble per region.

                        This page explains how to build bubble maps for the web using d3.js and react. Several tools can be used to display the background map as shown in the dedicated section. Circles are then computed with d3 and render using SVG or canvas elements with react.

                        Examples start easy and add layers of complexity progressively. You will always find explanations and code sandboxes for each step.

                        Useful links

                        The Data

                        Two pieces of information are required to build a bubble map:

                        → Geographic information

                        The first thing you need is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                        Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                        {
                        +How to build a bubble map component with React and D3.

                        Bubble Map

                        Dataviz logo representing a BubbleMap chart.

                        A bubble map uses circles of different size to represent a numeric value on a territory. It displays one bubble per geographic coordinate, or one bubble per region.

                        This page explains how to build bubble maps for the web using d3.js and react. Several tools can be used to display the background map as shown in the dedicated section. Circles are then computed with d3 and render using SVG or canvas elements with react.

                        Examples start easy and add layers of complexity progressively. You will always find explanations and code sandboxes for each step.

                        Useful links

                        The Data

                        Two pieces of information are required to build a bubble map:

                        → Geographic information

                        The first thing you need is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                        Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                        {
                           "type": "FeatureCollection",
                           "features": [
                             {
                        @@ -157,4 +157,4 @@
                         };

                        A bubble chart component that smoothly animates changes between datasets.

                        Animation in dataviz using React is a big topic. It's impossible to go in-depth here! I will publish a dedicated blog post on the topic soon. Please subscribe to the newsletter if you want to be notified.

                        Bubble inspiration

                        If you're looking for inspiration to create your next Bubble, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                        dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Bubble looks good!

                        visit

                        Contact

                        👋 Hey, I'm Yan and I'm currently working on this project!

                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                          -
                          \ No newline at end of file +
                          \ No newline at end of file diff --git a/bubble-plot.html b/bubble-plot.html index 7eccff36..c8268df5 100644 --- a/bubble-plot.html +++ b/bubble-plot.html @@ -1,4 +1,4 @@ -Bubble plot with React

                          Bubble plot

                          Dataviz logo representing a BubblePlot chart.

                          A bubble plot is an extension of a scatterplot, where each circle has its size proportional to a numeric value. This page is a step-by-step guide on how to build your own bubble chart for the web, using React and D3.js.

                          This page focuses on the implementation of features that are different from the scatterplot that has its dedicated section. It describes how the dataset differs, how the circle size can be mapped to a numeric value, and how to explicit it using a legend. Last but not least it explains how to add interactivity: hover effect, tooltip, and dataset transition. 🙇‍♂️.

                          Useful links

                          The Data

                          The dataset used to build a bubble plot is usually an array of objects where each object is a data point. For each object, at least 3 properties are required.

                          Two properties are used for the X and Y axis, the third one is used for the circle size.

                          Note that you can add more properties to the object. For instance, a name can be displayed in the tooltip, and a group can be used to color the bubbles.

                          const data = [
                          +Bubble plot with React

                          Bubble plot

                          Dataviz logo representing a BubblePlot chart.

                          A bubble plot is an extension of a scatterplot, where each circle has its size proportional to a numeric value. This page is a step-by-step guide on how to build your own bubble chart for the web, using React and D3.js.

                          This page focuses on the implementation of features that are different from the scatterplot that has its dedicated section. It describes how the dataset differs, how the circle size can be mapped to a numeric value, and how to explicit it using a legend. Last but not least it explains how to add interactivity: hover effect, tooltip, and dataset transition. 🙇‍♂️.

                          Useful links

                          The Data

                          The dataset used to build a bubble plot is usually an array of objects where each object is a data point. For each object, at least 3 properties are required.

                          Two properties are used for the X and Y axis, the third one is used for the circle size.

                          Note that you can add more properties to the object. For instance, a name can be displayed in the tooltip, and a group can be used to color the bubbles.

                          const data = [
                             {
                               "x": 43.828,
                               "y": 31889923,
                          @@ -109,4 +109,4 @@
                           };
                          30405060708090

                          A bubble chart component that smoothly animates changes between datasets.

                          Animation in dataviz using React is a big topic. It's impossible to go in-depth here! I will publish a dedicated blog post on the topic soon. Please subscribe to the newsletter if you want to be notified.

                          Real-life application

                          Let's apply the concepts learned above to a real-life example.

                          I like this scatterplot originally published on the data wrapper blog. It shows a strong correlation between vulnerability to climate change and CO2 emissions.


                          The chart has several features that are interesting to reproduce from a technical point of view:

                          • Custom annotation: only a fraction of the country names are written
                          • Hover effect: the hovered country is highlighted with a black stroke. After a short delay, countries of other groups are dimmed. Note that the effect is triggered once the mouse approaches the marker, no need to be perfectly on top.
                          • Tooltip: highly customized and linked to the mouse position

                          The countries with the highest vulnerability to climate change have the lowest CO2 emissions

                          All countries sorted by their vulnerability and readiness to climate change. The size shows the CO2 emission per person in that country.

                          High ReadinessLow ReadinessQatarBahrainU.S.Trinidad and TobagoCzech RepublicSingaporeNorwayIndiaSudanChadSomalia

                          Reproduction of a chart originally published by Data Wrapper using react and d3.js.

                          Variations

                          Once you've understood how to build a basic bubble chart with d3 and react, it opens an infinite world of customization. Here are a few examples using the same concepts.

                          Click on the overview below to get details and code.


                          Picture of a circle packing chart made using the d3-force plugin

                          Circle Pack with d3-force

                          Another approach to build a circle packing chart using physical forces to compute node positions.



                          Contact

                          👋 Hey, I'm Yan and I'm currently working on this project!

                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                            -
                            \ No newline at end of file +
                            \ No newline at end of file diff --git a/build-axis-with-react.html b/build-axis-with-react.html index 324abca3..1856d79b 100644 --- a/build-axis-with-react.html +++ b/build-axis-with-react.html @@ -1,4 +1,4 @@ -Building graph axes with React (and d3.js)

                            Building graph axes with React (and d3.js)


                            This post explains how to build axes from d3 scales for a chart. It relies on the tick() method to compute the tick positions and use react for the rendering. The code of the BottomAxis and LeftAxiscomponents is provided, together with some reproducible examples.

                            This minimal example uses scaleLinear() to compute the scales, ticks() to compute tick positions and react to render the axes.

                            Bottom Axis

                            The code snippet below builds a AxisBottom component. It is very much inspired from this blogpost by Amelia Wattenberger. I've just changed a few things, notably passing a scale as input instead of a range and a domain.

                            The logic mainly relies on the ticks() method of a d3 scale. It takes a target number of ticks as input, find the most appropriate way to build smart ticks based on this target, and returns an array with all the tick positions.

                            What follows is just some svg drawings based on those tick positions.

                            const TICK_LENGTH = 6;
                            +Building graph axes with React (and d3.js)

                            Building graph axes with React (and d3.js)


                            This post explains how to build axes from d3 scales for a chart. It relies on the tick() method to compute the tick positions and use react for the rendering. The code of the BottomAxis and LeftAxiscomponents is provided, together with some reproducible examples.

                            This minimal example uses scaleLinear() to compute the scales, ticks() to compute tick positions and react to render the axes.

                            Bottom Axis

                            The code snippet below builds a AxisBottom component. It is very much inspired from this blogpost by Amelia Wattenberger. I've just changed a few things, notably passing a scale as input instead of a range and a domain.

                            The logic mainly relies on the ticks() method of a d3 scale. It takes a target number of ticks as input, find the most appropriate way to build smart ticks based on this target, and returns an array with all the tick positions.

                            What follows is just some svg drawings based on those tick positions.

                            const TICK_LENGTH = 6;
                             
                             export const AxisBottom = ({ xScale, pixelsPerTick }) => {
                               const range = xScale.range();
                            @@ -88,4 +88,4 @@
                             

                            Contact

                            👋 Hey, I'm Yan and I'm currently working on this project!

                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                              -
                              \ No newline at end of file +
                              \ No newline at end of file diff --git a/cartogram.html b/cartogram.html index 731fd201..65758abe 100644 --- a/cartogram.html +++ b/cartogram.html @@ -1,4 +1,4 @@ -How to build a cartogram with React and D3.

                              Cartogram

                              Dataviz logo representing a Cartogram chart.

                              A cartogram is a map in which the geometry of regions is distorted in order to convey the information of an alternate variable.

                              It is possible to build a Cartogram react component thanks to a js library called topogram. This page provides step-by-step explanations on how to use the library based on a geoJson file with the help of d3.js for manipulating such a data source.

                              Useful links

                              The Data

                              Probably uses the same as for a choropleth map or for a bubble map.

                              The Topogram library

                              As far as I can tell the best way to create a cartogram in JS is the topogram library.

                              However it looks like there is no easy way to install it using npm. The easiest way is probably to clone the repo and create the build, or to copy the content of the cartogram.js file.

                              ToDoAdd example of usage of the topogram lib

                              Contact

                              👋 Hey, I'm Yan and I'm currently working on this project!

                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                              +How to build a cartogram with React and D3.

                              Cartogram

                              Dataviz logo representing a Cartogram chart.

                              A cartogram is a map in which the geometry of regions is distorted in order to convey the information of an alternate variable.

                              It is possible to build a Cartogram react component thanks to a js library called topogram. This page provides step-by-step explanations on how to use the library based on a geoJson file with the help of d3.js for manipulating such a data source.

                              Useful links

                              The Data

                              Probably uses the same as for a choropleth map or for a bubble map.

                              The Topogram library

                              As far as I can tell the best way to create a cartogram in JS is the topogram library.

                              However it looks like there is no easy way to install it using npm. The easiest way is probably to clone the repo and create the build, or to copy the content of the cartogram.js file.

                              ToDoAdd example of usage of the topogram lib

                              Contact

                              👋 Hey, I'm Yan and I'm currently working on this project!

                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                -
                                \ No newline at end of file +
                                \ No newline at end of file diff --git a/chord-diagram.html b/chord-diagram.html index 8bf5df25..972d38e9 100644 --- a/chord-diagram.html +++ b/chord-diagram.html @@ -1,4 +1,4 @@ -How to build a chord diagram with React and D3.

                                Chord diagram

                                Dataviz logo representing a Chord chart.

                                A chord diagram represents flows between several entities called nodes. Each node is represented by a fragment on the outer part of the circular layout. Then, arcs are drawn between each entities. The size of the arc is proportional to the importance of the flow..

                                Building a chord diagram with React and D3.js relies on the d3-chord module that computes the node and arc positions for us. React can then be used to draw everything in SVG. This page is a step by step tutorial with code sandboxes. It will teach you how to build a ChordDiagram component.

                                Useful links

                                The Data

                                The dataset required to build a chord diagram is a square matrix. It has a dimension of n x n where n is the number of nodes.

                                In javascript, this matrix is represented as an array of n array. Each individual array also has n items. The matrix of flow has a direction: the second item of the third row gives the flow from element 2 to element 3.

                                Usually an additional array is provided, giving the name of each node.


                                Here is a minimal example of the data structure:

                                // matrix of flow
                                +How to build a chord diagram with React and D3.

                                Chord diagram

                                Dataviz logo representing a Chord chart.

                                A chord diagram represents flows between several entities called nodes. Each node is represented by a fragment on the outer part of the circular layout. Then, arcs are drawn between each entities. The size of the arc is proportional to the importance of the flow..

                                Building a chord diagram with React and D3.js relies on the d3-chord module that computes the node and arc positions for us. React can then be used to draw everything in SVG. This page is a step by step tutorial with code sandboxes. It will teach you how to build a ChordDiagram component.

                                Useful links

                                The Data

                                The dataset required to build a chord diagram is a square matrix. It has a dimension of n x n where n is the number of nodes.

                                In javascript, this matrix is represented as an array of n array. Each individual array also has n items. The matrix of flow has a direction: the second item of the third row gives the flow from element 2 to element 3.

                                Usually an additional array is provided, giving the name of each node.


                                Here is a minimal example of the data structure:

                                // matrix of flow
                                 const data = [
                                   [11975,  0, 8916, 2868],
                                   [ 1951, 10048, 2060, 6171],
                                @@ -79,4 +79,4 @@
                                 }

                                I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                Chord Diagram inspiration

                                If you're looking for inspiration to create your next Chord Diagram, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Chord Diagram looks good!

                                visit

                                First chord diagram

                                I suggest 2 improvements to get a descent chord diagram:

                                → Colors

                                Pretty straightforward to implement. You just need to create an array of colors. Then, for each item to draw the index is always available. It can be used to retrieve the color in the color array.

                                → Labels

                                A new prop needs to be passed to the component with a list of names for the nodes. I suggest to position labels as for a donut chart but many other possibilities are available.

                                Connections between nodes are drawn thanks to the ribbon() function of d3.js.

                                ToDoAdd section on hover effect
                                ToDoTalk about chordDirected() and chordTranspose()

                                Contact

                                👋 Hey, I'm Yan and I'm currently working on this project!

                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                  -
                                  \ No newline at end of file +
                                  \ No newline at end of file diff --git a/choropleth-map.html b/choropleth-map.html index e4b04930..c90accc3 100644 --- a/choropleth-map.html +++ b/choropleth-map.html @@ -1,4 +1,4 @@ -Building Choropleth Maps with React and D3.js: A Step-by-Step Tutorial

                                  Choropleth Map

                                  Dataviz logo representing a Choropleth chart.

                                  A choropleth map displays divided geographical areas or regions that are coloured in relation to a numeric variable. It enables the study of how a variable evolves across a geographical area.

                                  Once you understood how to draw a map background from a geoJson file, it is just a matter of coloring each region with the appropriate color. On top of this, it is advised to add a color legend and some interactivity (hover effect and tooltip).

                                  This webpage is a tutorial coming with explanation and code sandboxes. It explains how to build interactive choropleth map with React and D3.js.

                                  Useful links

                                  The Data

                                  Two pieces of information are required to build a choropleth map:

                                  → Geographic information

                                  The first thing you need to build a choropleth map is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                                  Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                                  {
                                  +Building Choropleth Maps with React and D3.js: A Step-by-Step Tutorial

                                  Choropleth Map

                                  Dataviz logo representing a Choropleth chart.

                                  A choropleth map displays divided geographical areas or regions that are coloured in relation to a numeric variable. It enables the study of how a variable evolves across a geographical area.

                                  Once you understood how to draw a map background from a geoJson file, it is just a matter of coloring each region with the appropriate color. On top of this, it is advised to add a color legend and some interactivity (hover effect and tooltip).

                                  This webpage is a tutorial coming with explanation and code sandboxes. It explains how to build interactive choropleth map with React and D3.js.

                                  Useful links

                                  The Data

                                  Two pieces of information are required to build a choropleth map:

                                  → Geographic information

                                  The first thing you need to build a choropleth map is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                                  Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                                  {
                                     "type": "FeatureCollection",
                                     "features": [
                                       {
                                  @@ -88,4 +88,4 @@
                                   }, [width, height, colorScale]);

                                  Then you probably want to add some ticks on top of the color graduation to make it insightful.

                                  Fortunately, the d3 linearScale comes with a handy tick() function. Basically, calling xScale.ticks(4) will create an array with approximately 4 items, each providing everything you need to draw a smartly located tick.

                                  Color Legend is a big topic. There is much more to say about it and I'll post a complete blog post on the topic soon. Subscribe to the gallery if interested!

                                  ToDoHover effect section
                                  ToDoTalk more about color scale. Hover effect linked with color scale
                                  ToDoCanvas version. Add tooltip.

                                  Contact

                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                    -
                                    \ No newline at end of file +
                                    \ No newline at end of file diff --git a/circular-barplot.html b/circular-barplot.html index a7ea3d36..687e3ecb 100644 --- a/circular-barplot.html +++ b/circular-barplot.html @@ -1,4 +1,4 @@ -Circular Barplot with React

                                    Circular Barplot

                                    Dataviz logo representing a CircularBarplot chart.

                                    A circular barplot is a variation of a barplot where bars are displayed around a circle using polar coordinates. It is a less accurate representation of the data, but provides a strong eye-catching effect.

                                    This page describes how to deal with radial coordinates with d3.js and react to build a circular barplot. It's a step by step tutorial with several interactive sandboxes.

                                    Useful links

                                    The Data

                                    The dataset required to build a circular barplot is usually an array where each item is an object providing the name and the value of the group.


                                    Here is a minimal example

                                    const data = [
                                    +Circular Barplot with React

                                    Circular Barplot

                                    Dataviz logo representing a CircularBarplot chart.

                                    A circular barplot is a variation of a barplot where bars are displayed around a circle using polar coordinates. It is a less accurate representation of the data, but provides a strong eye-catching effect.

                                    This page describes how to deal with radial coordinates with d3.js and react to build a circular barplot. It's a step by step tutorial with several interactive sandboxes.

                                    Useful links

                                    The Data

                                    The dataset required to build a circular barplot is usually an array where each item is an object providing the name and the value of the group.


                                    Here is a minimal example

                                    const data = [
                                       {name:"Mark", value: 90},
                                       {name:"Robert", value: 12},
                                       {name:"Emily", value: 34},
                                    @@ -41,7 +41,7 @@
                                         startAngle: xScale(group.name),
                                         endAngle: xScale(group.name) + xScale.bandwidth(),
                                       });
                                    -})

                                    → Rendering

                                    Not much to add. Just include the paths in a svg element. Remember that 0,0 is the center of the chart instead of being the top-left corner. So we need to apply a translate at some point.

                                    Most basic circular barplot built with d3.js and react, using radial coordinates and path instead of rect.

                                    That's a good start but it looks pretty much like a snail so far. Let's make it a real chart with labels and values.

                                    Labels

                                    It is necessary to add a text element to show the name of each bar.

                                    We need those labels to be readable (like not written upside down). So a bit of logic is necessary to determine wether or not a label must be flipped, and how to position it properly.

                                    To do so it is necessary to switch from radians (use for the xScale) to degrees (used for the transform property).

                                    Please check the code below for full explanation.

                                    RemiJeanNinaNicolasLucasMarkLeaneMelanieMarionEmilyMelTiboBalkisGabrielSophieRobertPaul

                                    Add some labels to each bar of the circular barchart to make it insightful

                                    Circular Barplot inspiration

                                    If you're looking for inspiration to create your next Circular Barplot, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                    dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Circular Barplot looks good!

                                    visit

                                    Stacking

                                    Stacking is a process where a chart is broken up across more than one categoric variables which make up the whole.

                                    d3 comes with some handy functions for stacking. The process is extensively described in this stacked barplot tutorial. There is nothing really different to make it circular and here is a working sandbox to discover the code.

                                    AlexandraMeganAlexisVanessaHaleyVictoriaKaitlynAbigailSophiaHannahEmmaJasmineNatalieSaraAndreaCarolineMorganJuliaAlyssaJacquelineTaylorBrookeEmilyMakaylaAmandaJennaGraceBrittanyShelbyKimberlyAshleyFaithMaryChloeMackenzieMadelineDestinyGabrielleLaurenCourtneyBaileyKatelynAnnaDanielleJessicaRebeccaOliviaJenniferMichelleKaylaPaigeSamanthaIsabellaSarahRachelHaileyAllisonNicoleKatherineErinStephanieSavannahAmberMariaMadisonSydneyJordanBriannaElizabethSierra

                                    Add some labels to each bar of the circular barchart to make it insightful



                                    Contact

                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                    +})

                                    → Rendering

                                    Not much to add. Just include the paths in a svg element. Remember that 0,0 is the center of the chart instead of being the top-left corner. So we need to apply a translate at some point.

                                    Most basic circular barplot built with d3.js and react, using radial coordinates and path instead of rect.

                                    That's a good start but it looks pretty much like a snail so far. Let's make it a real chart with labels and values.

                                    Labels

                                    It is necessary to add a text element to show the name of each bar.

                                    We need those labels to be readable (like not written upside down). So a bit of logic is necessary to determine wether or not a label must be flipped, and how to position it properly.

                                    To do so it is necessary to switch from radians (use for the xScale) to degrees (used for the transform property).

                                    Please check the code below for full explanation.

                                    RemiJeanNinaNicolasLucasMarkLeaneMelanieMarionEmilyMelTiboBalkisGabrielSophieRobertPaul

                                    Add some labels to each bar of the circular barchart to make it insightful

                                    Circular Barplot inspiration

                                    If you're looking for inspiration to create your next Circular Barplot, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                    dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Circular Barplot looks good!

                                    visit

                                    Stacking

                                    Stacking is a process where a chart is broken up across more than one categoric variables which make up the whole.

                                    d3 comes with some handy functions for stacking. The process is extensively described in this stacked barplot tutorial. There is nothing really different to make it circular and here is a working sandbox to discover the code.

                                    OliviaCourtneyJordanChloeMichelleSaraMarySydneyKaylaCarolineTaylorSamanthaJennaAlyssaAlexisEmmaAnnaHaleyFaithMadelineKatherineAmberAbigailSierraAllisonBriannaBaileyJenniferKatelynSavannahBrittanyShelbyErinRebeccaMackenzieNatalieJacquelinePaigeHannahVanessaAmandaLaurenSarahAlexandraMakaylaRachelDestinyMorganJuliaKimberlyIsabellaSophiaNicoleMadisonBrookeAshleyElizabethVictoriaGabrielleGraceMariaHaileyEmilyJasmineMeganKaitlynJessicaAndreaStephanieDanielle

                                    Add some labels to each bar of the circular barchart to make it insightful



                                    Contact

                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                      -
                                      \ No newline at end of file +
                                      \ No newline at end of file diff --git a/circular-packing.html b/circular-packing.html index feacbd5a..4aebd086 100644 --- a/circular-packing.html +++ b/circular-packing.html @@ -1,4 +1,4 @@ -Circular Packing chart with React

                                      Circular Packing

                                      Dataviz logo representing a CircularPacking chart.

                                      A circular packing chart displays a hierarchical dataset as a set of nested circles, each circle representing a node of the data structure. Size is usually proportional to a numeric variable.

                                      This page is a tutorial teaching how to create a circle pack chart with d3.js and React. It starts with a very basic version, adds some levels of nesting and finishes with usual customization like animating the transition between datasets.

                                      Useful links

                                      The Data

                                      The dataset describes a hierarchy using a recursive structure. It is similar to a dendrogram or to a treemap.

                                      Each item in this structure is called a node, the lowest nodes of the hierarchy being called leaves. The dataset is an object that has at least 3 properties: name, value and children. Children is an array of nodes that have this structure too.


                                      Here is a minimal example of the data structure:

                                      const data = {
                                      +Circular Packing chart with React

                                      Circular Packing

                                      Dataviz logo representing a CircularPacking chart.

                                      A circular packing chart displays a hierarchical dataset as a set of nested circles, each circle representing a node of the data structure. Size is usually proportional to a numeric variable.

                                      This page is a tutorial teaching how to create a circle pack chart with d3.js and React. It starts with a very basic version, adds some levels of nesting and finishes with usual customization like animating the transition between datasets.

                                      Useful links

                                      The Data

                                      The dataset describes a hierarchy using a recursive structure. It is similar to a dendrogram or to a treemap.

                                      Each item in this structure is called a node, the lowest nodes of the hierarchy being called leaves. The dataset is an object that has at least 3 properties: name, value and children. Children is an array of nodes that have this structure too.


                                      Here is a minimal example of the data structure:

                                      const data = {
                                         type: 'node',
                                         name: "boss",
                                         value: 2300,
                                      @@ -55,4 +55,4 @@
                                       }

                                      This component uses the useSpring hook of react spring to interpolate the cx, cy and r properties. Those values are passed to a special svg element (animated.circle) that does the animation.

                                      Animating the transition between 2 similar dataset with react and d3.js (for rendering) and react spring (for animation).

                                      Animation in dataviz using React is a big topic. It's impossible to go in depth here! I will publish a dedicated blog post on the topic soon. Please subscribe to the newsletter if you want to be notified.

                                      Subscribe



                                      ToDoZoom on next level of hierarchy
                                      ToDoWrite label along circle with curve
                                      ToDoBetter dataset transition where circle keep position

                                      Variations

                                      Once you've understood how to build a basic circular packing with d3 and react, it opens an infinite world of customization. Here are a few examples using the same concepts.

                                      Click on the overview below to get details and code.


                                      Picture of a circle packing chart made using the d3-force plugin

                                      Circle Pack with d3-force

                                      Another approach to build a circle packing chart using physical forces to compute node positions.



                                      Contact

                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                        -
                                        \ No newline at end of file +
                                        \ No newline at end of file diff --git a/connected-scatter-plot.html b/connected-scatter-plot.html index e4db304c..55c137b5 100644 --- a/connected-scatter-plot.html +++ b/connected-scatter-plot.html @@ -1,4 +1,4 @@ -Connected scatterplot with React and D3.js

                                        Connected Scatterplot

                                        Dataviz logo representing a ScatterConnected chart.

                                        A connected scatterplot displays the evolution of a numeric variable. Data points are represented by a dot and connected with straight line segments. A variation of the connected scatterplot allows to study the evolution of 2 numeric variables together.

                                        This page explains how to build a connected scatterplot using react andd3.js. It is highly connected with the line chart section of the gallery but provides further information concerning connected scatterplot specific features.

                                        Useful links

                                        The Data

                                        The dataset required to build a connected scatterplot is the same as for a line chart. It is usually an array where each item is an object providing the x and the y values of the data point.


                                        Here is a minimal example:

                                        const data = [
                                        +Connected scatterplot with React and D3.js

                                        Connected Scatterplot

                                        Dataviz logo representing a ScatterConnected chart.

                                        A connected scatterplot displays the evolution of a numeric variable. Data points are represented by a dot and connected with straight line segments. A variation of the connected scatterplot allows to study the evolution of 2 numeric variables together.

                                        This page explains how to build a connected scatterplot using react andd3.js. It is highly connected with the line chart section of the gallery but provides further information concerning connected scatterplot specific features.

                                        Useful links

                                        The Data

                                        The dataset required to build a connected scatterplot is the same as for a line chart. It is usually an array where each item is an object providing the x and the y values of the data point.


                                        Here is a minimal example:

                                        const data = [
                                           {x:1, y: 90},
                                           {x: 2, y: 12},
                                           {x: 3, y: 34},
                                        @@ -54,4 +54,4 @@
                                         }

                                        I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                        ToDoadd links to line chart examples
                                        ToDoreproduce the connected scatter from the state of JS survey

                                        Connected Scatter inspiration

                                        If you're looking for inspiration to create your next Connected Scatter, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                        dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Connected Scatter looks good!

                                        visit

                                        Contact

                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                          -
                                          \ No newline at end of file +
                                          \ No newline at end of file diff --git a/connection-map.html b/connection-map.html index 3379a6c1..b2001f06 100644 --- a/connection-map.html +++ b/connection-map.html @@ -1,4 +1,4 @@ -How to build a connection map component with React and D3.

                                          Connection Map

                                          Dataviz logo representing a ConnectedMap chart.

                                          A connection map is a map where links between geographical positions are represented using lines or arcs. Most of the time, great circles are used.

                                          This page explains how to build connection maps for the web using d3.js and react. Several tools can be used to display the background map as shown in the dedicated section. The path used to show the connection can then be computed thanks to the geoPath() function of d3.

                                          Useful links

                                          The Data

                                          Two pieces of information are required to build a connection map:

                                          → Geographic information

                                          The first thing you need is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                                          Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                                          {
                                          +How to build a connection map component with React and D3.

                                          Connection Map

                                          Dataviz logo representing a ConnectedMap chart.

                                          A connection map is a map where links between geographical positions are represented using lines or arcs. Most of the time, great circles are used.

                                          This page explains how to build connection maps for the web using d3.js and react. Several tools can be used to display the background map as shown in the dedicated section. The path used to show the connection can then be computed thanks to the geoPath() function of d3.

                                          Useful links

                                          The Data

                                          Two pieces of information are required to build a connection map:

                                          → Geographic information

                                          The first thing you need is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                                          Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                                          {
                                             "type": "FeatureCollection",
                                             "features": [
                                               {
                                          @@ -100,4 +100,4 @@
                                           }

                                          I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                          Connection inspiration

                                          If you're looking for inspiration to create your next Connection, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                          dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Connection looks good!

                                          visit
                                          ToDodraw with Canvas
                                          ToDoapplication to a real dataset
                                          ToDohover effect: hover over a city to highlight its connections

                                          Contact

                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                            -
                                            \ No newline at end of file +
                                            \ No newline at end of file diff --git a/correlogram.html b/correlogram.html index 40115836..ab52888a 100644 --- a/correlogram.html +++ b/correlogram.html @@ -1,4 +1,4 @@ -Correlogram with React

                                            Correlogram

                                            Dataviz logo representing a Correlogram chart.

                                            In this blog post, we will be exploring how to build a correlogram with React and D3.js. A correlogram is a graphical representation of the correlation matrix for a given dataset. It is a useful tool for visualizing the relationships between different variables in a dataset, and can help identify potential correlations that may not be immediately obvious.

                                            Building a correlogram with React and D3.js allows us to create a highly interactive and customizable visualization. We will be able to use React's powerful component-based approach to build our visualization, while leveraging the flexibility and power of D3.js to create a dynamic and engaging visual representation of our data.

                                            Useful links

                                            Correlogram = scatter plot + histogram

                                            A correlogram uses histograms to show the distribution of each numeric variable on the diagonal of the matrix. It uses scatter plots to show the relationship of each pair of variable on every other cells.

                                            As a result, it is required to understand how to build a histogram and a scatter plot component using React and d3.js! In this post, we will just show how to leverage those reusable components to build a correlogram.

                                            Picture of a simple histogram made with react and d3.js

                                            Histogram

                                            Learn how to build a histogram with react and d3.js

                                            Picture of a simple scatter plot made with react and d3.js

                                            Scatter plot

                                            Learn how to build a scatter plot with react and d3.js

                                            Picture of a simple bubble plot with a legend made with react and d3.js

                                            Bubble plot

                                            Learn how to build a bubble plot with react and d3.js

                                            The Data

                                            The dataset provides several numeric values for a set of data points. It can also add some categorical variables that can be added to customize the marker colors.

                                            The suggested data structure is an array of object, where each object is a data point. It can have as many numeric properties as needed.


                                            Here is a minimal example of the data structure:

                                            const data = [
                                            +Correlogram with React

                                            Correlogram

                                            Dataviz logo representing a Correlogram chart.

                                            In this blog post, we will be exploring how to build a correlogram with React and D3.js. A correlogram is a graphical representation of the correlation matrix for a given dataset. It is a useful tool for visualizing the relationships between different variables in a dataset, and can help identify potential correlations that may not be immediately obvious.

                                            Building a correlogram with React and D3.js allows us to create a highly interactive and customizable visualization. We will be able to use React's powerful component-based approach to build our visualization, while leveraging the flexibility and power of D3.js to create a dynamic and engaging visual representation of our data.

                                            Useful links

                                            Correlogram = scatter plot + histogram

                                            A correlogram uses histograms to show the distribution of each numeric variable on the diagonal of the matrix. It uses scatter plots to show the relationship of each pair of variable on every other cells.

                                            As a result, it is required to understand how to build a histogram and a scatter plot component using React and d3.js! In this post, we will just show how to leverage those reusable components to build a correlogram.

                                            Picture of a simple histogram made with react and d3.js

                                            Histogram

                                            Learn how to build a histogram with react and d3.js

                                            Picture of a simple scatter plot made with react and d3.js

                                            Scatter plot

                                            Learn how to build a scatter plot with react and d3.js

                                            Picture of a simple bubble plot with a legend made with react and d3.js

                                            Bubble plot

                                            Learn how to build a bubble plot with react and d3.js

                                            The Data

                                            The dataset provides several numeric values for a set of data points. It can also add some categorical variables that can be added to customize the marker colors.

                                            The suggested data structure is an array of object, where each object is a data point. It can have as many numeric properties as needed.


                                            Here is a minimal example of the data structure:

                                            const data = [
                                               {var1: 5.1, var2: 3.5, ..., group: 'setosa'},
                                               {var1: 4.9, var2: 3.0, ..., group: 'setosa'},
                                               ...
                                            @@ -52,4 +52,4 @@
                                             );

                                            And voilà, a first decent correlogram for your data analysis pipeline 😊. It's not perfect yet. You probably want to give more love to axes and labels, add hover effect and tooltips. But hopefully that's a good template to get started.

                                            44.555.566.577.58
                                            44.555.566.577.58
                                            44.555.566.577.58
                                            22.533.54var2
                                            22.533.54
                                            22.533.54
                                            1234567var3
                                            1234567
                                            1234567
                                            00.511.522.5var4var1
                                            00.511.522.5var2
                                            00.511.522.5var3

                                            A correlogram built with react and d3.js. It shows the relationship between the 4 numeric variables of the famous iris dataset.

                                            Note: You can compare this code with the pure d3 alternative. I find it much more readable.




                                            Contact

                                            👋 Hey, I'm Yan and I'm currently working on this project!

                                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                              -
                                              \ No newline at end of file +
                                              \ No newline at end of file diff --git a/course/axis/axis-variations.html b/course/axis/axis-variations.html index d5480c5b..dd925762 100644 --- a/course/axis/axis-variations.html +++ b/course/axis/axis-variations.html @@ -1 +1 @@ -Axis component variations

                                              Axis component variations


                                              In the previous lesson we made a reusable component for the bottom axis.

                                              This lesson suggests many variation: left axis, adding grids, dealing with titles...

                                              Wip
                                              4 minutes read

                                              Gallery

                                              Show a gallery with the various axis styles available in the gallery.

                                              I need a first series of button: linear / ordinal / bandwidth / time / any = type of scale

                                              Then a second series: left / bottom

                                              Then it shows all the example in the gallery using this setup with a set of images

                                              When user clicks on an image, it opens the sandbox so user has the code ready to copy paste.

                                              \ No newline at end of file +Axis component variations

                                              Axis component variations


                                              In the previous lesson we made a reusable component for the bottom axis.

                                              This lesson suggests many variation: left axis, adding grids, dealing with titles...

                                              Wip
                                              4 minutes read

                                              Gallery

                                              Show a gallery with the various axis styles available in the gallery.

                                              I need a first series of button: linear / ordinal / bandwidth / time / any = type of scale

                                              Then a second series: left / bottom

                                              Then it shows all the example in the gallery using this setup with a set of images

                                              When user clicks on an image, it opens the sandbox so user has the code ready to copy paste.

                                              \ No newline at end of file diff --git a/course/axis/axis-with-d3.html b/course/axis/axis-with-d3.html index 7594c057..55f90444 100644 --- a/course/axis/axis-with-d3.html +++ b/course/axis/axis-with-d3.html @@ -1,4 +1,4 @@ -Alternative: use d3 helper

                                              Alternative: use d3 helper


                                              d3 offers some very smart functions when it comes to building axes.

                                              I personnaly prefer to avoid using d3 rendering functions like this. I have more control when using react for rendering. But if you are familiar with d3, it can be very handy to use those functions, and here is how to wrap them in a usEffect

                                              Wip
                                              4 minutes read

                                              The d3 axis module

                                              Explain what it is with links and examples

                                              How to use in a react app.

                                              If you're a d3.js afficionados and want to deal with as little react as possible, you can still use the good old axisBottom() and axisLeft() methods of d3 and wrap them in auseEffect() hook.

                                              Here is an example below:

                                              This axis is rendered using d3. The d3 necessary functions are called from a useEffect

                                              Explanation

                                              Everything starts with a ref

                                              const axesRef = useRef(null);

                                              This ref is used to target a specific svg element where the axis will be drawn:

                                              <g
                                              +Alternative: use d3 helper

                                              Alternative: use d3 helper


                                              d3 offers some very smart functions when it comes to building axes.

                                              I personnaly prefer to avoid using d3 rendering functions like this. I have more control when using react for rendering. But if you are familiar with d3, it can be very handy to use those functions, and here is how to wrap them in a usEffect

                                              Wip
                                              4 minutes read

                                              The d3 axis module

                                              Explain what it is with links and examples

                                              How to use in a react app.

                                              If you're a d3.js afficionados and want to deal with as little react as possible, you can still use the good old axisBottom() and axisLeft() methods of d3 and wrap them in auseEffect() hook.

                                              Here is an example below:

                                              This axis is rendered using d3. The d3 necessary functions are called from a useEffect

                                              Explanation

                                              Everything starts with a ref

                                              const axesRef = useRef(null);

                                              This ref is used to target a specific svg element where the axis will be drawn:

                                              <g
                                                 width={boundsWidth}
                                                 height={boundsHeight}
                                                 ref={axesRef}
                                              @@ -14,4 +14,4 @@
                                               
                                                 const yAxisGenerator = d3.axisLeft(yScale);
                                                 svgElement.append("g").call(yAxisGenerator);
                                              -}, [xScale, yScale, boundsHeight]);
                                              \ No newline at end of file +}, [xScale, yScale, boundsHeight]);
                                              \ No newline at end of file diff --git a/course/axis/bottom-axis.html b/course/axis/bottom-axis.html index 071478fd..5e93986e 100644 --- a/course/axis/bottom-axis.html +++ b/course/axis/bottom-axis.html @@ -1,4 +1,4 @@ -Build a bottom axis

                                              Build a bottom axis


                                              In the previous lesson we learnt how to manage margins efficiently on our chart.

                                              Now, let's see how we can actually create a component that draws a bottom axis!

                                              Wip
                                              4 minutes read

                                              Re-usable Bottom Axis component

                                              The code snippet below builds a AxisBottom component. It is very much inspired from this blogpost by Amelia Wattenberger. I've just changed a few things, notably passing a scale as input instead of a range and a domain.

                                              The logic mainly relies on the ticks() method of a d3 scale. It takes a target number of ticks as input, find the most appropriate way to build smart ticks based on this target, and returns an array with all the tick positions.

                                              What follows is just some svg drawings based on those tick positions.

                                              const TICK_LENGTH = 6;
                                              +Build a bottom axis

                                              Build a bottom axis


                                              In the previous lesson we learnt how to manage margins efficiently on our chart.

                                              Now, let's see how we can actually create a component that draws a bottom axis!

                                              Wip
                                              4 minutes read

                                              Re-usable Bottom Axis component

                                              The code snippet below builds a AxisBottom component. It is very much inspired from this blogpost by Amelia Wattenberger. I've just changed a few things, notably passing a scale as input instead of a range and a domain.

                                              The logic mainly relies on the ticks() method of a d3 scale. It takes a target number of ticks as input, find the most appropriate way to build smart ticks based on this target, and returns an array with all the tick positions.

                                              What follows is just some svg drawings based on those tick positions.

                                              const TICK_LENGTH = 6;
                                               
                                               export const AxisBottom = ({ xScale, pixelsPerTick }) => {
                                                 const range = xScale.range();
                                              @@ -40,4 +40,4 @@
                                                     ))}
                                                   </>
                                                 );
                                              -};

                                              Using the component

                                              Once you have the bottom and left axis component described above you just need to call them properly. You need to compute the bounds area by substracting the margins to the total svg area.

                                              Don't forget to add an additional translation to the bottom axis to render it... at the bottom.

                                              0246810

                                              This axis is rendered without using d3.js to render.

                                              \ No newline at end of file +};

                                              Using the component

                                              Once you have the bottom and left axis component described above you just need to call them properly. You need to compute the bounds area by substracting the margins to the total svg area.

                                              Don't forget to add an additional translation to the bottom axis to render it... at the bottom.

                                              0246810

                                              This axis is rendered without using d3.js to render.

                                              \ No newline at end of file diff --git a/course/axis/introduction.html b/course/axis/introduction.html index 8effbcc7..4da0f47a 100644 --- a/course/axis/introduction.html +++ b/course/axis/introduction.html @@ -1 +1 @@ -Introduction

                                              Introduction


                                              In the previous module on scales, we learned how to position SVG shapes precisely, adding meaning to the growing graph we're constructing.

                                              Now, it's time to provide context to these shape positions. For most chart types, this is achieved using axes. Axes can be complex elements, so let's explore how to create them effectively.

                                              Wip
                                              4 minutes read

                                              This module explains how to build axes like the one you can see at the bottom and on the left of this chart area.

                                              Terminology

                                              To effectively understand and work with axes in data visualization, it's essential to familiarize yourself with the following key terms:

                                              Here I need a figure that helps understanding the following terms:

                                              • Axis
                                              • Tick
                                              • Tick Label
                                              • Grid Line
                                              • Axis Label
                                              • Title
                                              • Scale
                                              • Domain
                                              • Range
                                              • Orientation
                                              • Axis Line
                                              • Baseline

                                              Margins

                                              We need some space between the chart area and the svg area. Let's see how to build this.

                                              \ No newline at end of file +Introduction

                                              Introduction


                                              In the previous module on scales, we learned how to position SVG shapes precisely, adding meaning to the growing graph we're constructing.

                                              Now, it's time to provide context to these shape positions. For most chart types, this is achieved using axes. Axes can be complex elements, so let's explore how to create them effectively.

                                              Wip
                                              4 minutes read

                                              This module explains how to build axes like the one you can see at the bottom and on the left of this chart area.

                                              Terminology

                                              To effectively understand and work with axes in data visualization, it's essential to familiarize yourself with the following key terms:

                                              Here I need a figure that helps understanding the following terms:

                                              • Axis
                                              • Tick
                                              • Tick Label
                                              • Grid Line
                                              • Axis Label
                                              • Title
                                              • Scale
                                              • Domain
                                              • Range
                                              • Orientation
                                              • Axis Line
                                              • Baseline

                                              Margins

                                              We need some space between the chart area and the svg area. Let's see how to build this.

                                              \ No newline at end of file diff --git a/course/axis/margin-and-translation.html b/course/axis/margin-and-translation.html index ad34445c..9610c81f 100644 --- a/course/axis/margin-and-translation.html +++ b/course/axis/margin-and-translation.html @@ -1,4 +1,4 @@ -Margin and translation

                                              Margin and translation


                                              Most of the chart types use a bottom and a left axis.

                                              In that case, there is a need to leave some space for the tick label and axis titles. Let's see how to implement this.

                                              Wip
                                              4 minutes read

                                              Chart area and Bounds area

                                              The bottom and left axes are not displays at the border of the main chart component. Some margins are computed by the viz component. It is important to understand that a chart is composed by:

                                              • the global chart area, often specified by the width and height properties of the chart components.
                                              • the "bounds" area, i.e. the area located inside the x and y axis. It is calculated by substracting the margins

                                              Implementation

                                              Let's start by defining the margins we want to use, as a const. This can be defined at the top of your file, out of the viz component, or even in a separate file containing all your constants.

                                              const MARGIN = {
                                              +Margin and translation

                                              Margin and translation


                                              Most of the chart types use a bottom and a left axis.

                                              In that case, there is a need to leave some space for the tick label and axis titles. Let's see how to implement this.

                                              Wip
                                              4 minutes read

                                              Chart area and Bounds area

                                              The bottom and left axes are not displays at the border of the main chart component. Some margins are computed by the viz component. It is important to understand that a chart is composed by:

                                              • the global chart area, often specified by the width and height properties of the chart components.
                                              • the "bounds" area, i.e. the area located inside the x and y axis. It is calculated by substracting the margins

                                              Implementation

                                              Let's start by defining the margins we want to use, as a const. This can be defined at the top of your file, out of the viz component, or even in a separate file containing all your constants.

                                              const MARGIN = {
                                                 top: 10,
                                                 right: 30,
                                                 bottom: 50,
                                              @@ -12,4 +12,4 @@
                                                 >
                                                   // ... all shapes go here
                                                 </g>
                                              -</svg>

                                              Explain the translation

                                              Explain that for the bottom axis, an additional translation is required to draw it at the bottom

                                              Draw the axis

                                              Now that we have some space for it, it is time to actually draw the axis. Let's build a reusable component.

                                              \ No newline at end of file +</svg>

                                              Explain the translation

                                              Explain that for the bottom axis, an additional translation is required to draw it at the bottom

                                              Draw the axis

                                              Now that we have some space for it, it is time to actually draw the axis. Let's build a reusable component.

                                              \ No newline at end of file diff --git a/course/hover-effect/css-descendant-selector.html b/course/hover-effect/css-descendant-selector.html index 6f18b307..d9ca5ece 100644 --- a/course/hover-effect/css-descendant-selector.html +++ b/course/hover-effect/css-descendant-selector.html @@ -1,4 +1,4 @@ -Strategy 2: CSS descendant selector

                                              Strategy 2: CSS descendant selector


                                              In the previous lesson, we learned how to modify a hovered graph item using the :hover CSS pseudo-class.

                                              However, this approach has design limitations. To achieve a more effective highlighting effect, it's better to simultaneously dim the other graph items.

                                              This can be accomplished using CSS alone, with the help of the CSS descendant selector.

                                              Wip
                                              4 minutes read

                                              What is a css descendant selector?

                                              A descendant selector allows to target elements that are children of another element.

                                              Here’s an example:

                                              .rectangle {
                                              +Strategy 2: CSS descendant selector

                                              Strategy 2: CSS descendant selector


                                              In the previous lesson, we learned how to modify a hovered graph item using the :hover CSS pseudo-class.

                                              However, this approach has design limitations. To achieve a more effective highlighting effect, it's better to simultaneously dim the other graph items.

                                              This can be accomplished using CSS alone, with the help of the CSS descendant selector.

                                              Wip
                                              4 minutes read

                                              What is a css descendant selector?

                                              A descendant selector allows to target elements that are children of another element.

                                              Here’s an example:

                                              .rectangle {
                                                 opacity: 1;
                                               }
                                               .container:hover .rectangle {
                                              @@ -6,4 +6,4 @@
                                               }
                                               .container .rectangle:hover {
                                                 opacity: 1;
                                              -}

                                              We assign a class called container to the SVG container and a class called rectangle to each rectangle in the chart.

                                              Then we set the default rectangle opacity to 1. Using the descendant selector, you can reduce the opacity of all rectangles to 0.1 when the container is hovered.

                                              Then, use a hover selector to set the opacity of the hovered rectangle back to 1.

                                              Application: treemap

                                              Mark90Robert12Emily34Marion53Nicolas98Malki22Djé12Mélanie45Einstein76

                                              Strategy 2: use CSS descendant combinator to dim all markers except the one that is hovered.

                                              Pros & Cons

                                              Pros

                                              • Easy to implement
                                              • Improves design by making hover effects more noticeable
                                              • Excellent performance (no JS computation, minimal redrawing)

                                              Cons

                                              • Fades all circles if the mouse enters the chart area without hovering over a specific circle. This technique works for chart where the whole svg area is covered by markers, like a treemap.
                                              • Cannot highlight circles that are obscured by other elements. (Potentially fixed using z-index).

                                              More examples

                                              The examples below all use this strategy to implement their hover effect.

                                              Picture of a lollipop chart with hover effect

                                              Lollipop with hover effect

                                              Learn how to add a hover effect to your lollipop chart

                                              GIF of a streamgraph react component that supports hover effect

                                              Streamgraph with hover effect

                                              How to add a hover effect on a streamgraph to highlight a group

                                              \ No newline at end of file +}

                                              We assign a class called container to the SVG container and a class called rectangle to each rectangle in the chart.

                                              Then we set the default rectangle opacity to 1. Using the descendant selector, you can reduce the opacity of all rectangles to 0.1 when the container is hovered.

                                              Then, use a hover selector to set the opacity of the hovered rectangle back to 1.

                                              Application: treemap

                                              Mark90Robert12Emily34Marion53Nicolas98Malki22Djé12Mélanie45Einstein76

                                              Strategy 2: use CSS descendant combinator to dim all markers except the one that is hovered.

                                              Pros & Cons

                                              Pros

                                              • Easy to implement
                                              • Improves design by making hover effects more noticeable
                                              • Excellent performance (no JS computation, minimal redrawing)

                                              Cons

                                              • Fades all circles if the mouse enters the chart area without hovering over a specific circle. This technique works for chart where the whole svg area is covered by markers, like a treemap.
                                              • Cannot highlight circles that are obscured by other elements. (Potentially fixed using z-index).

                                              More examples

                                              The examples below all use this strategy to implement their hover effect.

                                              Picture of a lollipop chart with hover effect

                                              Lollipop with hover effect

                                              Learn how to add a hover effect to your lollipop chart

                                              GIF of a streamgraph react component that supports hover effect

                                              Streamgraph with hover effect

                                              How to add a hover effect on a streamgraph to highlight a group

                                              \ No newline at end of file diff --git a/course/hover-effect/css-pseudo-class.html b/course/hover-effect/css-pseudo-class.html index 36f9063b..c3b5ebe7 100644 --- a/course/hover-effect/css-pseudo-class.html +++ b/course/hover-effect/css-pseudo-class.html @@ -1,4 +1,4 @@ -Strategy 1: CSS pseudo element

                                              Strategy 1: CSS pseudo element


                                              The simplest strategy.

                                              Let's explore how to use a CSS pseudo-class to modify only the graph item that is being hovered over.

                                              Free
                                              4 minutes read

                                              What is a pseudo class

                                              A CSS pseudo-class is a keyword added to a CSS selector that specifies a special state of the selected element(s). You can learn more about pseudo-classes in the MDN doc.

                                              Essentially, this means you can assign a class to each shape in a graph and change its appearance when the user hovers over it.

                                              Here is an example:

                                              .scatterplotCircle {
                                              +Strategy 1: CSS pseudo element

                                              Strategy 1: CSS pseudo element


                                              The simplest strategy.

                                              Let's explore how to use a CSS pseudo-class to modify only the graph item that is being hovered over.

                                              Free
                                              4 minutes read

                                              What is a pseudo class

                                              A CSS pseudo-class is a keyword added to a CSS selector that specifies a special state of the selected element(s). You can learn more about pseudo-classes in the MDN doc.

                                              Essentially, this means you can assign a class to each shape in a graph and change its appearance when the user hovers over it.

                                              Here is an example:

                                              .scatterplotCircle {
                                                 cursor: pointer;
                                                 fill-opacity: .3;
                                                 stroke-width: 2px;
                                              @@ -7,4 +7,4 @@
                                               .scatterplotCircle:hover {
                                                 fill-opacity: 1;
                                                 stroke-width: 1px;
                                              -}

                                              Application on a scatterplot

                                              Consider a scatterplot with multiple SVG circle elements, each assigned a .scatterplotCircle class. In the CSS file, you can set the fill-opacity to 0.3 using this class.

                                              To change the appearance on hover, use the .scatterplotCircle:hover selector to increase the opacity to 1.

                                              3540455055606570758085

                                              Strategy 1: use a pseudo-class to change the appearance of the hovered marker

                                              Pros & Cons

                                              Pros

                                              • Easy to implement
                                              • Excellent performance (no JS computation, minimal redrawing)

                                              Cons

                                              • Poor design: non-hovered circles remain prominent, so the highlight effect is weak
                                              • If the highlight information comes as a prop, another solution is needed

                                              More examples

                                              The examples below all use this strategy to implement their hover effect.

                                              Picture of a heatmap showing the effect of vaccination, built with react and d3

                                              Vaccination heatmap

                                              Reproduction of a famous vaccination heatmap using d3 and react

                                              Picture of a simple treemap

                                              Basic treemap

                                              Most simple treemap, with 1 level of hierarchy only

                                              \ No newline at end of file +}

                                              Application on a scatterplot

                                              Consider a scatterplot with multiple SVG circle elements, each assigned a .scatterplotCircle class. In the CSS file, you can set the fill-opacity to 0.3 using this class.

                                              To change the appearance on hover, use the .scatterplotCircle:hover selector to increase the opacity to 1.

                                              3540455055606570758085

                                              Strategy 1: use a pseudo-class to change the appearance of the hovered marker

                                              Pros & Cons

                                              Pros

                                              • Easy to implement
                                              • Excellent performance (no JS computation, minimal redrawing)

                                              Cons

                                              • Poor design: non-hovered circles remain prominent, so the highlight effect is weak
                                              • If the highlight information comes as a prop, another solution is needed

                                              More examples

                                              The examples below all use this strategy to implement their hover effect.

                                              Picture of a heatmap showing the effect of vaccination, built with react and d3

                                              Vaccination heatmap

                                              Reproduction of a famous vaccination heatmap using d3 and react

                                              Picture of a simple treemap

                                              Basic treemap

                                              Most simple treemap, with 1 level of hierarchy only

                                              \ No newline at end of file diff --git a/course/hover-effect/internal-state.html b/course/hover-effect/internal-state.html index 6af713b4..a5de4fc7 100644 --- a/course/hover-effect/internal-state.html +++ b/course/hover-effect/internal-state.html @@ -1,4 +1,4 @@ -Strategy 4: react internal state

                                              Strategy 4: react internal state


                                              In the previous lesson, we learned how to modify a hovered graph item using the :hover CSS pseudo-class.

                                              However, this approach has design limitations. To achieve a more effective highlighting effect, it's better to simultaneously dim the other graph items.

                                              This can be accomplished using CSS alone, with the help of the CSS descendant selector.

                                              Wip
                                              4 minutes read

                                              Internal state & event listener

                                              Add onMouseEnter event listener to all circle

                                              Set an internal state

                                              Trigger a redraw of all circles with conditional state.

                                              As for the tooltip example above, everything starts with an internal state (called hoveredGroup) that stores which circle is hovered hover.

                                              const [hoveredGroup, setHoveredGroup] = useState<string | null>(null);

                                              Now, this state needs to be updated when a user hovers over the circle. setHoveredGroup can be passed as a callback to the onMouseOver attribute of each circle.

                                              On top of this, some specific css classes can be attributed to circles depending on the circle that is hovered hover. In the example above, a class called dimmed is added to circles that must disappear.

                                              To put it in a nutshell, the circles are created as follows:

                                              const allShapes = data.map((d, i) => {
                                              +Strategy 4: react internal state

                                              Strategy 4: react internal state


                                              In the previous lesson, we learned how to modify a hovered graph item using the :hover CSS pseudo-class.

                                              However, this approach has design limitations. To achieve a more effective highlighting effect, it's better to simultaneously dim the other graph items.

                                              This can be accomplished using CSS alone, with the help of the CSS descendant selector.

                                              Wip
                                              4 minutes read

                                              Internal state & event listener

                                              Add onMouseEnter event listener to all circle

                                              Set an internal state

                                              Trigger a redraw of all circles with conditional state.

                                              As for the tooltip example above, everything starts with an internal state (called hoveredGroup) that stores which circle is hovered hover.

                                              const [hoveredGroup, setHoveredGroup] = useState<string | null>(null);

                                              Now, this state needs to be updated when a user hovers over the circle. setHoveredGroup can be passed as a callback to the onMouseOver attribute of each circle.

                                              On top of this, some specific css classes can be attributed to circles depending on the circle that is hovered hover. In the example above, a class called dimmed is added to circles that must disappear.

                                              To put it in a nutshell, the circles are created as follows:

                                              const allShapes = data.map((d, i) => {
                                                 const className = // class if the circle depends on the hover state
                                                   hoveredGroup && d.group !== hoveredGroup
                                                     ? styles.scatterplotCircle + " " + styles.dimmed
                                              @@ -17,4 +17,4 @@
                                                     onMouseLeave={() => setHoveredGroup(null)} // and to set it back to null
                                                   />
                                                 );
                                              -});

                                              Last but not least, some css needs to be added to customize the circle depending on if they are in default, .dimmed or :hover mode.

                                              Note that the filter: saturate(0) is a good way to dim unwanted circles. Also, playing with transition-delay and transition-duration adds to animate the transition is a nice touch you should consider. Check the code below the example to see the full css.

                                              4050607080

                                              TODO.

                                              Pros & Cons

                                              Pros

                                              • Allows to sync the hover effect with other UI updates. The hovered state can be used to update any other react components in the application. Like tooltip or another graph.
                                              • Using javascript to trigger the animation can give more flexibility to customize the hover effect, using react-spring for instance.

                                              Cons

                                              • Performance 🚨. Here we are redrawing all the circles each time a hover effect is hovered. This can be dramatic if you have thousands of circles!

                                              More examples

                                              The examples below all use this strategy to implement their hover effect.

                                              line charts with synchronized cursors

                                              Synchronized cursors

                                              Add a cursor synchronized on all your charts

                                              GIF of a streamgraph with multiple interactive features

                                              Streamgraph application

                                              Streamgraph with a slider to zoom on a time stamp and with interactive inline legends

                                              \ No newline at end of file +});

                                              Last but not least, some css needs to be added to customize the circle depending on if they are in default, .dimmed or :hover mode.

                                              Note that the filter: saturate(0) is a good way to dim unwanted circles. Also, playing with transition-delay and transition-duration adds to animate the transition is a nice touch you should consider. Check the code below the example to see the full css.

                                              4050607080

                                              TODO.

                                              Pros & Cons

                                              Pros

                                              • Allows to sync the hover effect with other UI updates. The hovered state can be used to update any other react components in the application. Like tooltip or another graph.
                                              • Using javascript to trigger the animation can give more flexibility to customize the hover effect, using react-spring for instance.

                                              Cons

                                              • Performance 🚨. Here we are redrawing all the circles each time a hover effect is hovered. This can be dramatic if you have thousands of circles!

                                              More examples

                                              The examples below all use this strategy to implement their hover effect.

                                              line charts with synchronized cursors

                                              Synchronized cursors

                                              Add a cursor synchronized on all your charts

                                              GIF of a streamgraph with multiple interactive features

                                              Streamgraph application

                                              Streamgraph with a slider to zoom on a time stamp and with interactive inline legends

                                              \ No newline at end of file diff --git a/course/hover-effect/introduction.html b/course/hover-effect/introduction.html index a08b68c4..fb837baf 100644 --- a/course/hover-effect/introduction.html +++ b/course/hover-effect/introduction.html @@ -1 +1 @@ -What is it?

                                              What is it?


                                              In the previous modules, you learned how to create a wide variety of static charts. 👏

                                              However, interactivity is essential web applications. Adding hover effects significantly enhances the user experience by highlighting specific series on the chart.

                                              In this module, we'll explore several strategies for implementing hover effects using both CSS and React. Before diving into the code, let's ensure we have a clear understanding of what hover effects are.

                                              Free
                                              3 minutes read

                                              Definition

                                              A hover effect is a visual change that occurs when a user moves their cursor over a specific element on a webpage.

                                              When implementing a hover effect, you should be careful about:

                                              • Design: hover effect is visually appealing and enhances the user experience. It is consistent with the overall design of your application and does not distract or confuse the user.
                                              • Performance: hover effect is fast: no lag or delay. It does not significantly impact the performance of your application, especially when dealing with large datasets or complex viz.

                                              Three Types of Hover Effects

                                              In my opinion, there are three main types of hover effects: those that only modify the hovered graph item, those that modify other graph markers, and those that affect other related elements in the user interface.

                                              Click the button below to see examples of all three types:


                                              405060708001000020000300004000050000

                                              Observe this graph: when you hover over a circle, its style changes slightly!

                                              While this isn't the most dramatic visual effect, it is very easy to implement using a single CSS pseudo-element.

                                              We'll learn how to implement this in the next lesson.

                                              Let's code

                                              Enough theory.

                                              Let's dive into the simplest hover effect you can create: just a few lines of CSS using pseudo-elements.

                                              \ No newline at end of file +What is it?

                                              What is it?


                                              In the previous modules, you learned how to create a wide variety of static charts. 👏

                                              However, interactivity is essential web applications. Adding hover effects significantly enhances the user experience by highlighting specific series on the chart.

                                              In this module, we'll explore several strategies for implementing hover effects using both CSS and React. Before diving into the code, let's ensure we have a clear understanding of what hover effects are.

                                              Free
                                              3 minutes read

                                              Definition

                                              A hover effect is a visual change that occurs when a user moves their cursor over a specific element on a webpage.

                                              When implementing a hover effect, you should be careful about:

                                              • Design: hover effect is visually appealing and enhances the user experience. It is consistent with the overall design of your application and does not distract or confuse the user.
                                              • Performance: hover effect is fast: no lag or delay. It does not significantly impact the performance of your application, especially when dealing with large datasets or complex viz.

                                              Three Types of Hover Effects

                                              In my opinion, there are three main types of hover effects: those that only modify the hovered graph item, those that modify other graph markers, and those that affect other related elements in the user interface.

                                              Click the button below to see examples of all three types:


                                              405060708001000020000300004000050000

                                              Observe this graph: when you hover over a circle, its style changes slightly!

                                              While this isn't the most dramatic visual effect, it is very easy to implement using a single CSS pseudo-element.

                                              We'll learn how to implement this in the next lesson.

                                              Let's code

                                              Enough theory.

                                              Let's dive into the simplest hover effect you can create: just a few lines of CSS using pseudo-elements.

                                              \ No newline at end of file diff --git a/course/hover-effect/link-two-graphs.html b/course/hover-effect/link-two-graphs.html index 118fb0a7..0ff885c7 100644 --- a/course/hover-effect/link-two-graphs.html +++ b/course/hover-effect/link-two-graphs.html @@ -1,4 +1,4 @@ -Hover interaction on a chart with React

                                              Hover interaction on a chart with React


                                              Interactivity is crucial in data visualization, especially for web applications. Adding hover effects enhances user experience by highlighting specific series on the chart.

                                              This post suggests a few strategies to implement hover effects using css and react.

                                              Note: this article does not talk about tooltips that has its dedicated section.

                                              4️⃣ Internal state & event listener

                                              Add onMouseEnter event listener to all circle

                                              Set an internal state

                                              Trigger a redraw of all circles with conditional state.

                                              As for the tooltip example above, everything starts with an internal state (called hoveredGroup) that stores which circle is hovered hover.

                                              const [hoveredGroup, setHoveredGroup] = useState<string | null>(null);

                                              Now, this state needs to be updated when a user hovers over the circle. setHoveredGroup can be passed as a callback to the onMouseOver attribute of each circle.

                                              On top of this, some specific css classes can be attributed to circles depending on the circle that is hovered hover. In the example above, a class called dimmed is added to circles that must disappear.

                                              To put it in a nutshell, the circles are created as follows:

                                              const allShapes = data.map((d, i) => {
                                              +Hover interaction on a chart with React

                                              Hover interaction on a chart with React


                                              Interactivity is crucial in data visualization, especially for web applications. Adding hover effects enhances user experience by highlighting specific series on the chart.

                                              This post suggests a few strategies to implement hover effects using css and react.

                                              Note: this article does not talk about tooltips that has its dedicated section.

                                              4️⃣ Internal state & event listener

                                              Add onMouseEnter event listener to all circle

                                              Set an internal state

                                              Trigger a redraw of all circles with conditional state.

                                              As for the tooltip example above, everything starts with an internal state (called hoveredGroup) that stores which circle is hovered hover.

                                              const [hoveredGroup, setHoveredGroup] = useState<string | null>(null);

                                              Now, this state needs to be updated when a user hovers over the circle. setHoveredGroup can be passed as a callback to the onMouseOver attribute of each circle.

                                              On top of this, some specific css classes can be attributed to circles depending on the circle that is hovered hover. In the example above, a class called dimmed is added to circles that must disappear.

                                              To put it in a nutshell, the circles are created as follows:

                                              const allShapes = data.map((d, i) => {
                                                 const className = // class if the circle depends on the hover state
                                                   hoveredGroup && d.group !== hoveredGroup
                                                     ? styles.scatterplotCircle + " " + styles.dimmed
                                              @@ -20,4 +20,4 @@
                                               });

                                              Last but not least, some css needs to be added to customize the circle depending on if they are in default, .dimmed or :hover mode.

                                              Note that the filter: saturate(0) is a good way to dim unwanted circles. Also, playing with transition-delay and transition-duration adds to animate the transition is a nice touch you should consider. Check the code below the example to see the full css.

                                              4050607080

                                              TODO.

                                              Pros

                                              • Allows to sync the hover effect with other UI updates. The hovered state can be used to update any other react components in the application. Like tooltip or another graph.
                                              • Using javascript to trigger the animation can give more flexibility to customize the hover effect, using react-spring for instance.

                                              Cons

                                              • Performance 🚨. Here we are redrawing all the circles each time a hover effect is hovered. This can be dramatic if you have thousands of circles!
                                              line charts with synchronized cursors

                                              Synchronized cursors

                                              Add a cursor synchronized on all your charts

                                              GIF of a streamgraph with multiple interactive features

                                              Streamgraph application

                                              Streamgraph with a slider to zoom on a time stamp and with interactive inline legends

                                              4️⃣ Canvas

                                              Using the useDimensions hook described above is pretty straight-forward. You first need to create a ref using the react useRef()function:

                                              Use dimming to highlight a specific point





                                              Contact

                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                -
                                                \ No newline at end of file +
                                                \ No newline at end of file diff --git a/course/hover-effect/toggle-class-in-js.html b/course/hover-effect/toggle-class-in-js.html index 03934bec..f1e7ac1b 100644 --- a/course/hover-effect/toggle-class-in-js.html +++ b/course/hover-effect/toggle-class-in-js.html @@ -1,4 +1,4 @@ -Strategy 3: toggle css classes

                                                Strategy 3: toggle css classes


                                                In the previous lesson, we learned how to modify a hovered graph item using the :hover CSS pseudo-class.

                                                However, this approach has design limitations. To achieve a more effective highlighting effect, it's better to simultaneously dim the other graph items.

                                                This can be accomplished using CSS alone, with the help of the CSS descendant selector.

                                                Wip
                                                4 minutes read

                                                Toggle class in JS

                                                Problem above: when mouse enter the chart area, triggers effect even if no marker hovered over.

                                                Solution: CSS compound class selecter (MDN doc)

                                                In CSS, a compound class selector combines multiple class names to target elements that match all of the specified classes.

                                                We can use the same css as the above example, but add the highlight class using javascript:

                                                onMouseEnter={() => {
                                                +Strategy 3: toggle css classes

                                                Strategy 3: toggle css classes


                                                In the previous lesson, we learned how to modify a hovered graph item using the :hover CSS pseudo-class.

                                                However, this approach has design limitations. To achieve a more effective highlighting effect, it's better to simultaneously dim the other graph items.

                                                This can be accomplished using CSS alone, with the help of the CSS descendant selector.

                                                Wip
                                                4 minutes read

                                                Toggle class in JS

                                                Problem above: when mouse enter the chart area, triggers effect even if no marker hovered over.

                                                Solution: CSS compound class selecter (MDN doc)

                                                In CSS, a compound class selector combines multiple class names to target elements that match all of the specified classes.

                                                We can use the same css as the above example, but add the highlight class using javascript:

                                                onMouseEnter={() => {
                                                   if (ref.current) {
                                                     ref.current.classList.add(styles.hasHighlight);
                                                   }
                                                @@ -7,4 +7,4 @@
                                                   if (ref.current) {
                                                     ref.current.classList.remove(styles.hasHighlight);
                                                   }
                                                -}}
                                                Mark (90)Robert (12)Emily (34)Marion (53)Nicolas (58)

                                                A donut chart with clean inline legends, built thanks to the centroid function of d3.js.

                                                Pros & Cons

                                                More examples

                                                The examples below all use this strategy to implement their hover effect.

                                                \ No newline at end of file +}}
                                                Mark (90)Robert (12)Emily (34)Marion (53)Nicolas (58)

                                                A donut chart with clean inline legends, built thanks to the centroid function of d3.js.

                                                Pros & Cons

                                                More examples

                                                The examples below all use this strategy to implement their hover effect.

                                                \ No newline at end of file diff --git a/course/introduction/initial-setup.html b/course/introduction/initial-setup.html index 7f08c787..7986b640 100644 --- a/course/introduction/initial-setup.html +++ b/course/introduction/initial-setup.html @@ -1 +1 @@ -Initial setup

                                                Initial setup


                                                Let's create a confortable working environment: let's use Next.js.

                                                Wip
                                                4 minutes read

                                                Why Next.js?

                                                Explain why react is great?

                                                Talk about the setup I recommend: next.js + Typescript

                                                Talk about style management in next.

                                                Say I like shadCn UI and tailwind, but won't be used in the course.

                                                Talk about my boiler plate.

                                                \ No newline at end of file +Initial setup

                                                Initial setup


                                                Let's create a confortable working environment: let's use Next.js.

                                                Wip
                                                4 minutes read

                                                Why Next.js?

                                                Explain why react is great?

                                                Talk about the setup I recommend: next.js + Typescript

                                                Talk about style management in next.

                                                Say I like shadCn UI and tailwind, but won't be used in the course.

                                                Talk about my boiler plate.

                                                \ No newline at end of file diff --git a/course/introduction/introduction-to-d3.html b/course/introduction/introduction-to-d3.html index 99c42be5..8dc6bb2a 100644 --- a/course/introduction/introduction-to-d3.html +++ b/course/introduction/introduction-to-d3.html @@ -1 +1 @@ -What is d3

                                                What is d3


                                                d3 is THE reference when it comes to build viz on the web

                                                But we will use only a fraction of what it offers.

                                                Wip
                                                4 minutes read

                                                What is d3

                                                Explain what d3 is in a nutshell.

                                                Link to d3 graph gallery.

                                                Why is d3 so useful?

                                                Give the example of an awesome d3 function. May be the treemap function?

                                                Only a fraction

                                                Create circle pack of all the modules. Explain that we will use only a fraction of this.

                                                \ No newline at end of file +What is d3

                                                What is d3


                                                D3.js is a powerful JavaScript library that offers a wide range of functions for creating dynamic graphs and visualizations.

                                                Its popularity is immense; you’ll find it hard to encounter a web-based graph that doesn’t leverage D3 in some capacity. Let’s explore why it’s become such an essential tool.

                                                Free
                                                4 minutes read

                                                🌳 Try to make a treemap

                                                Do you know what a treemap is?

                                                It is this kind of graph, where rectangles are used to represent hierarchical data, with size proportional to a value:

                                                Mark90Robert12Emily34Marion53Nicolas98Malki22Djé12Mélanie45Einstein76

                                                A basic treemap made with React and D3.js

                                                Drawing rectangles with React and some divs is simple. But how do you calculate the coordinates to ensure each rectangle's area matches its corresponding value? 🙈

                                                That's exactly what the treemap() function in d3.js does for you.

                                                And that's why we need d3!


                                                Note: the React Graph Gallery has a whole section on treemaps! But do not try to understand the code for now!

                                                ❌ Not a Charting library

                                                It's important to understand that D3 is not a charting library.

                                                A charting library would offer a ready-made Scatterplot component where you pass some properties, and it renders the chart for you.

                                                D3 doesn’t do that. It provides utility functions to help you create your scatterplot, but it won’t build it for you.

                                                Screenshot of the d3.js website

                                                D3.js website screenshot.

                                                That's why d3 is ideal for "bespoke" dataviz. It requires more effort but gives you complete control for any customization.

                                                🗡️ Only a fraction

                                                D3.js offers a wide range of functions, which can be grouped into two main categories:

                                                📐 Math functions

                                                These include functions like treemap() mentioned earlier. They return numbers, positions, colors, or text, but don’t interact with the DOM.

                                                ✍️ Rendering functions

                                                Functions that modify the DOM, like append, which can add elements (e.g., a circle) to an SVG.


                                                Here’s the good news: in a React environment, we only need D3's math functions, since all the rendering will be handled by React and its JSX!

                                                \ No newline at end of file diff --git a/course/introduction/introduction-to-react.html b/course/introduction/introduction-to-react.html index bc174743..b559ff8a 100644 --- a/course/introduction/introduction-to-react.html +++ b/course/introduction/introduction-to-react.html @@ -1 +1 @@ -What is react

                                                What is react


                                                React is a JavaScript library used for creating dynamic and interactive user interfaces through reusable components. Developed by Facebook, it simplifies the process of managing application state and updating the user interface efficiently.

                                                This lesson will offer a concise overview of React and its key features.

                                                Free
                                                4 minutes read

                                                Why React?

                                                React was introduced in 2013, transforming the landscape of web development.

                                                Prior to its component-based architecture, building web applications was complex and cumbersome.

                                                Screenshot of the React website front page

                                                If you make charts for the web and don't know react, you're missing out!

                                                This is particularly evident in applications that involve data visualization. The ability to create reusable components, like a Scatterplot component, that can be utilized throughout your app, is a game-changer for your development process.


                                                If you're building a data visualization application, React offers everything you need:

                                                • Robust state management, perfectly suited for dynamic data.
                                                • A component-driven approach, ideal for creating interactive visualizations.
                                                • Extensive community support and comprehensive documentation.

                                                Expected knowledge

                                                This course focuses on Data Visualization using React.

                                                We won’t cover the basics of React, as that’s a vast topic deserving its own dedicated course! For a solid introduction, check out this intro by Codecademy.

                                                Basically, you should just be able to understand what's happening in this sandbox:


                                                That's it, no need to be a React expert.

                                                Even seasoned developers will find valuable insights here: creating visualizations with React and D3 involves specialized knowledge that differs significantly from typical UI development.

                                                Lastly, you don’t need prior experience with D3 to get started! We’ll use it sparingly and provide a thorough explanation of how it works.

                                                🤔Alternatives

                                                While React is a leading choice for building user interfaces, there are notable alternatives, primarily Vue and Angular. Additionally, Svelte has gained considerable traction within the data visualization community.

                                                However, React's popularity is significantly larger, as illustrated in the graph below from npmtrends.

                                                For further insights, you can explore a variety of metrics on this repository. It's clear to me that React has established itself as the de-facto library for creating user interfaces and is here to stay.

                                                schema showing the number of download evolution of the main JS libraries

                                                Evolution of the number of downloads for React (green), Angular, Vue and Svelte

                                                \ No newline at end of file +What is react

                                                What is react


                                                React is a JavaScript library used for creating dynamic and interactive user interfaces through reusable components. Developed by Facebook, it simplifies the process of managing application state and updating the user interface efficiently.

                                                This lesson will offer a concise overview of React and its key features.

                                                Free
                                                4 minutes read

                                                Why React?

                                                React was introduced in 2013, transforming the landscape of web development.

                                                Prior to its component-based architecture, building web applications was complex and cumbersome.

                                                Screenshot of the React website front page

                                                If you make charts for the web and don't know react, you're missing out!

                                                This is particularly evident in applications that involve data visualization. The ability to create reusable components, like a Scatterplot component, that can be utilized throughout your app, is a game-changer for your development process.


                                                If you're building a data visualization application, React offers everything you need:

                                                • Robust state management, perfectly suited for dynamic data.
                                                • A component-driven approach, ideal for creating interactive visualizations.
                                                • Extensive community support and comprehensive documentation.

                                                Expected knowledge

                                                This course focuses on Data Visualization using React.

                                                We won’t cover the basics of React, as that’s a vast topic deserving its own dedicated course! For a solid introduction, check out this intro by Codecademy.

                                                Basically, you should just be able to understand what's happening in this sandbox:


                                                That's it, no need to be a React expert.

                                                Even seasoned developers will find valuable insights here: creating visualizations with React and D3 involves specialized knowledge that differs significantly from typical UI development.

                                                Lastly, you don’t need prior experience with D3 to get started! We’ll use it sparingly and provide a thorough explanation of how it works.

                                                🤔Alternatives

                                                While React is a leading choice for building user interfaces, there are notable alternatives, primarily Vue and Angular. Additionally, Svelte has gained considerable traction within the data visualization community.

                                                However, React's popularity is significantly larger, as illustrated in the graph below from npmtrends.

                                                For further insights, you can explore a variety of metrics on this repository. It's clear to me that React has established itself as the de-facto library for creating user interfaces and is here to stay.

                                                schema showing the number of download evolution of the main JS libraries

                                                Evolution of the number of downloads for React (green), Angular, Vue and Svelte

                                                \ No newline at end of file diff --git a/course/introduction/js-dataviz-libraries.html b/course/introduction/js-dataviz-libraries.html index 96b26c9b..855a53a7 100644 --- a/course/introduction/js-dataviz-libraries.html +++ b/course/introduction/js-dataviz-libraries.html @@ -1 +1 @@ -Chart libraries: don't

                                                Chart libraries: don't


                                                When you want to create a chart, using a js library is usually the first thing that comes to your mind.

                                                While it is definitely a good idea to start with, it often ends with making your life complicated. Let's see why.

                                                Wip
                                                4 minutes read

                                                In a hurry

                                                Explain the usual story

                                                You start with a lib with NIVO. In a few minutes you have your chart. Great!

                                                Now your boss ask for X, Y, Z. Doable.

                                                Now he asks for something new. That's doable but hard. Your code starts to be hard to read.

                                                And it ends by not being doable.

                                                → Better to use d3 directly and understand what you do!

                                                \ No newline at end of file +Chart libraries: don't

                                                Chart libraries: don't


                                                When you want to create a chart, using a js library is usually the first thing that comes to your mind.

                                                While it is definitely a good idea to start with, it often ends with making your life complicated. Let's see why.

                                                Wip
                                                4 minutes read

                                                In a hurry

                                                Explain the usual story

                                                You start with a lib with NIVO. In a few minutes you have your chart. Great!

                                                Now your boss ask for X, Y, Z. Doable.

                                                Now he asks for something new. That's doable but hard. Your code starts to be hard to read.

                                                And it ends by not being doable.

                                                → Better to use d3 directly and understand what you do!

                                                \ No newline at end of file diff --git a/course/responsiveness/code-organization.html b/course/responsiveness/code-organization.html index cf715aeb..d6ba2e74 100644 --- a/course/responsiveness/code-organization.html +++ b/course/responsiveness/code-organization.html @@ -1,4 +1,4 @@ -Best Practices for Code Organization

                                                Best Practices for Code Organization


                                                Let's create a confortable working environment: let's use Next.js.

                                                Wip
                                                4 minutes read

                                                🎁 Wrapper component

                                                I like to create a "wrapper" component that manages the responsiveness and pass all the other props to the viz component, plus width and height.

                                                If you already have a dataviz component and just want to make it responsive, this template should be useful to you:

                                                type ResponsiveDensityChartProps = {
                                                +Best Practices for Code Organization

                                                Best Practices for Code Organization


                                                Let's create a confortable working environment: let's use Next.js.

                                                Wip
                                                4 minutes read

                                                🎁 Wrapper component

                                                I like to create a "wrapper" component that manages the responsiveness and pass all the other props to the viz component, plus width and height.

                                                If you already have a dataviz component and just want to make it responsive, this template should be useful to you:

                                                type ResponsiveDensityChartProps = {
                                                   data: number[];
                                                 };
                                                 
                                                @@ -28,4 +28,4 @@
                                                 // Non responsive component
                                                 const DensityChart = ({ width, height, data }: DensityChartProps) => {
                                                   //... dataviz code goes here
                                                -}
                                                \ No newline at end of file +}
                                                \ No newline at end of file diff --git a/course/responsiveness/common-pitfalls.html b/course/responsiveness/common-pitfalls.html index a5ce9fbb..b7359854 100644 --- a/course/responsiveness/common-pitfalls.html +++ b/course/responsiveness/common-pitfalls.html @@ -1 +1 @@ -Common Pitfalls and How to Avoid Them

                                                Common Pitfalls and How to Avoid Them


                                                Let's create a confortable working environment: let's use Next.js.

                                                Wip
                                                4 minutes read

                                                🐞 Caveats

                                                Here are some potential caveats to consider when using the useDimensions hook:

                                                1️⃣ Container Needs Dimensions

                                                In HTML, not all <div> elements have dimensions by default. If a <div> lacks dimensions, the useDimensions hook won't be able to measure it!

                                                • An inline <div> cannot have width and height.
                                                • By default, a <div> has no height. Its width is 100%, but its height is determined by its content. This means that without content, the <div> will have no height.

                                                2️⃣ Performance

                                                When the graph dimensions change, ensure that you only recompute what is necessary within the visualization component. useMemo and useCallback are valuable tools for optimizing performance.

                                                3️⃣ Design

                                                A graph is not merely a piece of text; its aspect ratio significantly affects its appearance. A wide graph might look great, while a narrower version may not. Sometimes, adapting the chart type based on window size is the best approach.

                                                4️⃣ Zero Dimensions

                                                Be cautious with the useDimensions hook. When your app first loads, the reference dimensions might be null or zero. Ensure your code handles this scenario properly to avoid errors.

                                                \ No newline at end of file +Common Pitfalls and How to Avoid Them

                                                Common Pitfalls and How to Avoid Them


                                                Let's create a confortable working environment: let's use Next.js.

                                                Wip
                                                4 minutes read

                                                🐞 Caveats

                                                Here are some potential caveats to consider when using the useDimensions hook:

                                                1️⃣ Container Needs Dimensions

                                                In HTML, not all <div> elements have dimensions by default. If a <div> lacks dimensions, the useDimensions hook won't be able to measure it!

                                                • An inline <div> cannot have width and height.
                                                • By default, a <div> has no height. Its width is 100%, but its height is determined by its content. This means that without content, the <div> will have no height.

                                                2️⃣ Performance

                                                When the graph dimensions change, ensure that you only recompute what is necessary within the visualization component. useMemo and useCallback are valuable tools for optimizing performance.

                                                3️⃣ Design

                                                A graph is not merely a piece of text; its aspect ratio significantly affects its appearance. A wide graph might look great, while a narrower version may not. Sometimes, adapting the chart type based on window size is the best approach.

                                                4️⃣ Zero Dimensions

                                                Be cautious with the useDimensions hook. When your app first loads, the reference dimensions might be null or zero. Ensure your code handles this scenario properly to avoid errors.

                                                \ No newline at end of file diff --git a/course/responsiveness/introduction.html b/course/responsiveness/introduction.html index 196e9535..e49591ad 100644 --- a/course/responsiveness/introduction.html +++ b/course/responsiveness/introduction.html @@ -1,4 +1,4 @@ -Introduction to responsiveness

                                                Introduction to responsiveness


                                                Most of the visualization components in this gallery accept width and height properties.

                                                However, we often don't know the exact dimensions we need for our visualizations; we just want them to fit their container.

                                                This module explains how to make a chart responsive. It provides the code for a hook that detects changes in a div's dimensions and explains how to inject its returned values into a visualization component.

                                                Free
                                                4 minutes read

                                                What is responsiveness?

                                                Responsiveness refers to the ability of a data visualization (such as charts, graphs, or dashboards) to adapt and display correctly across different devices and screen sizes.

                                                This ensures that users have an optimal viewing experience whether they are accessing the visualizations on a desktop, tablet, or mobile device

                                                This density chart is responsive! Resize your window to see how the graph fits its container.

                                                Responsiveness is a key aspect of web development. This module specifically focuses on making charts responsive. It won't cover general topics like CSS, Flexbox, Grid, or other concepts related to overall website responsiveness.

                                                Design Considerations

                                                A graph can appear visually appealing when its width exceeds its height, but it may lose its effectiveness if shrunk too much. In some cases, using a completely different chart type on smaller screens, removing a chart, or flipping it may be necessary.

                                                This course offers technical guidelines on making graphs responsive. It focuses on the "how" rather than the "what," providing you with the tools to achieve your desired outcomes.

                                                😢 Unresponsive chart

                                                When building a chart with JavaScript, knowing its dimensions — width and height — is essential. These dimensions are needed to compute scales, draw axes, and determine where to place shapes.

                                                Consequently, a visualization component always expects width and heightproperties.

                                                Consider a simple density plot, for example. The code looks like this:

                                                import * as d3 from "d3";
                                                +Introduction to responsiveness

                                                Introduction to responsiveness


                                                Most of the visualization components in this gallery accept width and height properties.

                                                However, we often don't know the exact dimensions we need for our visualizations; we just want them to fit their container.

                                                This module explains how to make a chart responsive. It provides the code for a hook that detects changes in a div's dimensions and explains how to inject its returned values into a visualization component.

                                                Free
                                                4 minutes read

                                                What is responsiveness?

                                                Responsiveness refers to the ability of a data visualization (such as charts, graphs, or dashboards) to adapt and display correctly across different devices and screen sizes.

                                                This ensures that users have an optimal viewing experience whether they are accessing the visualizations on a desktop, tablet, or mobile device

                                                This density chart is responsive! Resize your window to see how the graph fits its container.

                                                Responsiveness is a key aspect of web development. This module specifically focuses on making charts responsive. It won't cover general topics like CSS, Flexbox, Grid, or other concepts related to overall website responsiveness.

                                                Design Considerations

                                                A graph can appear visually appealing when its width exceeds its height, but it may lose its effectiveness if shrunk too much. In some cases, using a completely different chart type on smaller screens, removing a chart, or flipping it may be necessary.

                                                This course offers technical guidelines on making graphs responsive. It focuses on the "how" rather than the "what," providing you with the tools to achieve your desired outcomes.

                                                😢 Unresponsive chart

                                                When building a chart with JavaScript, knowing its dimensions — width and height — is essential. These dimensions are needed to compute scales, draw axes, and determine where to place shapes.

                                                Consequently, a visualization component always expects width and heightproperties.

                                                Consider a simple density plot, for example. The code looks like this:

                                                import * as d3 from "d3";
                                                 
                                                 type DensityProps = {
                                                   width: number; // 🙁 not responsive!
                                                @@ -17,4 +17,4 @@
                                                       </svg>
                                                     </div>
                                                   );
                                                -};

                                                Let's Code

                                                Let's assume we have a div that is responsive and takes the full width of an app.

                                                How can we draw a chart inside this div that also takes up the entire space and remains responsive?

                                                Let's find out! 🙇

                                                \ No newline at end of file +};

                                                Let's Code

                                                Let's assume we have a div that is responsive and takes the full width of an app.

                                                How can we draw a chart inside this div that also takes up the entire space and remains responsive?

                                                Let's find out! 🙇

                                                \ No newline at end of file diff --git a/course/responsiveness/use-dimension-hook.html b/course/responsiveness/use-dimension-hook.html index 4ae63d65..bcef2d05 100644 --- a/course/responsiveness/use-dimension-hook.html +++ b/course/responsiveness/use-dimension-hook.html @@ -1,4 +1,4 @@ -Creating a useDimensions Hook

                                                Creating a useDimensions Hook


                                                The visualization component is going to be wrapped in a responsive div. We need a way to retrieve this container's dimensions.

                                                To achieve this, let's create a hook called useDimensions.

                                                Wip
                                                4 minutes read

                                                What is a hook

                                                A hook is a special function that lets you use state and other React features in functional components, as explained in the documentation.

                                                Explain more why a hook is what we need.

                                                🎣 Hook to get the container dimensions

                                                That's how the hook looks like:

                                                import { useEffect, useLayoutEffect, useState } from "react";
                                                +Creating a useDimensions Hook

                                                Creating a useDimensions Hook


                                                The visualization component is going to be wrapped in a responsive div. We need a way to retrieve this container's dimensions.

                                                To achieve this, let's create a hook called useDimensions.

                                                Wip
                                                4 minutes read

                                                What is a hook

                                                A hook is a special function that lets you use state and other React features in functional components, as explained in the documentation.

                                                Explain more why a hook is what we need.

                                                🎣 Hook to get the container dimensions

                                                That's how the hook looks like:

                                                import { useEffect, useLayoutEffect, useState } from "react";
                                                 
                                                 // Hook to retrieve the dimensions of a div.
                                                 // react-graph-gallery.com
                                                @@ -27,4 +27,4 @@
                                                   }, []);
                                                 
                                                   return dimensions;
                                                -}

                                                This hook is essentially a function that checks the offsetWidth and offsetHeight of a provided ref.


                                                An event listener for the resize event is added to the window to ensure the dimensions are updated when the window size changes.

                                                Why do I have the useLayoutEffect in there?

                                                Explain more in depth how it works.

                                                \ No newline at end of file +}

                                                This hook is essentially a function that checks the offsetWidth and offsetHeight of a provided ref.


                                                An event listener for the resize event is added to the window to ensure the dimensions are updated when the window size changes.

                                                Why do I have the useLayoutEffect in there?

                                                Explain more in depth how it works.

                                                \ No newline at end of file diff --git a/course/responsiveness/using-the-hook.html b/course/responsiveness/using-the-hook.html index de9da754..ad6752c0 100644 --- a/course/responsiveness/using-the-hook.html +++ b/course/responsiveness/using-the-hook.html @@ -1,7 +1,7 @@ -Integrating the Hook with Your Graph

                                                Integrating the Hook with Your Graph


                                                We have a hook that listens for changes in a div's dimensions and returns those dimensions.

                                                Now, it's time to use this hook to inject the dimensions into our graph!

                                                Wip
                                                4 minutes read

                                                Create a ref

                                                Start by creating a ref using the React useRef() function.

                                                A ref allows you to target and interact with a specific HTML element in the DOM of your application.

                                                const chartRef = useRef(null);

                                                Finally, pass the chartRef to the container you want to monitor.

                                                return(
                                                +Integrating the Hook with Your Graph

                                                Integrating the Hook with Your Graph


                                                We have a hook that listens for changes in a div's dimensions and returns those dimensions.

                                                Now, it's time to use this hook to inject the dimensions into our graph!

                                                Wip
                                                4 minutes read

                                                Create a ref

                                                Start by creating a ref using the React useRef() function.

                                                A ref allows you to target and interact with a specific HTML element in the DOM of your application.

                                                const chartRef = useRef(null);

                                                Finally, pass the chartRef to the container you want to monitor.

                                                return(
                                                   <div ref={chartRef}>
                                                     <MyChartComponent
                                                       height={chartSize.height}
                                                       width={chartSize.width}
                                                   </div>
                                                -)

                                                Use the hook

                                                Then, pass this newly created chartRef to the hook:

                                                const chartSize = useDimensions(chartRef);

                                                You now have an object called chartSize with two properties: height and width. These properties can be used in your chart component. 🔥

                                                Pro tip: Before building a responsive visualization, use console.log() to check the chartSize object and ensure everything is working correctly.

                                                📊 Application

                                                You’re all set! Just pass the values from chartSize to the visualization component, and it will become responsive.

                                                Here is a full example with code:


                                                \ No newline at end of file +)

                                                Use the hook

                                                Then, pass this newly created chartRef to the hook:

                                                const chartSize = useDimensions(chartRef);

                                                You now have an object called chartSize with two properties: height and width. These properties can be used in your chart component. 🔥

                                                Pro tip: Before building a responsive visualization, use console.log() to check the chartSize object and ensure everything is working correctly.

                                                📊 Application

                                                You’re all set! Just pass the values from chartSize to the visualization component, and it will become responsive.

                                                Here is a full example with code:


                                                \ No newline at end of file diff --git a/course/scales/introduction.html b/course/scales/introduction.html index 214ded66..e4fc39ee 100644 --- a/course/scales/introduction.html +++ b/course/scales/introduction.html @@ -1,5 +1,5 @@ -Introduction to scales

                                                Introduction to scales


                                                Building a graph requires to transform a dimension (a numeric variable in your dataset) in a position in pixels. This is done using a fundamental dataviz concept called scale.

                                                Before implementing it in the next lesson, let's describe a bit what this crucial concept of dataviz is.

                                                Wip
                                                4 minutes read

                                                Test your intuition

                                                Let's test your intuition with the following exercise.

                                                • 1️⃣ You have a SVG area with a width of 500px.
                                                • 2️⃣ You can place circles anywhere along this area horizontally.
                                                • 3️⃣ You have a dataset with 5 values: 0, 50, 60, 82, 100

                                                How do you position your circles to represent this dataset? Drag the circles below following your intuition:

                                                Note: the number in each circle represents its value in the dataset.

                                                05060821000 px250 px500 px

                                                How it actually works

                                                The obvious part:

                                                → For a value of 0, the circle should be placed at the extreme left of the SVG. This corresponds to cx = 0px.

                                                → For the highest value in the dataset, 100, the circle should be positioned at the extreme right of the SVG. This corresponds to cx = width (i.e., 500px).

                                                → For a value of 50, which is the midpoint of our dataset, the circle should be positioned at the center of the SVG. This corresponds to cx = width / 2 (i.e., 250px).

                                                The math part:

                                                For a value of 82, which is not an exact midpoint, you need to calculate the position proportionally.

                                                The position can be calculated as:

                                                // Linear scale equation
                                                +Introduction to scales

                                                Introduction to scales


                                                Building a graph requires to transform a dimension (a numeric variable in your dataset) in a position in pixels. This is done using a fundamental dataviz concept called scale.

                                                Before implementing it in the next lesson, let's describe a bit what this crucial concept of dataviz is.

                                                Wip
                                                4 minutes read

                                                Test your intuition

                                                Let's test your intuition with the following exercise.

                                                • 1️⃣ You have a SVG area with a width of 500px.
                                                • 2️⃣ You can place circles anywhere along this area horizontally.
                                                • 3️⃣ You have a dataset with 5 values: 0, 50, 60, 82, 100

                                                How do you position your circles to represent this dataset? Drag the circles below following your intuition:

                                                Note: the number in each circle represents its value in the dataset.

                                                05060821000 px250 px500 px

                                                How it actually works

                                                The obvious part:

                                                → For a value of 0, the circle should be placed at the extreme left of the SVG. This corresponds to cx = 0px.

                                                → For the highest value in the dataset, 100, the circle should be positioned at the extreme right of the SVG. This corresponds to cx = width (i.e., 500px).

                                                → For a value of 50, which is the midpoint of our dataset, the circle should be positioned at the center of the SVG. This corresponds to cx = width / 2 (i.e., 250px).

                                                The math part:

                                                For a value of 82, which is not an exact midpoint, you need to calculate the position proportionally.

                                                The position can be calculated as:

                                                // Linear scale equation
                                                 cx = (value / maxValue) * width
                                                 
                                                 // cx = (82 / 100) * 500
                                                -// cx = 410px

                                                The Great News 🎁

                                                Manually calculating positions for each data point would be incredibly tedious for every graph you create.

                                                Fortunately, d3.js provides a function called scaleLinear() that handles this task for you. In the next lesson, we'll explore how it works and simplifies your data visualization process.

                                                \ No newline at end of file +// cx = 410px

                                                The Great News 🎁

                                                Manually calculating positions for each data point would be incredibly tedious for every graph you create.

                                                Fortunately, d3.js provides a function called scaleLinear() that handles this task for you. In the next lesson, we'll explore how it works and simplifies your data visualization process.

                                                \ No newline at end of file diff --git a/course/svg/introduction.html b/course/svg/introduction.html index 6d618455..0bfc5bec 100644 --- a/course/svg/introduction.html +++ b/course/svg/introduction.html @@ -1 +1 @@ -Introduction to svg

                                                Introduction to svg


                                                At its core, a graph is just a bunch of shapes such as circles, rectangles, and lines displayed on a screen. Using standard HTML elements to draw these shapes would be cumbersome and limiting.

                                                Fortunately, there's a more efficient solution: SVG. SVG is a versatile and widely-used technology that allows us to draw shapes in the browser with precision and ease.

                                                In this module, we'll explore how SVG works and how it can be harnessed to create dynamic and insightful data visualizations.

                                                Free
                                                4 minutes read

                                                What is SVG

                                                Scalable Vector Graphics (SVG) is an XML-based format for vector graphics. Unlike raster graphics which are made up of pixels, SVG uses vector data (points, lines, and curves) to create images. This means SVG images are resolution-independent and can scale up or down without losing quality.

                                                Most simple example

                                                Here is a very simple react app that uses SVG to render a circle:

                                                • A react component called SvgCircle is defined in a file called SvgCircle.tsx.
                                                • It renders an SVG area thank to a <svg> HTML element. It has some width and height
                                                • In this SVG area, a <circle> is drawn. cx and cy set the position of the circle. r its radius.

                                                Awesome! 🔆

                                                With just a few more circles like this, we'll have a complete scatterplot!

                                                Note: The coordinate system of SVG starts at the top-left corner, where the origin point (0,0) is located.

                                                You can style SVG

                                                SHow that yu can add a css file and it works. But it has some specificity.

                                                Benefits
                                                Pros

                                                • Scalability: SVG images maintain their quality at any size, making them ideal for responsive design. Whether viewed on a small mobile screen or a large desktop monitor, SVG graphics look crisp and clear.
                                                • Interactivity: SVG elements can be styled and animated using CSS and JavaScript, allowing for dynamic and interactive graphics. This makes SVG a powerful tool for creating engaging data visualizations.
                                                • Accessibility: Text within SVG is searchable and accessible by screen readers. This enhances the accessibility of web content, making it more usable for people with disabilities.
                                                • Performance: SVG files are often smaller in size compared to raster images, especially for complex graphics. This can lead to faster load times and improved performance of web pages.

                                                Limitations
                                                Cons

                                                While SVG is a powerful tool for creating high-quality, scalable graphics, it does have performance limitations, especially when used for data visualization.

                                                As SVG graphs are defined in the DOM, each shape or element added to an SVG increases the number of DOM nodes. For complex visualizations with a large number of elements, such as detailed scatterplots or large datasets, this can make the DOM very heavy.

                                                As a result, the browser may become slow and unresponsive due to the increased workload of rendering and managing numerous SVG elements. This can lead to performance bottlenecks, particularly on devices with limited processing power or memory.

                                                \ No newline at end of file +Introduction to svg

                                                Introduction to svg


                                                At its core, a graph is just a bunch of shapes such as circles, rectangles, and lines displayed on a screen. Using standard HTML elements to draw these shapes would be cumbersome and limiting.

                                                Fortunately, there's a more efficient solution: SVG. SVG is a versatile and widely-used technology that allows us to draw shapes in the browser with precision and ease.

                                                In this module, we'll explore how SVG works and how it can be harnessed to create dynamic and insightful data visualizations.

                                                Free
                                                4 minutes read

                                                What is SVG

                                                Scalable Vector Graphics (SVG) is an XML-based format for vector graphics. Unlike raster graphics which are made up of pixels, SVG uses vector data (points, lines, and curves) to create images. This means SVG images are resolution-independent and can scale up or down without losing quality.

                                                Most simple example

                                                Here is a very simple react app that uses SVG to render a circle:

                                                • A react component called SvgCircle is defined in a file called SvgCircle.tsx.
                                                • It renders an SVG area thank to a <svg> HTML element. It has some width and height
                                                • In this SVG area, a <circle> is drawn. cx and cy set the position of the circle. r its radius.

                                                Awesome! 🔆

                                                With just a few more circles like this, we'll have a complete scatterplot!

                                                Note: The coordinate system of SVG starts at the top-left corner, where the origin point (0,0) is located.

                                                You can style SVG

                                                SHow that yu can add a css file and it works. But it has some specificity.

                                                Benefits
                                                Pros

                                                • Scalability: SVG images maintain their quality at any size, making them ideal for responsive design. Whether viewed on a small mobile screen or a large desktop monitor, SVG graphics look crisp and clear.
                                                • Interactivity: SVG elements can be styled and animated using CSS and JavaScript, allowing for dynamic and interactive graphics. This makes SVG a powerful tool for creating engaging data visualizations.
                                                • Accessibility: Text within SVG is searchable and accessible by screen readers. This enhances the accessibility of web content, making it more usable for people with disabilities.
                                                • Performance: SVG files are often smaller in size compared to raster images, especially for complex graphics. This can lead to faster load times and improved performance of web pages.

                                                Limitations
                                                Cons

                                                While SVG is a powerful tool for creating high-quality, scalable graphics, it does have performance limitations, especially when used for data visualization.

                                                As SVG graphs are defined in the DOM, each shape or element added to an SVG increases the number of DOM nodes. For complex visualizations with a large number of elements, such as detailed scatterplots or large datasets, this can make the DOM very heavy.

                                                As a result, the browser may become slow and unresponsive due to the increased workload of rendering and managing numerous SVG elements. This can lead to performance bottlenecks, particularly on devices with limited processing power or memory.

                                                \ No newline at end of file diff --git a/course/svg/main-svg-elements.html b/course/svg/main-svg-elements.html index 71f6550a..5593c283 100644 --- a/course/svg/main-svg-elements.html +++ b/course/svg/main-svg-elements.html @@ -1 +1 @@ -Main SVG elements

                                                Main SVG elements


                                                In the previous lesson, we learned about SVG and how to draw a circle with it.

                                                To create comprehensive graphs, we'll also need other shapes such as rectangles, text, and lines. Let's explore how to create these as well.

                                                Free
                                                4 minutes read

                                                Rectangle

                                                SVG rectangles are created using the <rect> element, which requires the position and size attributes. The x and y attributes specify the coordinates of the top-left corner, while width and height determine the size of the rectangle.

                                                For example, this code will draw a blue rectangle with the top-left corner at (10,10) and dimensions of 80x50.

                                                <rect x="10" y="10" width="80" height="50" fill="blue" />

                                                Here is an interactive example so that you can experiment with rectangles and understand how they work.

                                                Line

                                                SVG lines are created using the <line> element, which requires the starting (x1, y1) and ending (x2, y2) coordinates as attributes.

                                                For example, this code will draw a black line from the point (0,0) to the point (100,100).

                                                <line x1="0" y1="0" x2="100" y2="100" stroke="black"/>

                                                Here is an interactive example so that you can play a bit with lines and understand how they work.

                                                Text

                                                SVG text is created using the <text> element, which requires coordinates to specify where the text should be placed. The x and y attributes define the position of the starting point of the text.

                                                For example, this code will display the text "Hello, SVG!" at the coordinates (50,50).

                                                <text x="50" y="50" fill="black">Hello, SVG!</text>

                                                Here is an interactive example so that you can experiment with text and understand how it works.

                                                Circle

                                                We talked about them already, but remember that SVG circles are created using the <circle> element, which requires the center coordinates and radius as attributes.

                                                The cx and cy attributes specify the center point, while the r attribute determines the radius of the circle.

                                                For example, this code will draw a red circle with a center at (50,50) and a radius of 40.

                                                <circle cx="50" cy="50" r="40" fill="red" />

                                                Here is an interactive example so that you can experiment with circles and understand how they work.

                                                Exercices

                                                \ No newline at end of file +Main SVG elements

                                                Main SVG elements


                                                In the previous lesson, we learned about SVG and how to draw a circle with it.

                                                To create comprehensive graphs, we'll also need other shapes such as rectangles, text, and lines. Let's explore how to create these as well.

                                                Free
                                                4 minutes read

                                                Rectangle

                                                SVG rectangles are created using the <rect> element, which requires the position and size attributes. The x and y attributes specify the coordinates of the top-left corner, while width and height determine the size of the rectangle.

                                                For example, this code will draw a blue rectangle with the top-left corner at (10,10) and dimensions of 80x50.

                                                <rect x="10" y="10" width="80" height="50" fill="blue" />

                                                Here is an interactive example so that you can experiment with rectangles and understand how they work.

                                                Line

                                                SVG lines are created using the <line> element, which requires the starting (x1, y1) and ending (x2, y2) coordinates as attributes.

                                                For example, this code will draw a black line from the point (0,0) to the point (100,100).

                                                <line x1="0" y1="0" x2="100" y2="100" stroke="black"/>

                                                Here is an interactive example so that you can play a bit with lines and understand how they work.

                                                Text

                                                SVG text is created using the <text> element, which requires coordinates to specify where the text should be placed. The x and y attributes define the position of the starting point of the text.

                                                For example, this code will display the text "Hello, SVG!" at the coordinates (50,50).

                                                <text x="50" y="50" fill="black">Hello, SVG!</text>

                                                Here is an interactive example so that you can experiment with text and understand how it works.

                                                Circle

                                                We talked about them already, but remember that SVG circles are created using the <circle> element, which requires the center coordinates and radius as attributes.

                                                The cx and cy attributes specify the center point, while the r attribute determines the radius of the circle.

                                                For example, this code will draw a red circle with a center at (50,50) and a radius of 40.

                                                <circle cx="50" cy="50" r="40" fill="red" />

                                                Here is an interactive example so that you can experiment with circles and understand how they work.

                                                Exercices

                                                \ No newline at end of file diff --git a/course/svg/path-element.html b/course/svg/path-element.html index f549e69b..9051da27 100644 --- a/course/svg/path-element.html +++ b/course/svg/path-element.html @@ -1,7 +1,7 @@ -The path element

                                                The path element


                                                In this lesson, we'll dive into one of the most versatile and powerful elements in SVG: the <path> element.

                                                The <path> element allows you to create complex shapes and lines that go beyond the basic geometric shapes. It is essential to build some graph types like an area chart or a line chart.

                                                Free
                                                4 minutes read

                                                Most basic example

                                                The <path> element allows to draw literally any shape in the SVG area.

                                                You provide it with a series of drawing commands that will make straight or curved lines, resulting in your final shape.

                                                Let's check a basic example:

                                                <svg height="300" width="400">
                                                +The path element

                                                The path element


                                                In this lesson, we'll dive into one of the most versatile and powerful elements in SVG: the <path> element.

                                                The <path> element allows you to create complex shapes and lines that go beyond the basic geometric shapes. It is essential to build some graph types like an area chart or a line chart.

                                                Free
                                                4 minutes read

                                                Most basic example

                                                The <path> element allows to draw literally any shape in the SVG area.

                                                You provide it with a series of drawing commands that will make straight or curved lines, resulting in your final shape.

                                                Let's check a basic example:

                                                <svg height="300" width="400">
                                                   <path
                                                     d="M0 105 L100 200 L200 200 L300 20 L350 120"
                                                     fill="none"
                                                     stroke="#69b3a2"
                                                   />
                                                -</svg>

                                                This will result in the following shape:

                                                Nice! This almost look like a line chart already!

                                                As you can see the <path> element expect a required d attribute. This attribute defines the shape of the path. Let's discover its syntax.

                                                Understanding the d Attribute

                                                The d attribute defines the shape and outline of the path by specifying a series of drawing commands.

                                                Each command consists of a letter that represents the type of drawing action (such as M for Move To) followed by one or more numbers that define the coordinates or control points.

                                                Here is a breakdown of the svg path above:

                                                • M0 105: moves the starting point of the path to coordinates 0, 105. (M stands for move to)
                                                • L100 200: draws a straight line from the current point (0, 105) to the point (100, 200). (L stands for line to)
                                                • 200 200: draws a new straight line from the current point to the point (200, 200).

                                                Now, experiment with some changes in the sandbox below to get a better understanding of how it works:

                                                The good news 🎁

                                                You won’t need to manually write the d attribute yourself. Understanding its role is helpful, but in practice, you'll rely on d3.js helper functions to generate paths for you.

                                                These functions take your data and automatically convert it into the appropriate path data.

                                                This is one of the reasons why d3.js is so powerful and beloved for data visualization! 💙

                                                Exercises

                                                \ No newline at end of file +</svg>

                                                This will result in the following shape:

                                                Nice! This almost look like a line chart already!

                                                As you can see the <path> element expect a required d attribute. This attribute defines the shape of the path. Let's discover its syntax.

                                                Understanding the d Attribute

                                                The d attribute defines the shape and outline of the path by specifying a series of drawing commands.

                                                Each command consists of a letter that represents the type of drawing action (such as M for Move To) followed by one or more numbers that define the coordinates or control points.

                                                Here is a breakdown of the svg path above:

                                                • M0 105: moves the starting point of the path to coordinates 0, 105. (M stands for move to)
                                                • L100 200: draws a straight line from the current point (0, 105) to the point (100, 200). (L stands for line to)
                                                • 200 200: draws a new straight line from the current point to the point (200, 200).

                                                Now, experiment with some changes in the sandbox below to get a better understanding of how it works:

                                                The good news 🎁

                                                You won’t need to manually write the d attribute yourself. Understanding its role is helpful, but in practice, you'll rely on d3.js helper functions to generate paths for you.

                                                These functions take your data and automatically convert it into the appropriate path data.

                                                This is one of the reasons why d3.js is so powerful and beloved for data visualization! 💙

                                                Exercises

                                                \ No newline at end of file diff --git a/course/svg/tips-and-tricks.html b/course/svg/tips-and-tricks.html index 88aff8fe..490d231b 100644 --- a/course/svg/tips-and-tricks.html +++ b/course/svg/tips-and-tricks.html @@ -1 +1 @@ -SVG tips & tricks

                                                SVG tips & tricks


                                                By now, SVG might seem straightforward, but trust me, it has its quirks that can make your data visualization journey challenging.

                                                In this lesson, I'll share some tips and tricks that can save yo hours of frustration — lessons I learned the hard way.

                                                Wip
                                                4 minutes read

                                                1️⃣ SVG Elements Don’t Have a Background Color

                                                Unlike HTML elements, SVG elements do not support background colors directly. They also do not support borders.

                                                If you want to create a background or add a border to your SVG, you need to draw a rectangle that covers the desired area. CSS properties like background-color or fill or border on the SVG element itself are not recognized and will be ignored.

                                                Example:

                                                2️⃣ Text Alignment in SVG

                                                Text alignment in SVG works differently compared to HTML. You can control both horizontal and vertical alignment using the text-anchor and alignment-baseline properties, which are unique to SVG.


                                                Here’s a summary of how they work:

                                                text-anchor controls the horizontal alignment →
                                                alignment-baseline controls the vertical alignment →
                                                This is some text

                                                3️⃣ Grouping Elements with <g>

                                                The <g> element in SVG is used to group multiple elements together.

                                                This is especially useful for applying transformations, styles, or events to a collection of elements as a single unit.

                                                4️⃣ Stroke, Fill, and Color: Different from HTML

                                                In SVG, the concepts of stroke, fill, and color work differently than in standard HTML. The fill property controls the interior color of shapes, while stroke affects the outline. Unlike div elements, SVG shapes don’t have separate properties for borders and backgrounds; instead, you use stroke and fill to control these aspects.

                                                For text elements, avoid using stroke to outline text, as it can result in poor readability. Instead, focus on using fill for color and text-anchor for alignment.

                                                5️⃣ CSS Specificity in SVG

                                                CSS specificity in SVG can be a bit more complex than in HTML. Styles applied to SVG elements can come from inline styles, internal stylesheets, or external stylesheets, and the rules of specificity still apply. However, because SVG elements are often nested and grouped, understanding which styles take precedence requires a good grasp of CSS specificity rules.

                                                6️⃣ Text Specificity in SVG vs. HTML

                                                In SVG, there is no built-in functionality for automatic text wrapping like you would find in HTML or CSS. You have to manage text wrapping manually or use JavaScript libraries to handle it. You need to calculate where to break the text and create multiple

                                                This is very super annoying. We will talk about workarounds in this course.

                                                7️⃣ SVG Dimensions: The Impact of “100%”

                                                Setting SVG dimensions to "100%" can lead to unexpected results, especially in responsive designs. SVGs can scale based on their container, but how they scale depends on the viewBox and preserveAspectRatio attributes. Understanding these attributes is key to ensuring your SVGs display correctly across different screen sizes. For more details, refer to our module on responsiveness.

                                                8️⃣ Filters, Blur Effects, and Gradients

                                                SVG offers powerful capabilities for applying visual effects, such as filters and gradients. Filters like blur, drop-shadow, and grayscale can add depth and dimension to your graphics. Gradients allow for smooth transitions between colors, which can be applied to fills or strokes, adding richness to your visualizations.

                                                9️⃣ Stacking Order Matters

                                                In SVG, elements are rendered in the order they appear in the markup, creating a natural stacking order. This means that the order of elements in your SVG code affects their visual layering. Elements later in the code will appear on top of earlier ones, so careful planning is needed when layering elements to achieve the desired visual effect.

                                                🔟 Dealing with Blurry SVG Elements

                                                SVG elements can sometimes appear blurry, especially when scaled. This is often due to anti-aliasing, which can smooth edges but also cause them to lose sharpness. To fix this, you can use the shape-rendering="crispEdges" property to make edges appear sharper, especially for pixel-perfect designs.

                                                \ No newline at end of file +SVG tips & tricks

                                                SVG tips & tricks


                                                By now, SVG might seem straightforward, but trust me, it has its quirks that can make your data visualization journey challenging.

                                                In this lesson, I'll share some tips and tricks that can save yo hours of frustration — lessons I learned the hard way.

                                                Wip
                                                4 minutes read

                                                1️⃣ SVG Elements Don’t Have a Background Color

                                                Unlike HTML elements, SVG elements do not support background colors directly. They also do not support borders.

                                                If you want to create a background or add a border to your SVG, you need to draw a rectangle that covers the desired area. CSS properties like background-color or fill or border on the SVG element itself are not recognized and will be ignored.

                                                Example:

                                                2️⃣ Text Alignment in SVG

                                                Text alignment in SVG works differently compared to HTML. You can control both horizontal and vertical alignment using the text-anchor and alignment-baseline properties, which are unique to SVG.


                                                Here’s a summary of how they work:

                                                text-anchor controls the horizontal alignment →
                                                alignment-baseline controls the vertical alignment →
                                                This is some text

                                                3️⃣ Grouping Elements with <g>

                                                The <g> element in SVG is used to group multiple elements together.

                                                This is especially useful for applying transformations, styles, or events to a collection of elements as a single unit.

                                                4️⃣ Stroke, Fill, and Color: Different from HTML

                                                In SVG, the concepts of stroke, fill, and color work differently than in standard HTML. The fill property controls the interior color of shapes, while stroke affects the outline. Unlike div elements, SVG shapes don’t have separate properties for borders and backgrounds; instead, you use stroke and fill to control these aspects.

                                                For text elements, avoid using stroke to outline text, as it can result in poor readability. Instead, focus on using fill for color and text-anchor for alignment.

                                                5️⃣ CSS Specificity in SVG

                                                CSS specificity in SVG can be a bit more complex than in HTML. Styles applied to SVG elements can come from inline styles, internal stylesheets, or external stylesheets, and the rules of specificity still apply. However, because SVG elements are often nested and grouped, understanding which styles take precedence requires a good grasp of CSS specificity rules.

                                                6️⃣ Text Specificity in SVG vs. HTML

                                                In SVG, there is no built-in functionality for automatic text wrapping like you would find in HTML or CSS. You have to manage text wrapping manually or use JavaScript libraries to handle it. You need to calculate where to break the text and create multiple

                                                This is very super annoying. We will talk about workarounds in this course.

                                                7️⃣ SVG Dimensions: The Impact of “100%”

                                                Setting SVG dimensions to "100%" can lead to unexpected results, especially in responsive designs. SVGs can scale based on their container, but how they scale depends on the viewBox and preserveAspectRatio attributes. Understanding these attributes is key to ensuring your SVGs display correctly across different screen sizes. For more details, refer to our module on responsiveness.

                                                8️⃣ Filters, Blur Effects, and Gradients

                                                SVG offers powerful capabilities for applying visual effects, such as filters and gradients. Filters like blur, drop-shadow, and grayscale can add depth and dimension to your graphics. Gradients allow for smooth transitions between colors, which can be applied to fills or strokes, adding richness to your visualizations.

                                                9️⃣ Stacking Order Matters

                                                In SVG, elements are rendered in the order they appear in the markup, creating a natural stacking order. This means that the order of elements in your SVG code affects their visual layering. Elements later in the code will appear on top of earlier ones, so careful planning is needed when layering elements to achieve the desired visual effect.

                                                🔟 Dealing with Blurry SVG Elements

                                                SVG elements can sometimes appear blurry, especially when scaled. This is often due to anti-aliasing, which can smooth edges but also cause them to lose sharpness. To fix this, you can use the shape-rendering="crispEdges" property to make edges appear sharper, especially for pixel-perfect designs.

                                                \ No newline at end of file diff --git a/cross-graph-highlight-interaction.html b/cross-graph-highlight-interaction.html index e714efce..e4c94870 100644 --- a/cross-graph-highlight-interaction.html +++ b/cross-graph-highlight-interaction.html @@ -1,4 +1,4 @@ -Cross graph highlight interaction

                                                Cross graph highlight interaction


                                                This post explains how to add cross graph interactions in a react app. It focus on performance, showing how a naive approach with a shared state leads to a disappointing result and how a react context can solve the problem.

                                                Disclaimer: the concepts explained here where showed to me by my colleague Gabriel Vergnaud.

                                                What is cross graph interaction

                                                What it is.

                                                working example

                                                Why do we care?

                                                Focus on performance

                                                Naive solution: shared state

                                                A first solution: a shared state. You defined a react state at the level of the component that wraps all your viz with useState:

                                                const [group, setGroup] = useState<number | null>(null);

                                                You then pass the state and the setter function to each viz. Something like:

                                                <Barplot
                                                +Cross graph highlight interaction

                                                Cross graph highlight interaction


                                                This post explains how to add cross graph interactions in a react app. It focus on performance, showing how a naive approach with a shared state leads to a disappointing result and how a react context can solve the problem.

                                                Disclaimer: the concepts explained here where showed to me by my colleague Gabriel Vergnaud.

                                                What is cross graph interaction

                                                What it is.

                                                working example

                                                Why do we care?

                                                Focus on performance

                                                Naive solution: shared state

                                                A first solution: a shared state. You defined a react state at the level of the component that wraps all your viz with useState:

                                                const [group, setGroup] = useState<number | null>(null);

                                                You then pass the state and the setter function to each viz. Something like:

                                                <Barplot
                                                   width={300}
                                                   height={220}
                                                   group={group}
                                                @@ -11,4 +11,4 @@
                                                 

                                                Contact

                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                  -
                                                  \ No newline at end of file +
                                                  \ No newline at end of file diff --git a/dataset-transition.html b/dataset-transition.html index a48b1f1a..57a30e43 100644 --- a/dataset-transition.html +++ b/dataset-transition.html @@ -1,4 +1,4 @@ -Smooth dataset transition

                                                  Animated dataset transition


                                                  How to smoothly transition from a dataset to the other. Use the react-spring library. Several examples with explanation. Start simple. Then focus on tricky things like enter, exit, axis, path.

                                                  A minimal react-spring dataviz example. A viz component expect a position and a color prop. But it smoothly animates the transition.

                                                  Most basic

                                                  Consider a change where dataset has the same structure, just the values change. Same number of items.

                                                  Also, just animating a prop of a shape

                                                  Very simple, just animate the bar width

                                                  Spring looks like this

                                                  const springProps = useSpring({
                                                  +Smooth dataset transition

                                                  Animated dataset transition


                                                  How to smoothly transition from a dataset to the other. Use the react-spring library. Several examples with explanation. Start simple. Then focus on tricky things like enter, exit, axis, path.

                                                  A minimal react-spring dataviz example. A viz component expect a position and a color prop. But it smoothly animates the transition.

                                                  Most basic

                                                  Consider a change where dataset has the same structure, just the values change. Same number of items.

                                                  Also, just animating a prop of a shape

                                                  Very simple, just animate the bar width

                                                  Spring looks like this

                                                  const springProps = useSpring({
                                                     to: {
                                                       barWidth,
                                                     }
                                                  @@ -14,4 +14,4 @@
                                                   

                                                  Contact

                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                    -
                                                    \ No newline at end of file +
                                                    \ No newline at end of file diff --git a/dendrogram.html b/dendrogram.html index 1ed2d83c..6ebc492d 100644 --- a/dendrogram.html +++ b/dendrogram.html @@ -1,4 +1,4 @@ -Dendrogram | The React Graph Gallery

                                                    Dendrogram

                                                    Dataviz logo representing a Dendrogram chart.

                                                    A dendrogram is a network structure. It is constituted of a root node that gives birth to several nodes connected by edges or branches. The last nodes of the hierarchy are called leaves.

                                                    This page explains how to build a dendrogram using d3.js to compute the node position, and React to render the nodes and edges. It starts by describing the required data format, explains how to build a very basicdendrogram and then shows how to customize it.

                                                    Useful links

                                                    The Data

                                                    The dataset describes a hierarchy using a recursive structure.

                                                    Each item in this structure is called a node. The lowest nodes of the hierarchy being called leaves. The dataset is an object that has at least 3 properties: name, value and children. Children is an array of nodes that have this structure too.

                                                    Here is a minimal example of the data structure:

                                                    const data = {
                                                    +Dendrogram | The React Graph Gallery

                                                    Dendrogram

                                                    Dataviz logo representing a Dendrogram chart.

                                                    A dendrogram is a network structure. It is constituted of a root node that gives birth to several nodes connected by edges or branches. The last nodes of the hierarchy are called leaves.

                                                    This page explains how to build a dendrogram using d3.js to compute the node position, and React to render the nodes and edges. It starts by describing the required data format, explains how to build a very basicdendrogram and then shows how to customize it.

                                                    Useful links

                                                    The Data

                                                    The dataset describes a hierarchy using a recursive structure.

                                                    Each item in this structure is called a node. The lowest nodes of the hierarchy being called leaves. The dataset is an object that has at least 3 properties: name, value and children. Children is an array of nodes that have this structure too.

                                                    Here is a minimal example of the data structure:

                                                    const data = {
                                                       type: 'node',
                                                       name: "boss",
                                                       value: 2300,
                                                    @@ -52,4 +52,4 @@
                                                     const dendrogram = dendrogramGenerator(hierarchy);

                                                    Since x and y are now describing an angle and a distance to the center, we can position a node using the following transform property:

                                                    transform={"rotate(" + (node.x - 90) + ")translate(" + node.y + ")"}

                                                    → Smooth edges with linkRadial

                                                    Edges are not horizontal anymore, so the linkHorizontal won't be helpful this time. But instead, the d3.linkRadial function does the job based on an angle and a distance.

                                                    → Smart labels

                                                    Please make sure your labels are properly oriented. It always give a bit of a headhache to pivot them correctly, and to control the anchoring appropriately. I talked about it extensively in the circular barplot section so please take a look for this matter.

                                                    ;;;MarkRobertEmilyMarionNicolasMalkiDjéMélanieEinstein

                                                    A minimalist radial dendrogram built using d3 and react.

                                                    Note: please check of the first level edges are straight lines. IMO it does not make sense to use linkRadial for the first level.

                                                    Coming next

                                                    There is much more that needs to be added to this tutorial.

                                                    Using canvas for rendering is often a requirement when the number of nodes gets big. Interactivity is often necessary, for hover effect or to collapse a part of the tree. It also possible to map the node circle size to a numeric variable.

                                                    This will come soon! I have a newsletter called the dataviz universe where I share my latest updates.

                                                    Subscribe

                                                    Contact

                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                      -
                                                      \ No newline at end of file +
                                                      \ No newline at end of file diff --git a/density-plot.html b/density-plot.html index 2549b6c8..cd14de88 100644 --- a/density-plot.html +++ b/density-plot.html @@ -1,4 +1,4 @@ -Density chart with React

                                                      Density chart

                                                      Dataviz logo representing a Density chart.

                                                      A density plot is a chart type that shows the distribution of a numeric variable. This page is a step-by-step guide on how to build your own density plot for the web, using React and D3.js.

                                                      It starts by describing how the data should be organized and how to initialize the density component. It then explains how to compute a kernel density. Once this is done, it shows how to render the density shape and suggests a few variations. 🙇‍♂️.

                                                      Useful links

                                                      The Data

                                                      Building a density chart only requires a set of numeric values.

                                                      As a result, the dataset is pretty simple: just an array of number.


                                                      Here is a minimal example of the data structure:

                                                      export const data = [
                                                      +Density chart with React

                                                      Density chart

                                                      Dataviz logo representing a Density chart.

                                                      A density plot is a chart type that shows the distribution of a numeric variable. This page is a step-by-step guide on how to build your own density plot for the web, using React and D3.js.

                                                      It starts by describing how the data should be organized and how to initialize the density component. It then explains how to compute a kernel density. Once this is done, it shows how to render the density shape and suggests a few variations. 🙇‍♂️.

                                                      Useful links

                                                      The Data

                                                      Building a density chart only requires a set of numeric values.

                                                      As a result, the dataset is pretty simple: just an array of number.


                                                      Here is a minimal example of the data structure:

                                                      export const data = [
                                                         75.0,
                                                         104.0,
                                                         369.0,
                                                      @@ -86,4 +86,4 @@
                                                       }

                                                      I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                      Density inspiration

                                                      If you're looking for inspiration to create your next Density, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                      dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Density looks good!

                                                      visit

                                                      Variations

                                                      Once you've understood how to build a basic density chart with d3 and React, it opens an infinite world of customization.

                                                      Here is an example showing how to plot several distributions on the same figure, allowing to compare several groups.

                                                      Using small multiple to visualize the distribution of several groups in 1 figure, avoiding overlapping.

                                                      Note that an alternative could be to use small multiple. See this histogram example that you should be able to adapt quickly.

                                                      Contact

                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                        -
                                                        \ No newline at end of file +
                                                        \ No newline at end of file diff --git a/donut.html b/donut.html index 461409f9..2bb38a42 100644 --- a/donut.html +++ b/donut.html @@ -1,4 +1,4 @@ -Donut chart | The React Graph Gallery

                                                        Donut chart

                                                        Dataviz logo representing a Doughnut chart.

                                                        The donut chart is a very common yet criticized way to represent the value of a few groups in a dataset. It is very close to the pie chart and thus suffers the same downsides.

                                                        This page explains how to build a donut chart using d3.js and React. It starts with a basic example and then focus on customization like legends, hover effect and dataset transition.

                                                        Useful links

                                                        The Data

                                                        The dataset required to build a donut chart is an array where each item represents a group. Each item is an object with 2 properties. They provide the group name (name) and its value (value).


                                                        For instance, here is the dataset used for the simple donut chart below:

                                                        const data = [
                                                        +Donut chart | The React Graph Gallery

                                                        Donut chart

                                                        Dataviz logo representing a Doughnut chart.

                                                        The donut chart is a very common yet criticized way to represent the value of a few groups in a dataset. It is very close to the pie chart and thus suffers the same downsides.

                                                        This page explains how to build a donut chart using d3.js and React. It starts with a basic example and then focus on customization like legends, hover effect and dataset transition.

                                                        Useful links

                                                        The Data

                                                        The dataset required to build a donut chart is an array where each item represents a group. Each item is an object with 2 properties. They provide the group name (name) and its value (value).


                                                        For instance, here is the dataset used for the simple donut chart below:

                                                        const data = [
                                                           {name:"Mark", value: 90},
                                                           {name:"Robert", value: 12},
                                                           {name:"Emily", value: 34},
                                                        @@ -48,4 +48,4 @@
                                                         }

                                                        I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                        Donut inspiration

                                                        If you're looking for inspiration to create your next Donut, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                        dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Donut looks good!

                                                        visit

                                                        Hover effect

                                                        On the graph below, hovering over a slice will smoothly highlight it, giving a nice polish touch to the widget.

                                                        The process is quickly described on the pie chart hover effect section. But hover effect is a topic on itself. As a result, I plan to write a full tutorial targeting this topic only. You can subscribe to know when it's ready!

                                                        Tell me when the Hover effect post is ready!

                                                        Meanwhile, here is a donut chart with a hover effect, together with its React code:

                                                        Mark (90)Robert (12)Emily (34)Marion (53)Nicolas (58)

                                                        A donut chart with clean inline legends, built thanks to the centroid function of d3.js.

                                                        Data transition

                                                        The Pie component expects a data prop. What should we do when this data changes?

                                                        By default, the chart will update instantly, with no transition. Adding a smooth transition gives a nice polish touch to the graph. Try to switch between the 2 datasets below to see the animation in action.

                                                        The code below relies on the react-spring library. Instead of rendering a path for each slice, it uses a animated.path component that handles the spring animation for us.

                                                        The implementation is not trivial. I plan to publish a full tutorial on react-spring for data visualization soon. You can subscribe here to be notified when it is ready.

                                                        A donut chart with clean inline legends, built thanks to the centroid function of d3.js.

                                                        Note: check the blue group that appears / disappears between dataset. This kind of enter/exit pattern is something to keep in mind when building animations.

                                                        Pie chart to barplot

                                                        Pie charts are often criticized since angles are hard to read. Let's represent the same data using a pie chart or a barplot, to see what's the most insightful 🤷‍♂️.

                                                        Note that here we animate the transition between different shape types: each arc becomes a rectangle and reciprocally. This is made possible thanks to the flubber library, used in coordination with react-spring.

                                                        Once more, a full tutorial is needed here. You can subscribe here to be notified when it is ready. In the meanwhile, the code of this specific example is provided below.

                                                        Transition from a pie chart to a barplot with a smooth animation using the buttons on top.

                                                        Contact

                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                          -
                                                          \ No newline at end of file +
                                                          \ No newline at end of file diff --git a/example/arc-diagram-vertical.html b/example/arc-diagram-vertical.html index 6226ebbe..43285a97 100644 --- a/example/arc-diagram-vertical.html +++ b/example/arc-diagram-vertical.html @@ -1,4 +1,4 @@ -How to build a vertical arc diagram with React and D3.js.

                                                          Vertical arc diagram

                                                          Dataviz logo representing a Arc chart.

                                                          This tutorial is a variation around the general introduction to arc diagram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                          This example explains how to make a vertical version of the arc diagram. The vertical version is sometimes prefered as it makes it easier to read the node labels.

                                                          A code sandbox is provided for the final result, but explanations target what's different compared to a classic horizontal arc diagram.

                                                          Useful links

                                                          Plot and code

                                                          If you are in a hurry, here is the final plot we're trying to achieve here, together with its code:🙇‍♂️

                                                          It is a very simple vertical arc diagram, a variation of thehorizontal version deeply described in the arc diagram section of the gallery

                                                          Arc section

                                                          A vertical arc diagram made with d3.js and react.

                                                          Vertical arcs

                                                          The main difficulty when it comes to make an arc diagram is to draw arcs in SVG.

                                                          The function allowing to draw arcs between 2 data points is a bit complicated since it requires to use elliptical arc curves.

                                                          You can read more explanation about the syntax in the official doc. But in the meantime here is the function I suggest to draw an arc connecting 2 points vertically:

                                                          const verticalArcGenerator = (
                                                          +How to build a vertical arc diagram with React and D3.js.

                                                          Vertical arc diagram

                                                          Dataviz logo representing a Arc chart.

                                                          This tutorial is a variation around the general introduction to arc diagram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                          This example explains how to make a vertical version of the arc diagram. The vertical version is sometimes prefered as it makes it easier to read the node labels.

                                                          A code sandbox is provided for the final result, but explanations target what's different compared to a classic horizontal arc diagram.

                                                          Useful links

                                                          Plot and code

                                                          If you are in a hurry, here is the final plot we're trying to achieve here, together with its code:🙇‍♂️

                                                          It is a very simple vertical arc diagram, a variation of thehorizontal version deeply described in the arc diagram section of the gallery

                                                          Arc section

                                                          A vertical arc diagram made with d3.js and react.

                                                          Vertical arcs

                                                          The main difficulty when it comes to make an arc diagram is to draw arcs in SVG.

                                                          The function allowing to draw arcs between 2 data points is a bit complicated since it requires to use elliptical arc curves.

                                                          You can read more explanation about the syntax in the official doc. But in the meantime here is the function I suggest to draw an arc connecting 2 points vertically:

                                                          const verticalArcGenerator = (
                                                             xStart: number,
                                                             yStart: number,
                                                             xEnd: number,
                                                          @@ -25,4 +25,4 @@
                                                           };

                                                          Labels

                                                          Note that some labels have been added here compared to the vertical version.

                                                          This is the main advantage of choosing the horizontal layout!

                                                          Contact

                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                            -
                                                            \ No newline at end of file +
                                                            \ No newline at end of file diff --git a/example/barplot-data-transition-animation.html b/example/barplot-data-transition-animation.html index 7f47bb0a..2d47e086 100644 --- a/example/barplot-data-transition-animation.html +++ b/example/barplot-data-transition-animation.html @@ -1,4 +1,4 @@ -Barplot with smooth dataset transition.

                                                            Barplot

                                                            Dataviz logo representing a Bar chart.

                                                            This tutorial is a variation around the general introduction to barplot with react and d3.js. You should probably understand the concepts described there before digging into animation.

                                                            This example focus on how to transition between datasets. It explains how to animate the change thanks to the react-spring library.

                                                            A code sandbox is provided for the final result, but explanations target what's different compared to an usual barplot.

                                                            Useful links

                                                            Plot and code

                                                            If you are in a hurry, this is what we're trying to achieve here 🙇‍♂️. The value of several individuals is represented, with one bar per individual. It's just a horizontal barplot.

                                                            It is possible to switch from one dataset to another using the buttons above the chart. A few notes on the 3 usual animation patterns:

                                                            • update: bars smoothly update their rank and size when the data changes. So does their label.
                                                            • enter: when the chart first loads, bar starts from 0 and grows to its real size. This is also true for items that are available in the new dataset but not in the previous. Check Christophe when you switch to data 2.
                                                            • exit: when an item is not available in the next dataset, it disappears with no animation (see Paul when switching to data2).

                                                            Barplot with smooth transition between dataset

                                                            The Data

                                                            The dataset used here is exactly the same as the one used for the simple barplot. Note that 2 similar datasets are used: data1 and data2.

                                                            Animation

                                                            Most of the code is similar to the basic barplot component. But instead of building one rect per item in the dataset, a BarItem component is called to render a rectangle that supports animation.

                                                            The react-spring library is used to create a spring animation. The rectangle properties are passed to a useSpring hook that will build the animation for us.

                                                            This is how the BarItem component looks like:

                                                            import { useSpring, animated } from "@react-spring/web";
                                                            +Barplot with smooth dataset transition.

                                                            Barplot

                                                            Dataviz logo representing a Bar chart.

                                                            This tutorial is a variation around the general introduction to barplot with react and d3.js. You should probably understand the concepts described there before digging into animation.

                                                            This example focus on how to transition between datasets. It explains how to animate the change thanks to the react-spring library.

                                                            A code sandbox is provided for the final result, but explanations target what's different compared to an usual barplot.

                                                            Useful links

                                                            Plot and code

                                                            If you are in a hurry, this is what we're trying to achieve here 🙇‍♂️. The value of several individuals is represented, with one bar per individual. It's just a horizontal barplot.

                                                            It is possible to switch from one dataset to another using the buttons above the chart. A few notes on the 3 usual animation patterns:

                                                            • update: bars smoothly update their rank and size when the data changes. So does their label.
                                                            • enter: when the chart first loads, bar starts from 0 and grows to its real size. This is also true for items that are available in the new dataset but not in the previous. Check Christophe when you switch to data 2.
                                                            • exit: when an item is not available in the next dataset, it disappears with no animation (see Paul when switching to data2).

                                                            Barplot with smooth transition between dataset

                                                            The Data

                                                            The dataset used here is exactly the same as the one used for the simple barplot. Note that 2 similar datasets are used: data1 and data2.

                                                            Animation

                                                            Most of the code is similar to the basic barplot component. But instead of building one rect per item in the dataset, a BarItem component is called to render a rectangle that supports animation.

                                                            The react-spring library is used to create a spring animation. The rectangle properties are passed to a useSpring hook that will build the animation for us.

                                                            This is how the BarItem component looks like:

                                                            import { useSpring, animated } from "@react-spring/web";
                                                             
                                                             type BarItemProps = {
                                                               name: string;
                                                            @@ -76,4 +76,4 @@
                                                             };

                                                            Contact

                                                            👋 Hey, I'm Yan and I'm currently working on this project!

                                                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                              -
                                                              \ No newline at end of file +
                                                              \ No newline at end of file diff --git a/example/barplot-stacked-horizontal.html b/example/barplot-stacked-horizontal.html index 1236973a..e9a6a40e 100644 --- a/example/barplot-stacked-horizontal.html +++ b/example/barplot-stacked-horizontal.html @@ -1,4 +1,4 @@ -Horizontal stacked barplot.

                                                              Horizontal Stacked Barplot

                                                              Dataviz logo representing a Bar chart.

                                                              This tutorial is a variation around the general introduction to barplot with react and d3.js. You should probably understand the concepts described there before digging into stacking.

                                                              This example shows how to represent 2 levels of grouping in a barplot, resulting in a stacked barplot. The items of the dataset are divided in groups (reprented as bars) and subgroups (represented as sections in each bar).

                                                              A code sandbox is provided for the final result, but explanations target what's different compared to an usual barplot.

                                                              Useful links

                                                              Plot and code

                                                              This is a stacked barplot built using React and d3.js. The dummy dataset provides information about how much my friends spent the last month. The people are the group here. Each bar represents a group.

                                                              A second level of grouping is available. We know if the money was spent on travel, food or beer. It is possible to represent this additional amount of info using a process called stacking.

                                                              How much my friends spend on travel, food and beer.
                                                              50100150200250300312Jean294Nicolas270Mark159Marion102Emily69Mélanie54Gabriel36Robert6Paul

                                                              A horizontal stacked barplot built with d3.js for scales, and react for rendering

                                                              Now, let's see how to implement such a graph.

                                                              The Data

                                                              There are several ways to store this information in javascript. I suggest an array of object where each object provides the valueof 1 specific expense, with the group (friend name) and the subgroup (category of expense).

                                                              export const data = [
                                                              +Horizontal stacked barplot.

                                                              Horizontal Stacked Barplot

                                                              Dataviz logo representing a Bar chart.

                                                              This tutorial is a variation around the general introduction to barplot with react and d3.js. You should probably understand the concepts described there before digging into stacking.

                                                              This example shows how to represent 2 levels of grouping in a barplot, resulting in a stacked barplot. The items of the dataset are divided in groups (reprented as bars) and subgroups (represented as sections in each bar).

                                                              A code sandbox is provided for the final result, but explanations target what's different compared to an usual barplot.

                                                              Useful links

                                                              Plot and code

                                                              This is a stacked barplot built using React and d3.js. The dummy dataset provides information about how much my friends spent the last month. The people are the group here. Each bar represents a group.

                                                              A second level of grouping is available. We know if the money was spent on travel, food or beer. It is possible to represent this additional amount of info using a process called stacking.

                                                              How much my friends spend on travel, food and beer.
                                                              50100150200250300312Jean294Nicolas270Mark159Marion102Emily69Mélanie54Gabriel36Robert6Paul

                                                              A horizontal stacked barplot built with d3.js for scales, and react for rendering

                                                              Now, let's see how to implement such a graph.

                                                              The Data

                                                              There are several ways to store this information in javascript. I suggest an array of object where each object provides the valueof 1 specific expense, with the group (friend name) and the subgroup (category of expense).

                                                              export const data = [
                                                                 {group:"Mark", subgroup: "travel",  value: 90},
                                                                 {group:"Mark", subgroup: "food",  value: 23},
                                                                 {group:"Mark", subgroup: "beer",  value: 14},
                                                              @@ -29,4 +29,4 @@
                                                               ]

                                                              Rendering

                                                              Once you get the stacked data above, rendering the chart is business as usual. You can loop through the object and plot a rect for each item.

                                                              How much my friends spend on travel, food and beer.
                                                              50100150200250300312Jean294Nicolas270Mark159Marion102Emily69Mélanie54Gabriel36Robert6Paul

                                                              A horizontal stacked barplot built with d3.js for scales, and react for rendering

                                                              Variation

                                                              Check those other barplot and stacked barplot that can interest you:

                                                              Picture of a horizontal barplot made with React and d3

                                                              Basic barplot

                                                              Most basic barplot built with React and d3

                                                              GIF of a data update on a React barplot

                                                              Barplot dataset transition

                                                              How to smoothly animate the transition between dataset

                                                              Picture of a vertical stacked barchart made with react and d3

                                                              Vertical Stacked Barplot

                                                              Represent group and subgroup values by stacking the data

                                                              Contact

                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                -
                                                                \ No newline at end of file +
                                                                \ No newline at end of file diff --git a/example/barplot-stacked-vertical.html b/example/barplot-stacked-vertical.html index 43b9fa6d..27dc4a98 100644 --- a/example/barplot-stacked-vertical.html +++ b/example/barplot-stacked-vertical.html @@ -1,4 +1,4 @@ -Vertical stacked barplot.

                                                                Vertical Stacked Barplot

                                                                Dataviz logo representing a Bar chart.

                                                                This tutorial is a variation around the general introduction to barplot with react and d3.js. You should probably understand the concepts described there before digging into stacking.

                                                                This example shows how to represent 2 levels of grouping in a barplot, resulting in a stacked barplot. The items of the dataset are divided in groups (reprented as bars) and subgroups (represented as sections in each bar).

                                                                A code sandbox is provided for the final result, but explanations target what's different compared to an usual barplot.

                                                                Useful links

                                                                Plot and code

                                                                This is a vertical stacked barplot built using React and d3.js. It is very similar to the horizontal version. So very little explanation is provided here. Enjoy the sandbox!

                                                                Most basic barplot built with d3.js for scales, and react for rendering

                                                                Variation

                                                                Check those other barplot and stacked barplot that can interest you:

                                                                Picture of a horizontal barplot made with React and d3

                                                                Basic barplot

                                                                Most basic barplot built with React and d3

                                                                GIF of a data update on a React barplot

                                                                Barplot dataset transition

                                                                How to smoothly animate the transition between dataset

                                                                Picture of a stacked barchart made with react and d3

                                                                Horizontal Stacked Barplot

                                                                Represent group and subgroup values by stacking the data

                                                                Contact

                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                +Vertical stacked barplot.

                                                                Vertical Stacked Barplot

                                                                Dataviz logo representing a Bar chart.

                                                                This tutorial is a variation around the general introduction to barplot with react and d3.js. You should probably understand the concepts described there before digging into stacking.

                                                                This example shows how to represent 2 levels of grouping in a barplot, resulting in a stacked barplot. The items of the dataset are divided in groups (reprented as bars) and subgroups (represented as sections in each bar).

                                                                A code sandbox is provided for the final result, but explanations target what's different compared to an usual barplot.

                                                                Useful links

                                                                Plot and code

                                                                This is a vertical stacked barplot built using React and d3.js. It is very similar to the horizontal version. So very little explanation is provided here. Enjoy the sandbox!

                                                                Most basic barplot built with d3.js for scales, and react for rendering

                                                                Variation

                                                                Check those other barplot and stacked barplot that can interest you:

                                                                Picture of a horizontal barplot made with React and d3

                                                                Basic barplot

                                                                Most basic barplot built with React and d3

                                                                GIF of a data update on a React barplot

                                                                Barplot dataset transition

                                                                How to smoothly animate the transition between dataset

                                                                Picture of a stacked barchart made with react and d3

                                                                Horizontal Stacked Barplot

                                                                Represent group and subgroup values by stacking the data

                                                                Contact

                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                  -
                                                                  \ No newline at end of file +
                                                                  \ No newline at end of file diff --git a/example/boxplot-horizontal.html b/example/boxplot-horizontal.html index a32d44d1..b51ab3fb 100644 --- a/example/boxplot-horizontal.html +++ b/example/boxplot-horizontal.html @@ -1,4 +1,4 @@ -Horizontal Boxplot

                                                                  Horizontal Boxplot

                                                                  Dataviz logo representing a Box1 chart.

                                                                  This tutorial is a variation around the general introduction to boxplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                  The general introduction relies on a VerticalBox function that draws a.. vertical box 🙃. The main difference here is that we are now building a HorizontalBox function and swap the X and Y axes.

                                                                  As usual, this post comes with explanation, a code sandbox and a template that you can reuse instantly in your web application.

                                                                  Useful links

                                                                  Horizontal Boxplot implementation

                                                                  Here is a proposal of implementation for a horizontal boxplot with react and d3.js.

                                                                  D3 actually has a very minor role here. It is only used to compute the xand y scales. The x scale is a linear scale made with the scaleLinear() function. The Y scale shows groups thanks to the scaleBand() function.

                                                                  ABCD

                                                                  A horizontal boxplot made with React and D3.js.

                                                                  Horizontal box drawing

                                                                  We need a function that draws a horizontal box in SVG based on the quartiles position in pixels.

                                                                  The function looks like this:

                                                                  export const HorizontalBox = ({
                                                                  +Horizontal Boxplot

                                                                  Horizontal Boxplot

                                                                  Dataviz logo representing a Box1 chart.

                                                                  This tutorial is a variation around the general introduction to boxplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                  The general introduction relies on a VerticalBox function that draws a.. vertical box 🙃. The main difference here is that we are now building a HorizontalBox function and swap the X and Y axes.

                                                                  As usual, this post comes with explanation, a code sandbox and a template that you can reuse instantly in your web application.

                                                                  Useful links

                                                                  Horizontal Boxplot implementation

                                                                  Here is a proposal of implementation for a horizontal boxplot with react and d3.js.

                                                                  D3 actually has a very minor role here. It is only used to compute the xand y scales. The x scale is a linear scale made with the scaleLinear() function. The Y scale shows groups thanks to the scaleBand() function.

                                                                  ABCD

                                                                  A horizontal boxplot made with React and D3.js.

                                                                  Horizontal box drawing

                                                                  We need a function that draws a horizontal box in SVG based on the quartiles position in pixels.

                                                                  The function looks like this:

                                                                  export const HorizontalBox = ({
                                                                     min,
                                                                     q1,
                                                                     median,
                                                                  @@ -39,4 +39,4 @@
                                                                   };

                                                                  Next steps

                                                                  This post is a translation of the basic boxplot example, switching from vertical to horizontal mode.

                                                                  Now that this basic horizontal boxplot is available, it should be straightforward to add interesting features like showing individual data points or switching to a violin plot.

                                                                  Contact

                                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                    -
                                                                    \ No newline at end of file +
                                                                    \ No newline at end of file diff --git a/example/boxplot-jitter.html b/example/boxplot-jitter.html index b4b39e51..ce0de751 100644 --- a/example/boxplot-jitter.html +++ b/example/boxplot-jitter.html @@ -1,4 +1,4 @@ -How to build a boxplot with individual data points displayed on top using jittering.

                                                                    Boxplot

                                                                    Dataviz logo representing a Box1 chart.

                                                                    This tutorial is a variation around the general introduction to boxplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                    This example explains how to display all individual data points of the dataset on top of each box, using jittering to avoid overlaps.

                                                                    A code sandbox is provided for the final result, but explanations target what's different compared to an usual boxplot.

                                                                    Useful links

                                                                    Plot and code

                                                                    If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                    The distribution of several groups is represented, with one box for each group. This kind of viz is called a boxplot and has its own boxplot section.

                                                                    Even if powerful to summarize the distribution of a numeric variable, the boxplot has flaws.

                                                                    It basically hides the underlying distribution. For instance, a low sample size or a bi-modal distribution are impossible to detect reading the boxes only.

                                                                    Jittering is a good workaround. Add all individual data points with low size, low opacity, and some random shift to the right or to the left (jitter). The underlying distribution becomes instantly available.

                                                                    -5051015202530ABCD

                                                                    Showing individual data points using jittering on top of your boxplot adds trust. Reader now knows you're not hiding anything.

                                                                    The Data

                                                                    The dataset used here is exactly the same as the one used for the simple boxplot.

                                                                    Jittering

                                                                    We want to show each individual data point on top of each box for accuracy. If the dataset is big, this would result in a cluttered figure with a lot of overlap.

                                                                    Jittering is a process that shifts each circle by a random value. It avoids the overlap, and allows to make the circle layer insightful.

                                                                    Here is a suggestion to implement it:

                                                                    const allCircles = groupData.map((value, i) => (
                                                                    +How to build a boxplot with individual data points displayed on top using jittering.

                                                                    Boxplot

                                                                    Dataviz logo representing a Box1 chart.

                                                                    This tutorial is a variation around the general introduction to boxplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                    This example explains how to display all individual data points of the dataset on top of each box, using jittering to avoid overlaps.

                                                                    A code sandbox is provided for the final result, but explanations target what's different compared to an usual boxplot.

                                                                    Useful links

                                                                    Plot and code

                                                                    If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                    The distribution of several groups is represented, with one box for each group. This kind of viz is called a boxplot and has its own boxplot section.

                                                                    Even if powerful to summarize the distribution of a numeric variable, the boxplot has flaws.

                                                                    It basically hides the underlying distribution. For instance, a low sample size or a bi-modal distribution are impossible to detect reading the boxes only.

                                                                    Jittering is a good workaround. Add all individual data points with low size, low opacity, and some random shift to the right or to the left (jitter). The underlying distribution becomes instantly available.

                                                                    -5051015202530ABCD

                                                                    Showing individual data points using jittering on top of your boxplot adds trust. Reader now knows you're not hiding anything.

                                                                    The Data

                                                                    The dataset used here is exactly the same as the one used for the simple boxplot.

                                                                    Jittering

                                                                    We want to show each individual data point on top of each box for accuracy. If the dataset is big, this would result in a cluttered figure with a lot of overlap.

                                                                    Jittering is a process that shifts each circle by a random value. It avoids the overlap, and allows to make the circle layer insightful.

                                                                    Here is a suggestion to implement it:

                                                                    const allCircles = groupData.map((value, i) => (
                                                                       <circle
                                                                         key={i}
                                                                         cx={
                                                                    @@ -14,4 +14,4 @@
                                                                     ));

                                                                    Contact

                                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                      -
                                                                      \ No newline at end of file +
                                                                      \ No newline at end of file diff --git a/example/circle-packing-with-d3-force.html b/example/circle-packing-with-d3-force.html index 3c8776bd..04448191 100644 --- a/example/circle-packing-with-d3-force.html +++ b/example/circle-packing-with-d3-force.html @@ -1,4 +1,4 @@ -Circle Packing with d3-force.

                                                                      Circle Packing with d3-force

                                                                      Dataviz logo representing a CircularPacking chart.

                                                                      This tutorial is a variation around the general introduction to circle packing with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                      Instead of relying on the pack() function of d3.js to compute the best node positions, this example suggests to rely on the d3-force plugin to apply physical forces on each node.

                                                                      A code sandbox is provided for the final result, but explanations target what's different compared to a classic circular packing based on some concepts described in the network diagram section.

                                                                      Useful links

                                                                      Plot and code

                                                                      Here is the final plot we're trying to achieve here, together with its code:🙇‍♂️

                                                                      It is a circular packing chart where all circles represent an item of the dataset.

                                                                      • The circle area is proportional to the value property of the data item.
                                                                      • All circles are close to each other but do not collide. They are also attracted by the y=0 horizontal axis, what aligns them horizontally

                                                                      To understand how this chart works, you need the concepts described in the Network diagram and Circle pack sections.

                                                                      A circle packing chart made using the d3-force plugin, with bubbles being attracted by the y=0 baseline.

                                                                      Using d3-force

                                                                      This example is actually a variation of a network diagram, but with no links between nodes.

                                                                      Some physical forces are applied to each node to compute their position through an iterative simulation:

                                                                      d3.forceSimulation(nodes)
                                                                      +Circle Packing with d3-force.

                                                                      Circle Packing with d3-force

                                                                      Dataviz logo representing a CircularPacking chart.

                                                                      This tutorial is a variation around the general introduction to circle packing with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                      Instead of relying on the pack() function of d3.js to compute the best node positions, this example suggests to rely on the d3-force plugin to apply physical forces on each node.

                                                                      A code sandbox is provided for the final result, but explanations target what's different compared to a classic circular packing based on some concepts described in the network diagram section.

                                                                      Useful links

                                                                      Plot and code

                                                                      Here is the final plot we're trying to achieve here, together with its code:🙇‍♂️

                                                                      It is a circular packing chart where all circles represent an item of the dataset.

                                                                      • The circle area is proportional to the value property of the data item.
                                                                      • All circles are close to each other but do not collide. They are also attracted by the y=0 horizontal axis, what aligns them horizontally

                                                                      To understand how this chart works, you need the concepts described in the Network diagram and Circle pack sections.

                                                                      A circle packing chart made using the d3-force plugin, with bubbles being attracted by the y=0 baseline.

                                                                      Using d3-force

                                                                      This example is actually a variation of a network diagram, but with no links between nodes.

                                                                      Some physical forces are applied to each node to compute their position through an iterative simulation:

                                                                      d3.forceSimulation(nodes)
                                                                         .force(
                                                                           'collide',
                                                                           d3.forceCollide().radius((node) => sizeScale(node.value) + 1)
                                                                      @@ -10,4 +10,4 @@
                                                                         .range([BUBBLE_MIN_SIZE, BUBBLE_MAX_SIZE]);

                                                                      Contact

                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                        -
                                                                        \ No newline at end of file +
                                                                        \ No newline at end of file diff --git a/example/histogram-mirror.html b/example/histogram-mirror.html index ab856671..d7b0a42e 100644 --- a/example/histogram-mirror.html +++ b/example/histogram-mirror.html @@ -1,4 +1,4 @@ -How to build a mirror histogram with React and D3.

                                                                        Mirror histogram

                                                                        Dataviz logo representing a Histogram chart.

                                                                        This tutorial is a variation around the general introduction to histogram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                        This example explains how to compare the distribution of 2 groups using amirror histogram. One group is displayed above the X axis, the other onebelow. It allows a direct comparison without having any overlap.

                                                                        A code sandbox is provided for the final result, but explanations target what's different compared to an usual histogram.

                                                                        Useful links

                                                                        Plot and code

                                                                        If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                        The distributions of 2 groups are displayed on the same figure, 1 group being on top and the other being below the X axis. It allows to compare them efficiently, with no overlap. .

                                                                        02468101202468

                                                                        A mirror histogram made with react and d3.js to compare the distribution of 2 groups in a dataset

                                                                        The Data

                                                                        The dataset used here is slightly different as the one used for the simple 1 group histogram.

                                                                        An array is used, with each object in it providing the name (group property here) and the values of a group. Note that if more than 2 items are available in the array, only the 2 first will be used by the component.

                                                                        Here is a minimal example of the data structure:

                                                                        const data = [
                                                                        +How to build a mirror histogram with React and D3.

                                                                        Mirror histogram

                                                                        Dataviz logo representing a Histogram chart.

                                                                        This tutorial is a variation around the general introduction to histogram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                        This example explains how to compare the distribution of 2 groups using amirror histogram. One group is displayed above the X axis, the other onebelow. It allows a direct comparison without having any overlap.

                                                                        A code sandbox is provided for the final result, but explanations target what's different compared to an usual histogram.

                                                                        Useful links

                                                                        Plot and code

                                                                        If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                        The distributions of 2 groups are displayed on the same figure, 1 group being on top and the other being below the X axis. It allows to compare them efficiently, with no overlap. .

                                                                        02468101202468

                                                                        A mirror histogram made with react and d3.js to compare the distribution of 2 groups in a dataset

                                                                        The Data

                                                                        The dataset used here is slightly different as the one used for the simple 1 group histogram.

                                                                        An array is used, with each object in it providing the name (group property here) and the values of a group. Note that if more than 2 items are available in the array, only the 2 first will be used by the component.

                                                                        Here is a minimal example of the data structure:

                                                                        const data = [
                                                                           {
                                                                             group: "A",
                                                                             values: [0, 0, 2, 2, 2, 0]
                                                                        @@ -20,4 +20,4 @@
                                                                         const bucketsBottom = bucketGenerator(data[1].values);

                                                                        Contact

                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                          -
                                                                          \ No newline at end of file +
                                                                          \ No newline at end of file diff --git a/example/histogram-small-multiple.html b/example/histogram-small-multiple.html index f87890b7..78909a2c 100644 --- a/example/histogram-small-multiple.html +++ b/example/histogram-small-multiple.html @@ -1,4 +1,4 @@ -How to build a small multiple histogram with React and D3 to show the distribution of several groups.

                                                                          Histogram

                                                                          Dataviz logo representing a Histogram chart.

                                                                          This tutorial is a variation around the general introduction to histogram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                          This example explains how to plot the distribution of several groups, each distribution being drawn on its own pannel. This dataviz technique is called small multiples. It can be useful to compare the distribution of several items in a dataset.

                                                                          A code sandbox is provided for the final result, but explanations target what's different compared to an usual histogram.

                                                                          Useful links

                                                                          Plot and code

                                                                          If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                          The distribution of several groups are displayed, one on each panel of the graphing window. It allows to compare the distributions.

                                                                          Note that this works even if groups have very similar distributions as the bars won't overlap each other. It is thus a very good alternative to the histogram with multiple groups that would get unreadable in this condition.

                                                                          Histogram representing the distribution of 4 groups in a dataset using the small multiple display. Made with react (rendering) and d3.js (scales)

                                                                          The Data

                                                                          The dataset used here is slightly different as the one used for the simple 1 group histogram.

                                                                          An array is used, with each object in it providing the name (group property here) and the values of a group.

                                                                          Here is a minimal example of the data structure:

                                                                          const data = [
                                                                          +How to build a small multiple histogram with React and D3 to show the distribution of several groups.

                                                                          Histogram

                                                                          Dataviz logo representing a Histogram chart.

                                                                          This tutorial is a variation around the general introduction to histogram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                          This example explains how to plot the distribution of several groups, each distribution being drawn on its own pannel. This dataviz technique is called small multiples. It can be useful to compare the distribution of several items in a dataset.

                                                                          A code sandbox is provided for the final result, but explanations target what's different compared to an usual histogram.

                                                                          Useful links

                                                                          Plot and code

                                                                          If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                          The distribution of several groups are displayed, one on each panel of the graphing window. It allows to compare the distributions.

                                                                          Note that this works even if groups have very similar distributions as the bars won't overlap each other. It is thus a very good alternative to the histogram with multiple groups that would get unreadable in this condition.

                                                                          Histogram representing the distribution of 4 groups in a dataset using the small multiple display. Made with react (rendering) and d3.js (scales)

                                                                          The Data

                                                                          The dataset used here is slightly different as the one used for the simple 1 group histogram.

                                                                          An array is used, with each object in it providing the name (group property here) and the values of a group.

                                                                          Here is a minimal example of the data structure:

                                                                          const data = [
                                                                             {
                                                                               group: "A",
                                                                               values: [0, 0, 2, 2, 2, 0]
                                                                          @@ -51,4 +51,4 @@
                                                                           };

                                                                          Contact

                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                            -
                                                                            \ No newline at end of file +
                                                                            \ No newline at end of file diff --git a/example/histogram-with-several-groups.html b/example/histogram-with-several-groups.html index aa594bcd..8fc38939 100644 --- a/example/histogram-with-several-groups.html +++ b/example/histogram-with-several-groups.html @@ -1,4 +1,4 @@ -How to build a histogram with React and D3.

                                                                            Histogram

                                                                            Dataviz logo representing a Histogram chart.

                                                                            This tutorial is a variation around the general introduction to histogram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                            This example explains how to plot several groups on the same histogram, by overlapping them on the same X axis. It can be useful to compare the distribution of several items in a dataset.

                                                                            A code sandbox is provided for the final result, but explanations target what's different compared to an usual histogram.

                                                                            Useful links

                                                                            Plot and code

                                                                            If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                            The distribution of several groups are displayed on the same figure, allowing to easily compare them. Please note that this kind of visual works well when there is a clear distinction between groups. Otherwise, bars will overlap each other resulting in an unreadable chart.

                                                                            Histogram representing the distribution of 3 groups in a dataset. Made with react (rendering) and d3.js (scales)

                                                                            The Data

                                                                            The dataset used here is slightly different as the one used for the simple 1 group histogram.

                                                                            An array is used, with each object in it providing the name (group property here) and the values of a group.

                                                                            Here is a minimal example of the data structure:

                                                                            const data = [
                                                                            +How to build a histogram with React and D3.

                                                                            Histogram

                                                                            Dataviz logo representing a Histogram chart.

                                                                            This tutorial is a variation around the general introduction to histogram with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                            This example explains how to plot several groups on the same histogram, by overlapping them on the same X axis. It can be useful to compare the distribution of several items in a dataset.

                                                                            A code sandbox is provided for the final result, but explanations target what's different compared to an usual histogram.

                                                                            Useful links

                                                                            Plot and code

                                                                            If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                            The distribution of several groups are displayed on the same figure, allowing to easily compare them. Please note that this kind of visual works well when there is a clear distinction between groups. Otherwise, bars will overlap each other resulting in an unreadable chart.

                                                                            Histogram representing the distribution of 3 groups in a dataset. Made with react (rendering) and d3.js (scales)

                                                                            The Data

                                                                            The dataset used here is slightly different as the one used for the simple 1 group histogram.

                                                                            An array is used, with each object in it providing the name (group property here) and the values of a group.

                                                                            Here is a minimal example of the data structure:

                                                                            const data = [
                                                                               {
                                                                                 group: "A",
                                                                                 values: [0, 0, 2, 2, 2, 0]
                                                                            @@ -50,4 +50,4 @@
                                                                             );

                                                                            Contact

                                                                            👋 Hey, I'm Yan and I'm currently working on this project!

                                                                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                              -
                                                                              \ No newline at end of file +
                                                                              \ No newline at end of file diff --git a/example/line-chart-synchronized-cursors.html b/example/line-chart-synchronized-cursors.html index a5e7b0d4..8790f083 100644 --- a/example/line-chart-synchronized-cursors.html +++ b/example/line-chart-synchronized-cursors.html @@ -1,4 +1,4 @@ -Line charts with synchronized cursors.

                                                                              Line charts

                                                                              Dataviz logo representing a Line chart.

                                                                              This tutorial is a variation around the general introduction to line chart with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                              This example explains how to create several line charts and add asynchronized cursor on all of them. Hovering over one graph will display a cursor on all of them, easing the understanding of synchronized patterns.

                                                                              A code sandbox is provided for the final result, but explanations target what's different compared to an usual line chart.

                                                                              Useful links

                                                                              Plot and code

                                                                              If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                              Two line charts are displayed one next to each other. It shows the evolution of 2 numeric valriables.

                                                                              Hovering over a chart will display a cursor that is synced with the other chart. This helps finding a relationship between them.

                                                                              Hover over a chart to see a cursor on both of them, easing the time comparison.

                                                                              The Data

                                                                              Two dataset are used here. Both with the same format as described in theline chart section of the gallery.

                                                                              Here is a minimal example of the data structure:

                                                                              const data = [
                                                                              +Line charts with synchronized cursors.

                                                                              Line charts

                                                                              Dataviz logo representing a Line chart.

                                                                              This tutorial is a variation around the general introduction to line chart with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                              This example explains how to create several line charts and add asynchronized cursor on all of them. Hovering over one graph will display a cursor on all of them, easing the understanding of synchronized patterns.

                                                                              A code sandbox is provided for the final result, but explanations target what's different compared to an usual line chart.

                                                                              Useful links

                                                                              Plot and code

                                                                              If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                              Two line charts are displayed one next to each other. It shows the evolution of 2 numeric valriables.

                                                                              Hovering over a chart will display a cursor that is synced with the other chart. This helps finding a relationship between them.

                                                                              Hover over a chart to see a cursor on both of them, easing the time comparison.

                                                                              The Data

                                                                              Two dataset are used here. Both with the same format as described in theline chart section of the gallery.

                                                                              Here is a minimal example of the data structure:

                                                                              const data = [
                                                                                 {x:1, y: 90},
                                                                                 {x: 2, y: 12},
                                                                                 {x: 3, , y: 34},
                                                                              @@ -23,4 +23,4 @@
                                                                               };

                                                                              Animated cursor

                                                                              I used react spring to animate the cursor transition. When the mouse moves, the cursor position does not change instantly but moves smoothly to the new position.

                                                                              Animation in dataviz using React is a big topic. It's impossible to go in-depth here! I will publish a dedicated blog post on the topic soon. Please subscribe to the newsletter if you want to be notified.

                                                                              Hover over a chart to see a cursor on both of them, easing the time comparison.

                                                                              Contact

                                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                -
                                                                                \ No newline at end of file +
                                                                                \ No newline at end of file diff --git a/example/network-diagram-with-colored-groups.html b/example/network-diagram-with-colored-groups.html index eb66bc85..679b7731 100644 --- a/example/network-diagram-with-colored-groups.html +++ b/example/network-diagram-with-colored-groups.html @@ -1,4 +1,4 @@ -Force-directed Network diagram with React and D3.js.

                                                                                Force-directed Network diagram with React and D3.js

                                                                                Dataviz logo representing a Network chart.

                                                                                This tutorial is a variation around the general introduction to network diagram with react and d3.js. You should probably understand the concepts described there before reading here, notably everything related to the d3-force plugin.

                                                                                This example shows how to apply the concepts of the general tutorial to a real dataset. It creates a force-directed graph that describes the network of character co-occurrence in Les Misérables.

                                                                                A code sandbox is provided for the final result, but explanations target what's different compared to a classic network diagram.

                                                                                Useful links

                                                                                Plot and code

                                                                                If you are in a hurry, here is the final plot we're trying to achieve here, together with its code:🙇‍♂️

                                                                                In this network diagram, each node is a character of the book Les Misérables. The network chart tries to localise characters who often appear together close to each other.

                                                                                The dataset comes from this Observable version that uses d3.js only.

                                                                                Network section

                                                                                A network diagram made with d3.js and react. It shows the character co-occurence in Les Misérables.

                                                                                Color Palette

                                                                                The only difference with the very simple network chart of the mainnetwork tutorial is the presence of a color palette used to color the nodes.

                                                                                Each node of the dataset is attributed to a group. It is thus possible to create a color scale using a scaleOrdinal:

                                                                                // List of Groups
                                                                                +Force-directed Network diagram with React and D3.js.

                                                                                Force-directed Network diagram with React and D3.js

                                                                                Dataviz logo representing a Network chart.

                                                                                This tutorial is a variation around the general introduction to network diagram with react and d3.js. You should probably understand the concepts described there before reading here, notably everything related to the d3-force plugin.

                                                                                This example shows how to apply the concepts of the general tutorial to a real dataset. It creates a force-directed graph that describes the network of character co-occurrence in Les Misérables.

                                                                                A code sandbox is provided for the final result, but explanations target what's different compared to a classic network diagram.

                                                                                Useful links

                                                                                Plot and code

                                                                                If you are in a hurry, here is the final plot we're trying to achieve here, together with its code:🙇‍♂️

                                                                                In this network diagram, each node is a character of the book Les Misérables. The network chart tries to localise characters who often appear together close to each other.

                                                                                The dataset comes from this Observable version that uses d3.js only.

                                                                                Network section

                                                                                A network diagram made with d3.js and react. It shows the character co-occurence in Les Misérables.

                                                                                Color Palette

                                                                                The only difference with the very simple network chart of the mainnetwork tutorial is the presence of a color palette used to color the nodes.

                                                                                Each node of the dataset is attributed to a group. It is thus possible to create a color scale using a scaleOrdinal:

                                                                                // List of Groups
                                                                                 const allGroups = [...new Set(nodes.map((d) => d.group))];
                                                                                 
                                                                                 // Color scale
                                                                                @@ -7,4 +7,4 @@
                                                                                   .range(schemeCategory10);

                                                                                Here I am using the schemeCategory10 color scale to avoid defining those color by hand.

                                                                                Once the color scale is ready, it is straightforward to call it for each node in the drawNetwork() function.

                                                                                Contact

                                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                  -
                                                                                  \ No newline at end of file +
                                                                                  \ No newline at end of file diff --git a/example/population-pyramid.html b/example/population-pyramid.html index 8980c415..33f7e44a 100644 --- a/example/population-pyramid.html +++ b/example/population-pyramid.html @@ -1 +1 @@ -

                                                                                  A work by Yan Holtz for the React Graph Gallery

                                                                                  Watch the world...

                                                                                  Getting older

                                                                                  Some countries are experiencing an aging population, while others are in the midst of a baby boom. Some face unusual demographic shifts when some others are surprisingly stable. Dive into the intriguing patterns of global population dynamics with this captivating set of lines.


                                                                                  1950
                                                                                  1965
                                                                                  1980
                                                                                  1995
                                                                                  2010
                                                                                  2025
                                                                                  2040
                                                                                  2055
                                                                                  2070
                                                                                  2085
                                                                                  2100

                                                                                  Looks good but

                                                                                  What's this?

                                                                                  These organic shapes look quite appealing. But do they actually mean anything? 🤔

                                                                                  They do!

                                                                                  They're a creative way to represent the evolution of the population pyramid of a country over time.


                                                                                  Let me walk you through it step by step:



                                                                                  How I made this

                                                                                  Material & Method

                                                                                  This project is inspired by the work of Jorge Camoes. His approach resonated with me, especially since I'm not fond of getting older. So I decided it was a great time to dive into some D3.jswork.

                                                                                  If you're curious about how this is made, most of the concepts are explained in my React Graph Gallery, and the code is available on GitHub.

                                                                                  Essentially, it's a substantial amount of React code for rendering, with a bit of D3.js to calculate the shape positions. React Spring is used for all the animations. That's it!

                                                                                  Oh, and the data comes from the United Nations. Thanks to them for providing it!

                                                                                  \ No newline at end of file +

                                                                                  A work by Yan Holtz for the React Graph Gallery

                                                                                  Watch the world...

                                                                                  Getting older

                                                                                  Some countries are experiencing an aging population, while others are in the midst of a baby boom. Some face unusual demographic shifts when some others are surprisingly stable. Dive into the intriguing patterns of global population dynamics with this captivating set of lines.


                                                                                  1950
                                                                                  1965
                                                                                  1980
                                                                                  1995
                                                                                  2010
                                                                                  2025
                                                                                  2040
                                                                                  2055
                                                                                  2070
                                                                                  2085
                                                                                  2100

                                                                                  Looks good but

                                                                                  What's this?

                                                                                  These organic shapes look quite appealing. But do they actually mean anything? 🤔

                                                                                  They do!

                                                                                  They're a creative way to represent the evolution of the population pyramid of a country over time.


                                                                                  Let me walk you through it step by step:



                                                                                  How I made this

                                                                                  Material & Method

                                                                                  This project is inspired by the work of Jorge Camoes. His approach resonated with me, especially since I'm not fond of getting older. So I decided it was a great time to dive into some D3.jswork.

                                                                                  If you're curious about how this is made, most of the concepts are explained in my React Graph Gallery, and the code is available on GitHub.

                                                                                  Essentially, it's a substantial amount of React code for rendering, with a bit of D3.js to calculate the shape positions. React Spring is used for all the animations. That's it!

                                                                                  Oh, and the data comes from the United Nations. Thanks to them for providing it!

                                                                                  \ No newline at end of file diff --git a/example/radar-chart-animation.html b/example/radar-chart-animation.html index 8c3f2f3e..568d9585 100644 --- a/example/radar-chart-animation.html +++ b/example/radar-chart-animation.html @@ -1,4 +1,4 @@ -Types of Data Professionals

                                                                                  Types of Data Professionals

                                                                                  Dataviz logo representing a Spider chart.

                                                                                  The field of data offers a diverse array of job titles, making it challenging to navigate without getting lost in the jargon and uncertainty about which roles to pursue.

                                                                                  The charts below offer deeper insights into the competencies needed, salary ranges, and popularity trends for the four primary job titles.

                                                                                  It's a good opportunity to learn how to make a little application with React and D3.js, featuring 3 inter-connected chart types with smooth animated transition: radar chart, line chart and lollipop.

                                                                                  Useful links

                                                                                  The plot

                                                                                  Here is what we want to build. It is highly inspired by a work from Kevin Rosamont Prombo.

                                                                                  Four buttons are provided, one for each type of data professional. Clicking on it will update the 3 following charts.


                                                                                  Types of Data Professionals

                                                                                  The field of data offers a diverse array of job titles, making it challenging to navigate without getting lost in the jargon and uncertainty about which roles to pursue. The charts below offer deeper insights into the competencies needed, salary ranges, and popularity trends for the four primary job titles.

                                                                                  ML OpsData PipelinesDatabaseData VizStorytellingBusiness InsightsReportingExperimentationStatsML ModelingDeployment
                                                                                  00

                                                                                  Dive deep into the 4 main types of Data Professionals. Understand their main required competencies, their salary ranges and their popularity.

                                                                                  Data

                                                                                  The radar chart explains what competencies are required to be a Data Engineer, a Machine Learning Engineer, a Data Scientist or a Data Analyst. The data and the representation have been first suggested by Kevin Rosamont Prombo.

                                                                                  The little lollipop plot provides the estimated salary range for the job. Data from review n prep and glassdoor.

                                                                                  The line chart gives an estimate of the job popularity based on its google trend score in the last ~10 years.

                                                                                  Click the Show code button above to get a sandbox with the 3 datasets at json format.

                                                                                  Global state

                                                                                  The first thing that is required here is a global state.

                                                                                  The root file of the application computes all the available groups in the dataset (allGroups) and use the first group to state the initial state of the application.

                                                                                  const allGroups = data.map((d) => d.name);
                                                                                  +Types of Data Professionals

                                                                                  Types of Data Professionals

                                                                                  Dataviz logo representing a Spider chart.

                                                                                  The field of data offers a diverse array of job titles, making it challenging to navigate without getting lost in the jargon and uncertainty about which roles to pursue.

                                                                                  The charts below offer deeper insights into the competencies needed, salary ranges, and popularity trends for the four primary job titles.

                                                                                  It's a good opportunity to learn how to make a little application with React and D3.js, featuring 3 inter-connected chart types with smooth animated transition: radar chart, line chart and lollipop.

                                                                                  Useful links

                                                                                  The plot

                                                                                  Here is what we want to build. It is highly inspired by a work from Kevin Rosamont Prombo.

                                                                                  Four buttons are provided, one for each type of data professional. Clicking on it will update the 3 following charts.


                                                                                  Types of Data Professionals

                                                                                  The field of data offers a diverse array of job titles, making it challenging to navigate without getting lost in the jargon and uncertainty about which roles to pursue. The charts below offer deeper insights into the competencies needed, salary ranges, and popularity trends for the four primary job titles.

                                                                                  ML OpsData PipelinesDatabaseData VizStorytellingBusiness InsightsReportingExperimentationStatsML ModelingDeployment
                                                                                  00

                                                                                  Dive deep into the 4 main types of Data Professionals. Understand their main required competencies, their salary ranges and their popularity.

                                                                                  Data

                                                                                  The radar chart explains what competencies are required to be a Data Engineer, a Machine Learning Engineer, a Data Scientist or a Data Analyst. The data and the representation have been first suggested by Kevin Rosamont Prombo.

                                                                                  The little lollipop plot provides the estimated salary range for the job. Data from review n prep and glassdoor.

                                                                                  The line chart gives an estimate of the job popularity based on its google trend score in the last ~10 years.

                                                                                  Click the Show code button above to get a sandbox with the 3 datasets at json format.

                                                                                  Global state

                                                                                  The first thing that is required here is a global state.

                                                                                  The root file of the application computes all the available groups in the dataset (allGroups) and use the first group to state the initial state of the application.

                                                                                  const allGroups = data.map((d) => d.name);
                                                                                   const [selectedGroup, setSelectedGroup] = useState(allGroups[0]);

                                                                                  When the user clicks a button, the state is updated thanks to the setSelectedGroup() function. The newly selected group (selectedGroup) is then passed to the graphing component as a prop.

                                                                                  Charts

                                                                                  Then we need to build 3 charts based on the 3 filtered dataset.

                                                                                  The React graph gallery already provides in-depth tutorials for those 3 chart types. So please refer to the radar chart, line chart and lollipop sections to learn how to build them.


                                                                                  Animation

                                                                                  Most of the fun here comes from the smooth, animated transition between groups. It is also the trickiest part to implement.

                                                                                  As always in this gallery, the animation is computed thanks to react-spring, a javascript library for spring animation in React.

                                                                                  It would be way too long to explain how to implement it properly in this page. But to put it in a nutshell, you need to render animated elements instead of usual SVG elements. Here is how the line is rendered for instance:

                                                                                  const LineItem = ({ path, color }: LineItemProps) => {
                                                                                     const springProps = useSpring({
                                                                                       to: {
                                                                                  @@ -21,4 +21,4 @@
                                                                                   };

                                                                                  I plan to write some complete tutorials on this passionating and complicated topic. You can subscribe to the project to know when it's ready!

                                                                                  Subscribe

                                                                                  Contact

                                                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                    -
                                                                                    \ No newline at end of file +
                                                                                    \ No newline at end of file diff --git a/example/scatterplot-basic-canvas.html b/example/scatterplot-basic-canvas.html index 3e6124b0..a83856f8 100644 --- a/example/scatterplot-basic-canvas.html +++ b/example/scatterplot-basic-canvas.html @@ -1,4 +1,4 @@ -Scatterplot with Canvas

                                                                                    Scatterplot with Canvas

                                                                                    Dataviz logo representing a ScatterPlot chart.

                                                                                    This tutorial is a variation around the general introduction to scatterplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                                    Rendering a scatterplot using SVG can arm the performance of your webpage if the number of data points is high. A common workaround is to draw the circles in canvas instead.

                                                                                    This post explains how to combine SVG for the axes and canvas for the scatterplot markers in React.

                                                                                    Useful links

                                                                                    Why using canvas? 🤔

                                                                                    A scatterplot is a chart type that is commonly used to display a high amount of data points.

                                                                                    When you draw it in SVG, it means adding a bunch of circle elements. As a result, your DOM will quickly become really heavy. It can result in poor performances. If you want to add some animation on top of it, you are pretty sure to freeze the page.

                                                                                    When using canvas, you add only 1 node in your DOM, and benefit the very high speed of it. It is game changer for any viz type that requires good performances.

                                                                                    Scatterplot canvas implementation

                                                                                    The trick here is to use 2 layers of drawing:

                                                                                    • The first layer is for the axes. It is an SVG element that will add the X and Y axes using some usual AxisLeft and AxisBottom components.
                                                                                    • The second layer is for the markers, it is the canvas element. It has a ref. We can then call a function in a useEffect hook to draw inside this canvas element.

                                                                                    This is how the useEffect hook looks like, drawing our circles:

                                                                                    useEffect(() => {
                                                                                    +Scatterplot with Canvas

                                                                                    Scatterplot with Canvas

                                                                                    Dataviz logo representing a ScatterPlot chart.

                                                                                    This tutorial is a variation around the general introduction to scatterplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                                    Rendering a scatterplot using SVG can arm the performance of your webpage if the number of data points is high. A common workaround is to draw the circles in canvas instead.

                                                                                    This post explains how to combine SVG for the axes and canvas for the scatterplot markers in React.

                                                                                    Useful links

                                                                                    Why using canvas? 🤔

                                                                                    A scatterplot is a chart type that is commonly used to display a high amount of data points.

                                                                                    When you draw it in SVG, it means adding a bunch of circle elements. As a result, your DOM will quickly become really heavy. It can result in poor performances. If you want to add some animation on top of it, you are pretty sure to freeze the page.

                                                                                    When using canvas, you add only 1 node in your DOM, and benefit the very high speed of it. It is game changer for any viz type that requires good performances.

                                                                                    Scatterplot canvas implementation

                                                                                    The trick here is to use 2 layers of drawing:

                                                                                    • The first layer is for the axes. It is an SVG element that will add the X and Y axes using some usual AxisLeft and AxisBottom components.
                                                                                    • The second layer is for the markers, it is the canvas element. It has a ref. We can then call a function in a useEffect hook to draw inside this canvas element.

                                                                                    This is how the useEffect hook looks like, drawing our circles:

                                                                                    useEffect(() => {
                                                                                       const canvas = canvasRef.current;
                                                                                     
                                                                                       if (!canvas) {
                                                                                    @@ -20,4 +20,4 @@
                                                                                     }, [data, xScale, yScale, width, height]);

                                                                                    Here is a complete implementation of the scatterplot using this technique with 10000 data points:

                                                                                    0246810121416

                                                                                    A scatterplot made with React, using SVG for the axes and Canvas for the markers to improve performance.



                                                                                    Canvas is an important topic in data visualization for the web. I plan to write complete articles on the topic. You can know when it's ready by subscribing to the project.

                                                                                    Tell me when the canvas post is ready!

                                                                                    Contact

                                                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                      -
                                                                                      \ No newline at end of file +
                                                                                      \ No newline at end of file diff --git a/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection.html b/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection.html index af4380bd..2dc70b95 100644 --- a/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection.html +++ b/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection.html @@ -1,8 +1,8 @@ -Scatterplot tooltip with React and D3: use Voronoi to detect closest point.

                                                                                      Scatterplot tooltip: use Voronoi for closest point detection

                                                                                      Dataviz logo representing a ScatterPlot chart.

                                                                                      This tutorial is a variation around the general introduction to scatterplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                                      This example explains how to use an invisible Voronoi diagram in the background to detect the mouse closest point of the scatterplot.

                                                                                      A code sandbox is provided for the final result, but explanations target what's different compared to an usual scatter plot.

                                                                                      Useful links

                                                                                      Plot and code

                                                                                      If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                                      This is a scatterplot with voronoi detection. When you enter the chart area with your mouse, the closest point is found using a Delaunay triangulation. The corresponding circle is highlighted on the chart.

                                                                                      Same concept could easily be used to add a tooltip with great performance.

                                                                                      A scatterplot with tooltip. The closest point is detected using Voronoi to trigger the tooltip apparition.

                                                                                      The Data

                                                                                      The dataset used here is the same as for an usual scatterplot.

                                                                                      It is an array of objects where each object is a data point. The object can have many properties, but at least a x and a y prop are needed to provide the 2d coordinates.

                                                                                      Here is a minimal example of the data structure:

                                                                                      const data = [
                                                                                      +Scatterplot tooltip with React and D3: use Voronoi to detect closest point.

                                                                                      Scatterplot tooltip: use Voronoi for closest point detection

                                                                                      Dataviz logo representing a ScatterPlot chart.

                                                                                      This tutorial is a variation around the general introduction to scatterplot with react and d3.js. You should probably understand the concepts described there before reading here.

                                                                                      This example explains how to use an invisible Voronoi diagram in the background to detect the mouse closest point of the scatterplot.

                                                                                      A code sandbox is provided for the final result, but explanations target what's different compared to an usual scatter plot.

                                                                                      Useful links

                                                                                      Plot and code

                                                                                      If you are in a hurry, this is what we're trying to achieve here.🙇‍♂️

                                                                                      This is a scatterplot with voronoi detection. When you enter the chart area with your mouse, the closest point is found using a Delaunay triangulation. The corresponding circle is highlighted on the chart.

                                                                                      Same concept could easily be used to add a tooltip with great performance.

                                                                                      A scatterplot with tooltip. The closest point is detected using Voronoi to trigger the tooltip apparition.

                                                                                      The Data

                                                                                      The dataset used here is the same as for an usual scatterplot.

                                                                                      It is an array of objects where each object is a data point. The object can have many properties, but at least a x and a y prop are needed to provide the 2d coordinates.

                                                                                      Here is a minimal example of the data structure:

                                                                                      const data = [
                                                                                         { x: 10, y: 10 },
                                                                                         { x: 4, y: 4 },
                                                                                         ...
                                                                                       ];

                                                                                      Building the Voronoi diagram

                                                                                      The shapes drawn in the background are called a Voronoi diagram.

                                                                                      A voronoi diagram is a is a partition of a plane into regions called voronoi cells. A voronoi cell consists of every point in the plane whose distance to its linked data point is less than or equal to its distance to any other data point.

                                                                                      This is very handy to detect the mouse closest point on a scatterplot! 🔥

                                                                                      The react graph gallery has a dedicated section on the topic. Once you understood how Voronoi works with d3, it is just a matter of adding axes to get a scatterplot with point detection.

                                                                                      Voronoi section

                                                                                      Contact

                                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                        -
                                                                                        \ No newline at end of file +
                                                                                        \ No newline at end of file diff --git a/example/timeseries-moving-average.html b/example/timeseries-moving-average.html index c143f610..415ecf88 100644 --- a/example/timeseries-moving-average.html +++ b/example/timeseries-moving-average.html @@ -1,4 +1,4 @@ -Timeseries with moving average

                                                                                        Timeseries with moving average

                                                                                        Dataviz logo representing a Time chart.

                                                                                        In this tutorial, we'll explore the art of plotting time series data, incorporating a dynamic moving average line chart overlaid on the primary plot.

                                                                                        Inspired by a visualization featured in the renowned French newspaper Le Monde, depicting the blooming patterns of cherry trees over time, we'll recreate this compelling chart.

                                                                                        With readily available code and straightforward explanations, you'll witness the prowess of React in seamlessly stacking multiple layers of rendering – from scatterplots to line charts and annotations.

                                                                                        Useful links

                                                                                        🇯🇵 Poetry in Data

                                                                                        Amidst the myriad visualizations of global warming, one stands out for its poetic resonance – an unexpected gem found within the pages of a French newspaper: the flourishing timelines of cherry trees in Japan.

                                                                                        Intriguingly, Yasuyuki Aono delved into ancient texts dating back to the 800s to unearth this data. Thanks to the meticulous efforts of Our World in Data in cleaning and refining the dataset, we're now presented with a captivating portrayal of our changing world.


                                                                                        Here is the chart we're learning to build today:

                                                                                        Plein floraison annuelleMoyenne de la floraison (20 ans)
                                                                                        1950 - 202316 Mars21 Mars26 Mars31 Mars5 Avril10 Avril15 Avril20 Avril25 Avril30 Avril5 Mai90010001100120013001400150016001700180019002000

                                                                                        Prerequisite

                                                                                        This graph combines elements of both a scatterplot and a line chart, making it essential to grasp the fundamentals of each chart type before diving in.

                                                                                        Good news, the react graph gallery has some very basic examples to illustrate those concepts!

                                                                                        Most basic scatterplot made with react and d3

                                                                                        Basic scatter plot

                                                                                        Add circles to get a basic scatter plot

                                                                                        Picture of a very simple line chart made with react and d3

                                                                                        Most basic line chart

                                                                                        The most basic line chart one can make using d3 and react

                                                                                        Annotation

                                                                                        The deepest layer of this chart is the annotation that says 1950 - 2023. It uses stripes in the background. Stripes can be build in SVG as follow:

                                                                                        <defs>
                                                                                        +Timeseries with moving average

                                                                                        Timeseries with moving average

                                                                                        Dataviz logo representing a Time chart.

                                                                                        In this tutorial, we'll explore the art of plotting time series data, incorporating a dynamic moving average line chart overlaid on the primary plot.

                                                                                        Inspired by a visualization featured in the renowned French newspaper Le Monde, depicting the blooming patterns of cherry trees over time, we'll recreate this compelling chart.

                                                                                        With readily available code and straightforward explanations, you'll witness the prowess of React in seamlessly stacking multiple layers of rendering – from scatterplots to line charts and annotations.

                                                                                        Useful links

                                                                                        🇯🇵 Poetry in Data

                                                                                        Amidst the myriad visualizations of global warming, one stands out for its poetic resonance – an unexpected gem found within the pages of a French newspaper: the flourishing timelines of cherry trees in Japan.

                                                                                        Intriguingly, Yasuyuki Aono delved into ancient texts dating back to the 800s to unearth this data. Thanks to the meticulous efforts of Our World in Data in cleaning and refining the dataset, we're now presented with a captivating portrayal of our changing world.


                                                                                        Here is the chart we're learning to build today:

                                                                                        Plein floraison annuelleMoyenne de la floraison (20 ans)
                                                                                        1950 - 202316 Mars21 Mars26 Mars31 Mars5 Avril10 Avril15 Avril20 Avril25 Avril30 Avril5 Mai90010001100120013001400150016001700180019002000

                                                                                        Prerequisite

                                                                                        This graph combines elements of both a scatterplot and a line chart, making it essential to grasp the fundamentals of each chart type before diving in.

                                                                                        Good news, the react graph gallery has some very basic examples to illustrate those concepts!

                                                                                        Most basic scatterplot made with react and d3

                                                                                        Basic scatter plot

                                                                                        Add circles to get a basic scatter plot

                                                                                        Picture of a very simple line chart made with react and d3

                                                                                        Most basic line chart

                                                                                        The most basic line chart one can make using d3 and react

                                                                                        Annotation

                                                                                        The deepest layer of this chart is the annotation that says 1950 - 2023. It uses stripes in the background. Stripes can be build in SVG as follow:

                                                                                        <defs>
                                                                                           <pattern
                                                                                             id="pattern_annotation"
                                                                                             patternUnits="userSpaceOnUse"
                                                                                        @@ -46,4 +46,4 @@
                                                                                         );

                                                                                        Full code

                                                                                        Let's wrap this up!

                                                                                        The full code for this chart is available below. Click the Show Code button.

                                                                                        Plein floraison annuelleMoyenne de la floraison (20 ans)
                                                                                        1950 - 202316 Mars21 Mars26 Mars31 Mars5 Avril10 Avril15 Avril20 Avril25 Avril30 Avril5 Mai

                                                                                        Reproduction of a chart published in the newspaper Le Monde.

                                                                                        Going further

                                                                                        This graph looks pretty good. A few potential improvements:

                                                                                        • Add a tooltip to give more information about each data point
                                                                                        • Use Voronoi for closest point detection to trigger the hover effect

                                                                                        Contact

                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                          -
                                                                                          \ No newline at end of file +
                                                                                          \ No newline at end of file diff --git a/fix-canvas-blurry-dataviz.html b/fix-canvas-blurry-dataviz.html index 299ba420..5fc0c1ef 100644 --- a/fix-canvas-blurry-dataviz.html +++ b/fix-canvas-blurry-dataviz.html @@ -1,7 +1,7 @@ -Fixing the blurry canvas on retina screens

                                                                                          Fixing the blurry canvas on retina screens


                                                                                          Drawing a chart on a canvas element instead of using svg elements can be a huge performance boost. However, it leads to a blurry and unreadable viz on retina screens if the resolution is not taken into account. Here is how to fix.

                                                                                          ⬜ Pixel, Resolution and DPI

                                                                                          To understand why a canvas can get blurry on a retina screen, you first need to have some basic knowledge about how an image is displayed on a screen.

                                                                                          Screens are made up of thousands of tiny dots all bunched together called pixels. Each pixel has the ability to change its color. The total number of pixels on a screen differs from one monitor to another, we call it the screen resolution. If the screen has 1,024 pixels horizontally, and 768 vertically it has a 'resolution' of 1,024 x 768.

                                                                                          A screen is a set of pixels

                                                                                          When you watch dataviz-inspiration.com on your screen, you actually watch thousands of pixels.

                                                                                          It's important to understand that 2 screens with the same physical size (let's say 30 inches) can have very different amount of pixels. The density of pixels on a screen is called DPI for dots per inch or ppi for pixels per inch.

                                                                                          Retina screens have a very high DPI, and it is where our troubbles begin

                                                                                          Physical vs CSS resolution

                                                                                          Let's say that you create a html element and give it a width of 100px using css. This is the css width. If you use a screen that has a very high resolution, pixels are very very small. As a result, your element of 100px would appear very small too on the screen.

                                                                                          To avoid this, each monitor applies a pixel ratio. On a retina screen this ratio equals 2. When you ask the monitor to draw an element of 100px, it will actually draw it with a length of 200px. This is the physical width.

                                                                                          In javascript, you can access this ratio with window.devicePixelRatio and here is the complete doc about it.

                                                                                          🐛 Canvas, High-DPI and the bug

                                                                                          Let's add a canvas element in our DOM, with a width of 100px. It is the equivalent of building an image, 100px wide, that we insert in the DOM.

                                                                                          If we display the result on a retina screen with a devicePixelRatio of 2, the image will be scaled up to 200px wide. The browser will interpolate pixels to make the image bigger, and it results in a blurry output.

                                                                                          To avoid this issue, we the canvas we're creating must be twice bigger on retina screen

                                                                                          A pixelated output when an image is scaled up

                                                                                          A small img or canvas on a retina screen will be scaled up, resulting in a pixelated / blurry output.

                                                                                          🤦‍♂️ The 2 dimensions of the canvas element

                                                                                          There are 2 different ways to control the dimension of a canvas element.

                                                                                          • width and height attributes: They control the size of the image that is created and inserted in the DOM.
                                                                                            Default to 300px and 150px so always specify them.
                                                                                          • css style: the canvas element can be styled using CSS. As a result we can also pass a width and a height here. It controls the size of the element on the screen.

                                                                                          Here is a html code snippet illustrating this concept:

                                                                                          <canvas style="width:200px; height:200px;" width="100px" height="100px">

                                                                                          Now, let's play with those 2 values to see what happens. In the examples below, a segment going from 0,0 (top left) to 100,100 is drawn.

                                                                                          → Small image, big output

                                                                                          If I create a small image with my canvas (100x100) and output it in big (300x300), the browser has to scale it up to display it, resulting in a blurry output

                                                                                          <canvas style="width:300px; height:300px;" width="100px" height="100px">

                                                                                          This is exactly what happens when you display a canvas on a retina screen 🙀.

                                                                                          → Big image, small output

                                                                                          Now I create a big image with my canvas (200x200) and output it in small (100x100), the browser has to scale it down to display it, → crispy output!

                                                                                          <canvas style="width:100px; height:100px;" width="200px" height="200px">

                                                                                          Much better. But my diagonal is now wrong since it goes to 100,100, which is half way to 200,200. Fortunately javascript is here to the rescue. I will just have to use the scale function to automatically correct those coordinates.

                                                                                          🔨 Fixing the Canvas and Retina screens issue

                                                                                          To finally fix the retina bug, we need to:

                                                                                          • Control the size of the canvas output using the css dimension
                                                                                          • Find the device pixel ratio using window.devicePixelRatio
                                                                                          • Create a bigger canvas image if the pixel ratio is over 1. This is done thanks to the width and height attributes.
                                                                                          • Use the scale() function in our canvas context to correct our coordinates

                                                                                          Here are 2 examples. The first one does not apply the correction (left). The second does the correction (right)

                                                                                          On retina screens, the left shape is blurry when the right one is not.

                                                                                          To see the full code of those 2 examples, click the buttons below.




                                                                                          Contact

                                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                          +Fixing the blurry canvas on retina screens

                                                                                          Fixing the blurry canvas on retina screens


                                                                                          Drawing a chart on a canvas element instead of using svg elements can be a huge performance boost. However, it leads to a blurry and unreadable viz on retina screens if the resolution is not taken into account. Here is how to fix.

                                                                                          ⬜ Pixel, Resolution and DPI

                                                                                          To understand why a canvas can get blurry on a retina screen, you first need to have some basic knowledge about how an image is displayed on a screen.

                                                                                          Screens are made up of thousands of tiny dots all bunched together called pixels. Each pixel has the ability to change its color. The total number of pixels on a screen differs from one monitor to another, we call it the screen resolution. If the screen has 1,024 pixels horizontally, and 768 vertically it has a 'resolution' of 1,024 x 768.

                                                                                          A screen is a set of pixels

                                                                                          When you watch dataviz-inspiration.com on your screen, you actually watch thousands of pixels.

                                                                                          It's important to understand that 2 screens with the same physical size (let's say 30 inches) can have very different amount of pixels. The density of pixels on a screen is called DPI for dots per inch or ppi for pixels per inch.

                                                                                          Retina screens have a very high DPI, and it is where our troubbles begin

                                                                                          Physical vs CSS resolution

                                                                                          Let's say that you create a html element and give it a width of 100px using css. This is the css width. If you use a screen that has a very high resolution, pixels are very very small. As a result, your element of 100px would appear very small too on the screen.

                                                                                          To avoid this, each monitor applies a pixel ratio. On a retina screen this ratio equals 2. When you ask the monitor to draw an element of 100px, it will actually draw it with a length of 200px. This is the physical width.

                                                                                          In javascript, you can access this ratio with window.devicePixelRatio and here is the complete doc about it.

                                                                                          🐛 Canvas, High-DPI and the bug

                                                                                          Let's add a canvas element in our DOM, with a width of 100px. It is the equivalent of building an image, 100px wide, that we insert in the DOM.

                                                                                          If we display the result on a retina screen with a devicePixelRatio of 2, the image will be scaled up to 200px wide. The browser will interpolate pixels to make the image bigger, and it results in a blurry output.

                                                                                          To avoid this issue, we the canvas we're creating must be twice bigger on retina screen

                                                                                          A pixelated output when an image is scaled up

                                                                                          A small img or canvas on a retina screen will be scaled up, resulting in a pixelated / blurry output.

                                                                                          🤦‍♂️ The 2 dimensions of the canvas element

                                                                                          There are 2 different ways to control the dimension of a canvas element.

                                                                                          • width and height attributes: They control the size of the image that is created and inserted in the DOM.
                                                                                            Default to 300px and 150px so always specify them.
                                                                                          • css style: the canvas element can be styled using CSS. As a result we can also pass a width and a height here. It controls the size of the element on the screen.

                                                                                          Here is a html code snippet illustrating this concept:

                                                                                          <canvas style="width:200px; height:200px;" width="100px" height="100px">

                                                                                          Now, let's play with those 2 values to see what happens. In the examples below, a segment going from 0,0 (top left) to 100,100 is drawn.

                                                                                          → Small image, big output

                                                                                          If I create a small image with my canvas (100x100) and output it in big (300x300), the browser has to scale it up to display it, resulting in a blurry output

                                                                                          <canvas style="width:300px; height:300px;" width="100px" height="100px">

                                                                                          This is exactly what happens when you display a canvas on a retina screen 🙀.

                                                                                          → Big image, small output

                                                                                          Now I create a big image with my canvas (200x200) and output it in small (100x100), the browser has to scale it down to display it, → crispy output!

                                                                                          <canvas style="width:100px; height:100px;" width="200px" height="200px">

                                                                                          Much better. But my diagonal is now wrong since it goes to 100,100, which is half way to 200,200. Fortunately javascript is here to the rescue. I will just have to use the scale function to automatically correct those coordinates.

                                                                                          🔨 Fixing the Canvas and Retina screens issue

                                                                                          To finally fix the retina bug, we need to:

                                                                                          • Control the size of the canvas output using the css dimension
                                                                                          • Find the device pixel ratio using window.devicePixelRatio
                                                                                          • Create a bigger canvas image if the pixel ratio is over 1. This is done thanks to the width and height attributes.
                                                                                          • Use the scale() function in our canvas context to correct our coordinates

                                                                                          Here are 2 examples. The first one does not apply the correction (left). The second does the correction (right)

                                                                                          On retina screens, the left shape is blurry when the right one is not.

                                                                                          To see the full code of those 2 examples, click the buttons below.




                                                                                          Contact

                                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                            Contact

                                                                                            👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                              -
                                                                                              \ No newline at end of file +
                                                                                              \ No newline at end of file diff --git a/heatmap.html b/heatmap.html index 8a7a82e8..4cbe79b0 100644 --- a/heatmap.html +++ b/heatmap.html @@ -1,4 +1,4 @@ -How to build a heatmap with React and D3.

                                                                                              Heatmap

                                                                                              Dataviz logo representing a Heatmap chart.

                                                                                              A heat map (or heatmap) is a chart type that shows the magnitude of a numeric variable as a color in two dimensions. This page is a step-by-step guide on how to build your own heatmap for the web, using React and D3.js.

                                                                                              It starts by describing how the data should be organized and potentially normalized. It then shows how to initialize the heatmap component, build band scales and add rectangles to get a first heatmap. Last but not least, responsiveness and the tooltip are described in depth and a real dataset is used to get a heatmap application. 🙇‍♂️.

                                                                                              Useful links

                                                                                              The Data

                                                                                              The dataset is usually an array where each item provides information for a cell of the heatmap.

                                                                                              Each item is an object that requires at least a value property that is a number. This number will be used to color the cell.

                                                                                              Each item also requires an x and a y property, providing the position of the cell in the 2-d space. Note that those values are strings since anything can be used. We are dealing with ordinal scales here.

                                                                                              Note that you can add any kind of information to those cell objects. Such information can be included in tooltips later on.


                                                                                              Here is a minimal example of the data structure:

                                                                                              const data = [
                                                                                              +How to build a heatmap with React and D3.

                                                                                              Heatmap

                                                                                              Dataviz logo representing a Heatmap chart.

                                                                                              A heat map (or heatmap) is a chart type that shows the magnitude of a numeric variable as a color in two dimensions. This page is a step-by-step guide on how to build your own heatmap for the web, using React and D3.js.

                                                                                              It starts by describing how the data should be organized and potentially normalized. It then shows how to initialize the heatmap component, build band scales and add rectangles to get a first heatmap. Last but not least, responsiveness and the tooltip are described in depth and a real dataset is used to get a heatmap application. 🙇‍♂️.

                                                                                              Useful links

                                                                                              The Data

                                                                                              The dataset is usually an array where each item provides information for a cell of the heatmap.

                                                                                              Each item is an object that requires at least a value property that is a number. This number will be used to color the cell.

                                                                                              Each item also requires an x and a y property, providing the position of the cell in the 2-d space. Note that those values are strings since anything can be used. We are dealing with ordinal scales here.

                                                                                              Note that you can add any kind of information to those cell objects. Such information can be included in tooltips later on.


                                                                                              Here is a minimal example of the data structure:

                                                                                              const data = [
                                                                                                 { x: 'A', y: 'A', value: 12 },
                                                                                                 { x: 'B', y: 'A', value: 2 },
                                                                                                 { x: 'C', y: 'A', value: 9 }
                                                                                              @@ -52,7 +52,7 @@
                                                                                                     fill={colorScale(d.value)}
                                                                                                   />
                                                                                                 );
                                                                                              -});

                                                                                              Note that for the X and Y axis labels, just adding a set of svg text element does a pretty good job, so no need to build complicated axis components as for a scatterplot.


                                                                                              ABCDEFGHIJABCDE

                                                                                              Most basic heatmap made with react and d3.js. d3 is used to compute scales, react for the rendering.

                                                                                              That's it, we have a first good looking heatmap!

                                                                                              The process used to build it with react is pretty close from building it with d3.js only. (Check the pure d3 implementation here).

                                                                                              Responsive Heatmap with react

                                                                                              The component above is not responsive. It expects 2 props called width and height and will render a Heatmap of those dimensions.

                                                                                              Making the Heatmap responsive requires adding a wrapper component that gets the dimension of the parent div, and listening to a potential dimension change. This is possible thanks to a hook called useDimensions that will do the job for us.

                                                                                              useDimensions: a hook to make your viz responsive
                                                                                              export const useDimensions = (targetRef: React.RefObject<HTMLDivElement>) => {
                                                                                              +});

                                                                                              Note that for the X and Y axis labels, just adding a set of svg text element does a pretty good job, so no need to build complicated axis components as for a scatterplot.


                                                                                              ABCDEFGHIJABCDE

                                                                                              Most basic heatmap made with react and d3.js. d3 is used to compute scales, react for the rendering.

                                                                                              That's it, we have a first good looking heatmap!

                                                                                              The process used to build it with react is pretty close from building it with d3.js only. (Check the pure d3 implementation here).

                                                                                              Responsive Heatmap with react

                                                                                              The component above is not responsive. It expects 2 props called width and height and will render a Heatmap of those dimensions.

                                                                                              Making the Heatmap responsive requires adding a wrapper component that gets the dimension of the parent div, and listening to a potential dimension change. This is possible thanks to a hook called useDimensions that will do the job for us.

                                                                                              useDimensions: a hook to make your viz responsive
                                                                                              export const useDimensions = (targetRef: React.RefObject<HTMLDivElement>) => {
                                                                                               
                                                                                                 const getDimensions = () => {
                                                                                                   return {
                                                                                              @@ -80,7 +80,7 @@
                                                                                               }

                                                                                              I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                              Tooltip

                                                                                              Adding a tooltip is an important improvement for a heatmap. It allows us to get as much detail as needed for each cell.

                                                                                              There are many different approaches to building tooltips, and I'm preparing a whole dedicated blog post on the topic.

                                                                                              In the example below I suggest using the same strategy as for scatterplots. So you probably want to read it there for an in-depth explanation.

                                                                                              → Two layers: renderer and tooltip

                                                                                              The first task is to split the Heatmap component into 2 layers. The first layer called Renderer will render the cells as seen previously. The second is an absolute div put on top of the first one, used only to show the tooltip div.

                                                                                              This way, the x and y coordinates of cells in the first layer match with the coordinate of the second layer.

                                                                                              <div style={{ position: "relative" }}>
                                                                                                 <Renderer ..someProps />
                                                                                                 <Tooltip ..someProps />
                                                                                              -</div>

                                                                                              → A common state

                                                                                              On top of the 2 layers, we need a state that stores information about the cell being hovered over. You can create it with a useState statement. I usually call it interactionData in this website.

                                                                                              This state is passed to the Tooltip layer. The function to update it (the "setter") is passed to the Renderer layer. When the user hovers over a cell, this setter is triggered to update the state and thus the tooltip.

                                                                                              const [hoveredCell, setHoveredCell] = useState<InteractionData | null>(null);

                                                                                              → Hover, update state, render tooltips

                                                                                              The heatmap cells listen to onMouseEnter events and update the tooltip state (hoveredCell) with accurate coordinates when it happens.

                                                                                              This state is passed to the Tooltip component. It renders a div at the right position thanks to the information. A bit of smart css is used to make it pretty and include a little arrow.

                                                                                              ABCDEFGHIJABCDE

                                                                                              This heatmap has a tooltip. Hover over a cell to get its exact value.

                                                                                              There is much more to say about tooltips but hopefully that should get you started. Subscribe to the gallery, I'll post more on this topic soon.

                                                                                              Heatmap inspiration

                                                                                              If you're looking for inspiration to create your next Heatmap, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                              dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Heatmap looks good!

                                                                                              visit

                                                                                              Color legend

                                                                                              A heatmap uses a color scale to encode a numeric value into a color. As a result, it is very much advised to add a color legend to explicit how this color scale works.

                                                                                              Let's consider a variable that goes from 0 to 100. We want to encode 0 in blue and 100 in purple. The color scale is built thanks to the scaleLinear() function of d3 as described above.

                                                                                              → A common state

                                                                                              On top of the 2 layers, we need a state that stores information about the cell being hovered over. You can create it with a useState statement. I usually call it interactionData in this website.

                                                                                              This state is passed to the Tooltip layer. The function to update it (the "setter") is passed to the Renderer layer. When the user hovers over a cell, this setter is triggered to update the state and thus the tooltip.

                                                                                              const [hoveredCell, setHoveredCell] = useState<InteractionData | null>(null);

                                                                                              → Hover, update state, render tooltips

                                                                                              The heatmap cells listen to onMouseEnter events and update the tooltip state (hoveredCell) with accurate coordinates when it happens.

                                                                                              This state is passed to the Tooltip component. It renders a div at the right position thanks to the information. A bit of smart css is used to make it pretty and include a little arrow.

                                                                                              ABCDEFGHIJABCDE

                                                                                              This heatmap has a tooltip. Hover over a cell to get its exact value.

                                                                                              There is much more to say about tooltips but hopefully that should get you started. Subscribe to the gallery, I'll post more on this topic soon.

                                                                                              Heatmap inspiration

                                                                                              If you're looking for inspiration to create your next Heatmap, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                              dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Heatmap looks good!

                                                                                              visit

                                                                                              Color legend

                                                                                              A heatmap uses a color scale to encode a numeric value into a color. As a result, it is very much advised to add a color legend to explicit how this color scale works.

                                                                                              Let's consider a variable that goes from 0 to 100. We want to encode 0 in blue and 100 in purple. The color scale is built thanks to the scaleLinear() function of d3 as described above.

                                                                                              020406080100

                                                                                              A color legend built with react, canvas and d3.

                                                                                              The trick here is to create a canvas element of the desired width and height. Then, loop from left to right and add one rectangle for each pixel with the corresponding color using the same color scale as the one used on the chart. It's important to do it in canvas: you don't want to add 300 elements in your DOM if your legend is 300px wide.

                                                                                              Once the canvas element is instantiated with a ref, you can draw the color scale thanks to a useEffect like this:

                                                                                              useEffect(() => {
                                                                                                 const canvas = canvasRef.current;
                                                                                                 const context = canvas?.getContext("2d");
                                                                                              @@ -98,4 +98,4 @@
                                                                                                           0px">0k1k2k

                                                                                              Number of Measles infected people over 70-some years and across all 50 states. Can you guess when a vaccine was introduced?

                                                                                              Contact

                                                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                -
                                                                                                \ No newline at end of file +
                                                                                                \ No newline at end of file diff --git a/hexbin-map.html b/hexbin-map.html index d0a308e0..b10e325a 100644 --- a/hexbin-map.html +++ b/hexbin-map.html @@ -1,4 +1,4 @@ -How to build a hexbin map component with React and D3.

                                                                                                Hexbin Map

                                                                                                Dataviz logo representing a MapHexbin chart.

                                                                                                A hexbin map is a visual representation of data that aggregates individual data points into hexagonal bins or cells, typically used for spatial analysis. It helps to condense large datasets and identify patterns or trends within specific geographic regions.

                                                                                                Two types of hexbin map exist. The first one is based on a geoJsonfile that provides the hexagon boundaries. It is similar to a choropleth map, with hexagons instead of real regions. The second is actually a 2d density chart, but with GPS locations for the x and y coordinates.

                                                                                                This page is a long form tutorial explaining how to build hexbin maps using react and d3.js. It provides interactive examples for both types of hexbin maps with code explanation and should get you started for your web app.

                                                                                                Useful links

                                                                                                Hexbin map from a geoJson file

                                                                                                Drawing a map using react and d3.js usually relies on a geoJson file. This file format provides information for geographical regions. It stores the 2d coordinates of shapes.

                                                                                                This is the way it looks:

                                                                                                {
                                                                                                +How to build a hexbin map component with React and D3.

                                                                                                Hexbin Map

                                                                                                Dataviz logo representing a MapHexbin chart.

                                                                                                A hexbin map is a visual representation of data that aggregates individual data points into hexagonal bins or cells, typically used for spatial analysis. It helps to condense large datasets and identify patterns or trends within specific geographic regions.

                                                                                                Two types of hexbin map exist. The first one is based on a geoJsonfile that provides the hexagon boundaries. It is similar to a choropleth map, with hexagons instead of real regions. The second is actually a 2d density chart, but with GPS locations for the x and y coordinates.

                                                                                                This page is a long form tutorial explaining how to build hexbin maps using react and d3.js. It provides interactive examples for both types of hexbin maps with code explanation and should get you started for your web app.

                                                                                                Useful links

                                                                                                Hexbin map from a geoJson file

                                                                                                Drawing a map using react and d3.js usually relies on a geoJson file. This file format provides information for geographical regions. It stores the 2d coordinates of shapes.

                                                                                                This is the way it looks:

                                                                                                {
                                                                                                   "type": "FeatureCollection",
                                                                                                   "features": [
                                                                                                       {
                                                                                                @@ -105,4 +105,4 @@
                                                                                                 }

                                                                                                I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                Hexbin inspiration

                                                                                                If you're looking for inspiration to create your next Hexbin, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Hexbin looks good!

                                                                                                visit

                                                                                                Contact

                                                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                  -
                                                                                                  \ No newline at end of file +
                                                                                                  \ No newline at end of file diff --git a/hierarchical-edge-bundling.html b/hierarchical-edge-bundling.html index 76eb7df1..2745338c 100644 --- a/hierarchical-edge-bundling.html +++ b/hierarchical-edge-bundling.html @@ -1,4 +1,4 @@ -Hierarchical Edge Bundling | React Graph Gallery

                                                                                                  Hierarchical edge bundling

                                                                                                  Dataviz logo representing a Bundle chart.

                                                                                                  A hierarchical edge bundling chart allows to visualize relationships between entities organized in a hierarchy. The idea is to bundle the adjacency edges together to decrease the clutter usually observed in complex networks.

                                                                                                  This page explains how to build a hierarchical edge bundling chart using d3.js to compute the node position, and React to render the nodes and edges. It starts by describing the required data format, explains how to build a very basic hierarchical edge bundling and then shows how to customize it.

                                                                                                  Useful links

                                                                                                  The Data

                                                                                                  The dataset describes a hierarchy using a recursive structure.

                                                                                                  Each item in this structure is called a node. The lowest nodes of the hierarchy being called leaves.

                                                                                                  The dataset is an object that has at least 3 properties: name, value and children. children is an array of nodes that have this structure too.

                                                                                                  This kind of data is very close to what's required for a dendrogram. But an additional property is added for the leaves: links. It provides a list of all the other leaves this leaf is connected with.

                                                                                                  Here is a minimal example of the data structure:

                                                                                                  const data = {
                                                                                                  +Hierarchical Edge Bundling | React Graph Gallery

                                                                                                  Hierarchical edge bundling

                                                                                                  Dataviz logo representing a Bundle chart.

                                                                                                  A hierarchical edge bundling chart allows to visualize relationships between entities organized in a hierarchy. The idea is to bundle the adjacency edges together to decrease the clutter usually observed in complex networks.

                                                                                                  This page explains how to build a hierarchical edge bundling chart using d3.js to compute the node position, and React to render the nodes and edges. It starts by describing the required data format, explains how to build a very basic hierarchical edge bundling and then shows how to customize it.

                                                                                                  Useful links

                                                                                                  The Data

                                                                                                  The dataset describes a hierarchy using a recursive structure.

                                                                                                  Each item in this structure is called a node. The lowest nodes of the hierarchy being called leaves.

                                                                                                  The dataset is an object that has at least 3 properties: name, value and children. children is an array of nodes that have this structure too.

                                                                                                  This kind of data is very close to what's required for a dendrogram. But an additional property is added for the leaves: links. It provides a list of all the other leaves this leaf is connected with.

                                                                                                  Here is a minimal example of the data structure:

                                                                                                  const data = {
                                                                                                     type: 'node',
                                                                                                     name: "boss",
                                                                                                     value: 2300,
                                                                                                  @@ -47,4 +47,4 @@
                                                                                                     });

                                                                                                  Resulting in our first hierarchical edge bundling example 🎉

                                                                                                  MarkRobertEmilyMarionEdyGabYanNicolasMalkiDjéJoeKarlMamTotoTuckYamMélanieEinstein

                                                                                                  A first hierarchical edge bundling chart made with d3 and react.

                                                                                                  Coming soon

                                                                                                  Using canvas for rendering is often a requirement when the number of nodes gets big. Interactivity is often necessary, for hover effect or to collapse a part of the tree. It also possible to map the node circle size to a numeric variable.

                                                                                                  This will come soon! I have a newsletter called the dataviz universe where I share my latest updates.

                                                                                                  Subscribe

                                                                                                  Contact

                                                                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                    -
                                                                                                    \ No newline at end of file +
                                                                                                    \ No newline at end of file diff --git a/histogram.html b/histogram.html index 99b35c1d..5a0b2d04 100644 --- a/histogram.html +++ b/histogram.html @@ -1,4 +1,4 @@ -How to build a histogram with React and D3.

                                                                                                    Histogram

                                                                                                    Dataviz logo representing a Histogram chart.

                                                                                                    A histogram is a chart type that shows the distribution of a numeric variable. This page is a step-by-step guide on how to build your own histogram for the web, using React and D3.js.

                                                                                                    It starts by describing how the data should be organized and how to initialize the histogram component. It then explains how to compute the buckets composing the histogram. Once this is done, it shows how to render the bars and suggests a few variations. 🙇‍♂️.

                                                                                                    Useful links

                                                                                                    The Data

                                                                                                    Building a histogram only requires a set of numeric values.

                                                                                                    As a result, the dataset is pretty simple: an array of numbers.


                                                                                                    Here is a minimal example of the data structure:

                                                                                                    const data = [1, 2, 2, 2, 3, 4, 5, 6, 6, 6, 9]

                                                                                                    Component skeleton

                                                                                                    The goal here is to create a Histogram component that will be stored in a Histogram.tsx file. This component requires 3 props to render: a width, a height, and some data.

                                                                                                    The shape of the data is described above. The width and height will be used to render an svg element in the DOM, in which we will insert the histogram.

                                                                                                    To put it in a nutshell, that's the skeleton of our Histogram component:

                                                                                                    import * as d3 from "d3"; // we will need d3.js
                                                                                                    +How to build a histogram with React and D3.

                                                                                                    Histogram

                                                                                                    Dataviz logo representing a Histogram chart.

                                                                                                    A histogram is a chart type that shows the distribution of a numeric variable. This page is a step-by-step guide on how to build your own histogram for the web, using React and D3.js.

                                                                                                    It starts by describing how the data should be organized and how to initialize the histogram component. It then explains how to compute the buckets composing the histogram. Once this is done, it shows how to render the bars and suggests a few variations. 🙇‍♂️.

                                                                                                    Useful links

                                                                                                    The Data

                                                                                                    Building a histogram only requires a set of numeric values.

                                                                                                    As a result, the dataset is pretty simple: an array of numbers.


                                                                                                    Here is a minimal example of the data structure:

                                                                                                    const data = [1, 2, 2, 2, 3, 4, 5, 6, 6, 6, 9]

                                                                                                    Component skeleton

                                                                                                    The goal here is to create a Histogram component that will be stored in a Histogram.tsx file. This component requires 3 props to render: a width, a height, and some data.

                                                                                                    The shape of the data is described above. The width and height will be used to render an svg element in the DOM, in which we will insert the histogram.

                                                                                                    To put it in a nutshell, that's the skeleton of our Histogram component:

                                                                                                    import * as d3 from "d3"; // we will need d3.js
                                                                                                     
                                                                                                     type HistogramProps = {
                                                                                                       width: number;
                                                                                                    @@ -82,7 +82,7 @@
                                                                                                       }, []);
                                                                                                     
                                                                                                       return dimensions;
                                                                                                    -}

                                                                                                    I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                    Histogram inspiration

                                                                                                    If you're looking for inspiration to create your next Histogram, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                    dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Histogram looks good!

                                                                                                    visit

                                                                                                    Variations

                                                                                                    Once you've understood how to build a basic histogram with d3 and react, it opens an infinite world of customization. Here are a few examples showing how to add several groups on the same axis or how to use small multiple with histograms to compare distributions.

                                                                                                    Click on the overview below to get details and code.


                                                                                                    picture of a mirror histogram made with react and d3.js

                                                                                                    Mirror histogram

                                                                                                    Create a mirror histogram to compare the distribution of 2 groups in a dataset

                                                                                                    Picture of a histogram with small multiple built with react and d3.js

                                                                                                    Small multiple

                                                                                                    Create one panel per group to show its distribution separately

                                                                                                    Picture of a histogram with multiple groups built with react and d3.js

                                                                                                    Multiple groups

                                                                                                    A histogram with <b>multiple</b> groups displayed on the same axis.

                                                                                                    Dataset transition

                                                                                                    The last step needed for a powerful histogram React component is a proper way to transition between various datasets. When the data prop updates, we need a stunning way to transition to the new values.

                                                                                                    There are many different strategies to approach this problem. I suggest to rely on the react-spring library that has everything we need to compute spring animations.

                                                                                                    Instead of rendering usual rect elements, the library provides a animated.rect element, that is linked to a useSpringhook.

                                                                                                    A histogram that smoothly transition from 1 dataset to another

                                                                                                    This is how the Rectangle component I use looks like:

                                                                                                    Rectangle: a component that animates the transition of a rect
                                                                                                    import { useSpring, animated } from "@react-spring/web";
                                                                                                    +}

                                                                                                    I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                    Histogram inspiration

                                                                                                    If you're looking for inspiration to create your next Histogram, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                    dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Histogram looks good!

                                                                                                    visit

                                                                                                    Variations

                                                                                                    Once you've understood how to build a basic histogram with d3 and react, it opens an infinite world of customization. Here are a few examples showing how to add several groups on the same axis or how to use small multiple with histograms to compare distributions.

                                                                                                    Click on the overview below to get details and code.


                                                                                                    picture of a mirror histogram made with react and d3.js

                                                                                                    Mirror histogram

                                                                                                    Create a mirror histogram to compare the distribution of 2 groups in a dataset

                                                                                                    Picture of a histogram with small multiple built with react and d3.js

                                                                                                    Small multiple

                                                                                                    Create one panel per group to show its distribution separately

                                                                                                    Picture of a histogram with multiple groups built with react and d3.js

                                                                                                    Multiple groups

                                                                                                    A histogram with <b>multiple</b> groups displayed on the same axis.

                                                                                                    Dataset transition

                                                                                                    The last step needed for a powerful histogram React component is a proper way to transition between various datasets. When the data prop updates, we need a stunning way to transition to the new values.

                                                                                                    There are many different strategies to approach this problem. I suggest to rely on the react-spring library that has everything we need to compute spring animations.

                                                                                                    Instead of rendering usual rect elements, the library provides a animated.rect element, that is linked to a useSpringhook.

                                                                                                    A histogram that smoothly transition from 1 dataset to another

                                                                                                    This is how the Rectangle component I use looks like:

                                                                                                    Rectangle: a component that animates the transition of a rect
                                                                                                    import { useSpring, animated } from "@react-spring/web";
                                                                                                     
                                                                                                     type RectangleProps = {
                                                                                                       width: number;
                                                                                                    @@ -123,4 +123,4 @@
                                                                                                     };

                                                                                                    Animation in dataviz using React is a big topic. It's impossible to go in depth here! I will publish a dedicated blog post on the topic soon. Please subscribe to the newsletter if you want to be notified.

                                                                                                    Contact

                                                                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                      -
                                                                                                      \ No newline at end of file +
                                                                                                      \ No newline at end of file diff --git a/img/d3-website-overview.png b/img/d3-website-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..24faddc7e8e8790e2b0d1388f02f73de01844be2 GIT binary patch literal 1481124 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 z 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

                                                                                                      H>ijMl&1MNNI61o%^Q*O(nO?#} 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 OXrSi0SL& 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ɖ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

                                                                                                      4O=gUUJ;aA*m^G5{5v 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

                                                                                                      WYN-?!ns9KP&2Th|*A080yzl-Q~cm$nb<61rt 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%0A11*6!2O#SCS!RqY|nRQ;? zlT3?`NW-%B?#kI#cXfEBZ4n42bb^=}>%2q_nEiZ*g}YR<*m6VJE!te*tGP-WgntO* zDOr+BEUN%HkL?z0q0HW>8l&w%4Wts-$4#>Rw^4S~`|un6#(BUnXR}>Pn)llV!@1V% z!(!k5-jd5-+y^}wIVSjuDVO-lQ%e5SCY45lV9*LwbV8OFc7wTaq#p7bDWICQwswMp zz1$Wkxi&=qaMQm>c)w0KDS6To4+h*32&)pwnJKp`FC-+I&8eNC8g4RZJ-*fbu6u#a zaI6{p02yPm7w3hO>1begT#*u0%EF^lVYDxzLSA4`D3oqb-OftxpRc|$4%>t#8>79} zV$1!TC`ib8tH+48(UzjIxD2;pne(#SY{l)w&TDAx$gb#OY{Nfz0Qde+l%0>ka?QU8 zr2p)%gu$axAlCc*hq;Ga6Ih!z+~D8sRU+tKV{Qd4NM|4vu$z2*owT??$ryvqTATUT z-gNo1fIb2|t0T#|W8eG^My(CLca>FU@>YE-Oa&lqWj`GQaBg3AW$^xSqS(gj-&Y&0 zHJwGhifMS~`n3)S1#kynB+r`bG`6?@`TRggpTA16WJ^dk)C{2Te;+q_ zD7vOpAGCR}_fvNbA`%?0@P<=Nj0bX)QSiyMFtl!wbG@ZN?vLVgctbaQe20{{;NnQD zlRBLmKX^kcGNiLEmwV81=3d_TV_nFG7RJnk1&d_9bS76g=2v+oi;hf|0-0()Ox4BG zZfbryBprw-CUQDbL=ZnIXUjLVI*%o6_Gitfq6mV$#o|$mJhiB^PVlc4sv0p<7P$x_ zi@_du8Dj<&9Q}E-SvCMF_ht6191x4OANGN9?@u*O{#b5so)TBfo73MH-A{Pcl?*Vu z^|foz`UUFPyFC>mn0%K1XFTCgSu%iXK4nTT z*ubDGE@oX|hX&(Q8-~xPi>OoHTRM}TG_|FE{ZhwkaQG+8U5~njLF67E_gF2u`jUnz zibV#HqsPXJrqY~URbQxr6F~e@7o>lz9$x|Onv)pDr#qgUjLzgO1az%(cS$dCn^`^L z1}A;)dIJPuWrUL5*!_A!&j`UJwi2Id2dvBV+j@sonA2~tuh-l&`8tLXT2aMG{$Tl1 z&QzJ@8^(pH*e=+nt8~5K>KHajDeUCoLqCEjH^WPjo?nnhNr8wk^opU8(F(&=7la!ZaonlUT8&FW#mbO!$T_O4e9jJicEm94 z^!v$-);nEjqeYr+nZZCsy@%J`6IRnv4fi!QZqTRY|D6c3!$}hc$C8ozMA7sAvjZd} zi1q`^kp8uCz3xAKRS~*-@=PXbo@Wi3=dIpVTX|)4%8zqup_b2u_iZA~?1Q0~FsxR~ z8wP2L89b*6Za$jagY~BrGLKP#36d4D7=6rX_)ZfOb;W<~vftk?L??TBOZ_HHlC|*^ z?BH1naJTlKWcz8>@O9*8F(KBw!xwkW>yqV%{OY>I>7B9;if!3s))p0=Y3rjf^rHk5LK zY{NM9pRX=^FZMaB_fX*`7|Q^zZ+timD$9BrbXhr{`#{wxh###SUq1teV^dzL*&n+d zF$e)j5{siVSl&5)(E+K&7&xn>F2JVZZ|ic#I}69y^K=-WF^mfYQ!+0)j^*G(*lD|b zp`-Eq^`!6Qwgo=hJ`M@)l@F!{gFoS-M@?$j!~qlflE{d5MU(xWtxMWu*d8p^k5zr- zz@f@2v^;$c7uX7N>W+44H2y~R8teYq2?G=YTmu?sT;Mz^jW$fLf#W=yljlpE7PAa0 z?nGVHx2N~Bkm%QAzcie}M7*QEeim245IB0>T`Ou+hzJ!QkJZh<05s-vr6pe~guz#^ zuu1Wj_ndN36ECl9!#tk6;EMN`rOl|Q47Nx(rr61S%rSoSTa+>{j{Y!D7WF6nV(sB} z^WyBKnp1Uybf8g7y$_v2^WN;B;q6Stno>LBdQG{al;K%N&bpSC7*mhhCXd@wRhl?d z;+%`HOxdV@?!s93>gJy;-kh~8+ncdBvf9@EO^ed|Y}BK_le|Sw3e3DykJ>}n@l|ju zWoV?}c9iokf;*<_jmGa?Bc)TMRoww|bGj2;9n^7wzEyME&JJA8kd8Rn)>M(Y>q&u7 zbGs*|*8?dS1_;d32rGgWCb<=m<-DyDg^$J9i^BDoIj6IIo2sA@W^7$4?ndQslEZkG zXr$5K!CUICpnwWMFcJj(tUfNZ4sVDEewV28-iFUbO+NjvxF;rYRl1Krl+2gqv^SwA z{^=IY0iuCK;y=ar@%ja6prbyoWic~{4pzkddz*bz=xsGc?tF}y=-P4x4X;Wz(*7v^ zh`P~7PP8HA7v!64)vFTqco)C8+~h01Czjz{L%lvVCIN%4aR}1#c2wFi8Y%i-qlgMG z=u%nN%U{>juljMC(Dm_;H1wtV*$9b^TlIX z&$uOzsxp=0&`IWt;?x8kZmoV3I-DL7w|nYu{>=XZon44Y#dP%6uc0T`=Y+tc?%99+eJC&30DK2=wxD0S6@kU>vv{Be_P)P#2M%7xDtMhNe;}2XEaUafJkpI zUo?IOjVZ-St6g)x6F7AEsD&X?X%&HuCDmnocHGDO4oN6pD;BR!Jm%hY+E+U_+3eh! ziO$W~2VUVRzF}(+F`=m_T-TEj#Qps*dAcJbQ1R zMj4ybrR(kc;S3J4VdpVso8bN3M_nKnE>w|n+TZ2`%R%DH-JPH!Y6D(Z(gm5&)BW*?Wy2pOW+lyxS>55znzH{wwrWL8?2-inAL&aHOtcbnxI3+&pJ zIjAc+>Lu@;`Xl&rGB6iRuG$Yx_2blD8E*Mz30iTUtNe8(+x0NDXFa=Ls&g z^@v6;!U6@m1EKDD$#h=CPv#f4w;o}qhZ_M%cILDA;(-Q6d#d~ z(vRS#_yVh@)GxQl&Y@14-EGYM-JY<>O~|TXI0!BJSZ=00jBK40KK7Hv5sJC9ZL^(G z?vgk72i$cqv`&w5n@IF1Y(ihbbQ^^v{vmtBu_DZ6X-;B1OMHi`B)00CNYrb_0CfbX z5QEJF*Ql$%gb8pEy$hGu9#^AqvgRh^13eC_-qq!tiL9RF*yPF7bnU~Y;g+)QwbxwB zal@rClz_=WvfrqV3W1hmdMUr?or!aorI|#U7~}M`daJ7aOGVjcmMSwA=3e|PQAf35 zx9}+u&KzK{Ci3gB=8CE8>L1egzX8D%@*&LO;CFL(|Ey&nmbJOd{tsg&5kxZ&nOj+q zzQ?-Xjy><)HQE4FgrX#~S=*(-);N$5tfEM&&?Q}ykuDH#U+KOk4iSA*Xk*#ek)55K zi{s{#on~m#gG2VwqvCegkx?1eb!}^j)Vgc`y%|pDf}qpdpBJ1b78brx{xYueU*xiR zm)rJxmnEW8Wt=6Z1vXDLN&p4tA+%yqu8k&uLjh?4zQ1q4(c330<0jUK05q8*~FH$@DVNTPcFVSfM}SS1&ZSmlGaA44_S?X_8s!A z%*+9d7!q=>axxRV=x=#J!WhmU>^OTts3-n$Axyl6Vc0?CJrfDpNaKlePox|++0 zIqdQzbs~0xk@^Gg<@_f#L>Z$qPYP0a8l>U#MFdQu;*P17qUe~!Ws_}3(-S$klTR~u zQm0*4a<*t+v;sN*?^L~@+pC-tZo>SmD22-{q!gA-qg<+@nw%VK#So+YSN;sN;b!{8 zkMILDGsaylnW3@qjy55lMeBHTZDCnG=stdIGUzs*zCc|hTV_lii}7<`LnQfkXj24B z2=AKSYm=bOpBIG)}>v)rwIFkwUw zPfog9g!FCt$@Xm)qPu0@Ev4stDr{Ywk?B1-RQ zd#fRNdGZea%vn>GhcruZL_YIs?uXwnYRICAzi^7k*}usAL;r2L-Fb}*`3V0O*%9HBPuoM474?wNt%9YYs z(<31o<_5;Oy&1%oC2iZkTJ7emzM=gdM@564Zc*tj?e;W^%eXh3u(^%@WuW+Ktt**@ ztRd3Z{ydp|qu8IA3a3+9f&L>{ZLgy|dNpV9n^-DWDAk z=Q3?J)>nU9Z4u}PW9WI*c#ZLc^H(xMpYm3&?^SGX_trF3;i*f09kb3<6M@JH9;7j) z*_&9*n9}$PDY@4>=T)>%s#d2j2+0b@$;R)9$=67=r>PPY8m`2DZPOiMcJ_Tj-)9I6 z9d~gxl&BbHF{=pUa6_DTLG4~^Ovx!%Kcf#wXdT?XCs=d)-nf$WI=!ui$q_MT8@l(5>WAIGtf zS{Bz7_1E<3hN4IWHaJ&M?#@sW*-|Rwwt)HpsL?#O}Cm z+xe#Bbw^|G*)?|L%abSB61ZILD@KL|#KuWSijxAIw#hU|O0g0`1}0u?#!G zu+8`~$4}sP0ZiM^)BwIdFvJ!We{tR!AI6 zh9B);pkj`pyT+!{V2Tw%^U)0$4sS=lkRZ*}Y~ZE%rv|w6@pnuJ`nk4Cpo3)pC>ktpY<#4#LgMM|g#c*&XXX7OrvH>%Yy7{v; zdGUh41kTeCY?;+Zb}@;-3ou~{P$;9*!;1!&s-t1G6~A)7q$YXxchTLgHYCD$=Mtth zFE9z=Fi?eHCKCi~0m*Yn#eP7(#_NY-{$Wvz5?@I$Q?Yh=3eX(yjstcK40K%}*K;Io zqu<=hu%?twkzQtn&pr`JcIL_LP1UXDlly(_?s?A6IH0;f9{lFLa8X)@1E1QX)D*ZJ zll%M+=Mxf^5%KZF7x*u0@LWdYtv|L^r2ruJ4v1u($C|S+_K#h?Lhu0E_|e=)pMtL3 zzwCk75r%%69T%@x47bE@zCPv_tEl?|ru-ww7j8*3WJ;i2Z9Q`6x~8j_rE22ba;Bh@ zSTblxHIWfECDn=6Z*)q@sOAi3|Kx7UME3=jo16K{a)p*-1B#`my_^gDbFgfCnjnFg zR+wH>PK$5sNcHwB3bv1Drk8i1%HS5_M)sfn&wq*!3v@5K9x_FFd8 zo(U>?YSxCP^DtO_f%f9zyu^Mlkze#wHgH?P&l3OWd7=FY8$(w7{p38I!0#AxRI;Bz z;@o)dz3oAocH=IxG&3*0&$@l$`nBa4^TRI~jl0jJc*)2s|254qSM}y!sA6a7bm-+< z-^hxLv&vK_H;(q7wZ5dt7shj?juyS{uf!J@POheAubdVk)uSL&cJO z@#XHDfYo_yxK@4QaY8G+JlcbOF!)H zmlwRM^DnXe+c|0(=eiu1^?hm-bLqIbdKALoL(0Li_Y{S9`+!g@Vvuw1=YcLUCEHcC z?RI8V&7V7Z`l!#oa9=3|IF7wE@cMY=?$|rM-+!G=cJS4Gjde~Mi!T#ht^nQMH*)Bf z{GIQ)g~QZrfN%wEoQo$<{*ulNZvj>8(5+@2myoI74|e3Xz_tgP%g#J8h87Ur>H1_H zmL7P^4mBx|sw4#E>i}zI#R)1XCfK<)t_}N7Bw{)LYPUDdmYijMgo<-H7M}^UGF7DM zMB3xf%7^Ij%EW6^_~xeu8MYW)3!S<7C-C+UZP*#t7;%&A)tdZIyt4rhM}>_1=4kEy z$YE`PUh)34=-+0eGBBv-;P|jLDLQf}&$#v)v}gw^$JVgyKN)=CllAS^|9w$?%;V7O zikVQ5_M~*;+2fBX?|ld8PU$`}6Cn9cMSxnraXH}Yl^ud3ALzM392zED9|CEJwDBJ? z2Wvq5M#Uz*ewW`38{tsWMpsb2!h4PkE@(6;e*>Yk(_g8owJd+^)R8odN3clyHo)d- zu-`$D8%(W<@TOTX?sn(O!2mMgZ0pHw6m$~faX=r)*?N9;kVKXg{fDLOgD5t*h611n z(7}lZ5LE4&EJK(3#vvr8)GMG+?n=D9vG}*x_>^OK$-j);@we?K6{JkC_MSIs)NFC_ zUmhqG4R2#vVmDI+Jz&WyIsY>E!pbsUKfJv>Xzx&xDVZ3QYa$4~NNq=?QhlPvFl;37 zD@2&Qx~%1J($&?~qc4=-X~T(ZOgMLQwna~_%v`-T_A!@Unt610!pv6L_@IAl`ru#m z(d!F2S>K4+e$FD)%!9iuy8L@=QFO*SRo64@PYqJ=J^h*erhL|*avTd^qX{*cJ!M<% zkJdo&oI4Blb#iUI`ePE0r&=6yLtnV{#`NbqTJ_&k^5AmpWU#Flla!`9qW{4<;lzs) zH?a~gQ&S7M)Q1na!ojpv7m2IdJHLF@H*>QS)wqEgA<7&=#2a$T*zlWsbs4pXlgtOM zz-uSwqvNR{65+$;Yx%=3ErIsWQ8~^*?12ZI!C&l1vdY)@G)A6@NHD(FSbk=dZ%@kh zJr*TZf}mUaL!3NuZONy81pkGMx%9*oAAP6;~tgmnyl8Cd@tn)LyAx{iX`1$>?8O8C~E!VT^6s zSL4zsJAKjflCQ6`k6N~jehl(Mv^?sE_`rr%tCBO#Bl}v@yvF^7G7;w z^K@fgl!*?Ss}5J!QUGd(%LgQo;moK&PWv3RsxdMHuk_WfgH@BBCW#!wq*XVtVEbw2 zD>6mAswIi=*c!C#riyEgKwq~$)HpqhXNa_&VuWIEnLW)n*|IV>gWBcSXNB*%DgNIY z=E70g9(_m+f;*r4lp8j>>2DSz%h2Mz=?kEvg(^G0G z=5N>ps3QP)(Wzwh8@r7;`)lW8f0BXmL}G@HY!cGp*qXF4G4SIaJg}}&ocWP&4T+V$ zOgcVM_K+jcqvH=osWWWK$r%byzqoy054XL}JFvGUj@Ul$GPfJmv;u$KT>Oqz={^=( zC6a-3VY@hL=%0s(@@J+Ef8;s8$u&Nk>xd1xq|Mi^b{`Pi)GSLX_B7^UCDB8c(Ffj` zJu;CEhaB2g>jL1?^0&iy^pBIAV}q$6b0PM@{?l&{&_fNfi$NI0JJ8G77!`N*rE6lk z$~RWAuAI^{vM=$Wl6JI%cc}CTs6b&9{tc}2D0=6Pj)8nl3WpK$x1>)}bd*HA#CjAk9w^dOMUElybkz3r&FrShG3`=n8v#5Md@e6HFf1!}scg zE>Rb&sRw)eFR+N|>|?9HhBUu)<;5|XNdE}qC7BrIc9nnyfFJX8gUg04cp}H_RVFHq zOkM@?$L(G-A*0(aH;w7%+6%0t9SwNweJcR*Oirm2Iyd=yr6!lEl6!tG55|iDpQr$G zDESTvV*~xbhuLFj)0qG2WsqlJ3`wit9$LN#zTV?AGBJ6r47ZtcwfLhPbWUf5ZFi&D zU@F#wIR-Eb+i_c+o3{SNKnrdd_r{Q$H|Pla_Fbc`z%g>&!fEnube2bMsr7=W3>TRs z;|CuRt$uUfKd8ebV}_e%*yeTl#sK`u(9#J9cWXmu(AaKTyuZc5Wdk;$@a#_c>5-r} zkIjB_8wVwcz4YDrZCuUirf=ab0ndLvxs5SlQr*4P^k)N67j6LtV*5V>hxBFd<`s+2 zl!C}jR6#gVe%uTVTi&wZ!s)wb?J6;#V+#H&v;+~D(QQ}smQsbfF~Z_$=B#&{qS2`2 zITLM7l0t#4t!5iqHA_nXZF_Dtl{XE7W#b@s)*U+CJ2fLJ(vLZ|a=cMGE-x3rPmJ zVQIzp>uRG!VuH11b;h@u#264SGQd<#%?AXcxwu_h*f z8Bg)A{8;mgdbS15sCbhRmBQvuBk2E@Ut zM6ubbtQJ%)Qn8P>cC{={e;W-5JlFl4;5I75Cb*`ItZXv9qD%m~)2Sr=gG>N4Wrqsh zo`9asw}*o4?d`$APOyIQYua=8;jJN$2QmI(1R`7v2kv6yk1{?%VX$NG2m_=W(W;$qleMCm^ zU|RMagWylj(O5NqC~2h+IB|O`38c$1AT@e|HyPzm2`HuY8dR*pfy)ZQW{kmQjHiqs z;g@Qcp>EYTY|8i8zZx#Ab;#d#dk&|Ns*T;6?3!$Z^4oR#W>Jz91Sv|9B*|->0_C@o z-i;pu4X{Qbf!?KM)p}ZO_UEnfDZc6*hkzdlMC;Lo$^Bp0Ui*FTT9#2(XY0gtKf?&$ z_0Lg;K;)6`r1RaNBsPwrvU2HXk&CLQY~OhkUl^|1b?@xq^;;8UoNffPj+(czdI$?6 zt8QbVy!NY4Hkpv+SKD`dr5E)VZbp=Jx#%qI-f* z+NUA8LO%F1837Ih*8e7nEzfN9eRn-pU4b{nlMfck5TO2zhW*Z@wnX)yENSun#bZ6U zw?8kq+nBNE?avu982inijdl7er6k3Lzai9}Cf-5^-r<9OO^K?`_j3MV}OBgN8ziv&9N_7adZz3hudpg`aShxH~() z#?jXsoBMQ$-fx>d|D|31S3Yx{>0c%JaJ+_UUUn|iUS}FGxz^NL|9}(rI8@!vEF}K3 z=NGgu$_)`uqKdG*<&aue?>8fCKCvNh2uz(S;Zro>A>U>H1n(mEy;DQHT%MXsO{FP( zwB5tN_CZVTGJ07JLoQxshlrdqBn-!+PGh?wOU?>HI`lo9D2lMXkaOy{n4=BSYN+{|)XP1V1Xck^5{%_>g&UCCWg8e%frW8; zhQW^2)kJe>8Sji?%M^A~1v6MjrT}s&*hl@&+$i7AU z>Qf<6(`%LQZVB6~*xO#F1~ZF!bEv!q-$9162aDIbhs&h z_V?)-BXe@5qr*YZU>|oyM=6B?~&2P}}L2sq6Nk@pn zK8NaY_Q#z0{?T%IQ;l)Ue>`=gsjx`vDc(PT&IK&}M}oQmjoxc9%%+ar3sE3uT3ESF z%7WfC&$xNE{LeXBE(@eSDthbaVPmQf7n%1{rJ8ahpnnGr-PjrAo^RS=kYF~`WtFZ7 zYGws%eYnBdr>lwxIWXlBCL*0zaZlR|a7P&cBc!#QJ-6Wn9bwI*Wzm^;tN6Bf8~=9} zfKhiK;FU0L%UNG4AU*e0h&3&#H6;+S___=fzUWm6Ts&kj>UsiN2QzdeChut4s$y?d z;;9H2db*6eB{L;yi9wwF)c!0G%rnB&qhPl+Upq~KFH`E}Ayz}*c!kVJ5COTw5Th0) z-R=Ofp{EM&{ogJPkpdUB%y+1hAo?tr-|cQrT$P`La3!1A>8Ruh16S7Lyy|2vpgu)G zzteI{G8p3nr7tdSMA6n?(z`-$Kv;|v_{2PkuN1QJMJhxr`1WNs{v4J@MS)>!3{UQF zJBQY_Rr(WA)BD1xF%Un0fiF%wpd5Drqr03N&aD~kyn6=i5`SLtz_jAZUe8AhRMyIs z_IU0Z!r|Qqw|#VZ54yJ)AsYtT+hb&*Q;Nx6`&9*3klly_8tP& zF1?8T7=m84{9$ON9X)=;K!08QJKP`yxGpn><@e~V1yGPc`QoE*_%YrkG10Du^&?eG zBx2z$Wn>+~Ia`|{#z0>~(JYJ+wKr-|BIlY(7!tYshXlF>(~+=*r9%vZ{pTzP2(NDU zV404&Cqbw3x7GB}@0Bk)Xo+h~kKrFjF0RUYFXA5Vm-Z6Zn$u@t1_MuAA8?3qjum&= zi0aeGO!OKgc_g)(YyZ%SCB%ApAwZeB-NsuLgp5H3N_l3i8TOkznzm50TnpHv zHdXHd*OB>6KBl#GlWRA;YN+&`DN$jEd&K7LC-!?A&WjWyjv=BHlC~5vAaA;WZxSnr zi~IM^`P!J+60x60%~6C4>UG{;Q~lT}M2Nmr*UZF{b8^37Nw=iX+zQ)acxXazv zAk7cfPdJe4p2_QaHL=kwEb4iu=;0PnBymm4URhtCI6`nE)l=>IUIlkK$Zc_U{hv>;-{U&t8>5!j2)fXjm4mI1_MO(Hq%gW0$ z5ZB*wcCKsopm93((d8`}7DnoDW>xA8kA-r}!GE~W49;nK^k|e|&~KR|j;qMcChkPp zazo)0+XL;TqRs!h1GD}q%BWv*om43oS4ebPCRzWTJy`?W`5X#80V)H8#e(gHYr13RH`l*ldwg{dd{x5x80ip*L{nq-t+TZO14{Bh{PP&(dx+O%2_(+Ep|5l7{dEo?yTK{2c`*254JTS9 zKEb6=AwMC1XN0{5YJnu?s=dppm zz8+vcLxc}m8HVp-hNQC*m6Lhh^TU(P^iV$xus&rdSma2BrsK`9gN=wq*w+{QvWqO^lttg^n^q^O)-jDXif-Y=tH%|hSWNt3Z_TAL`#<7POZ7O$jgKo;a zC%xOQ{QQu$G`3`Bk87nr#1ke9ye*hlKDYkp@BWqNdB#X@K*?rMosPPRs#Fz#X$7DvCTG)Pahfq5yepPisg(AH+pda1Yd=e zdUsP&{060RuJq^jPaHog4BxByV~gQ=)$uJJp=^U8y_gFKlf5@Qq>&vf$nH&j^Kz zh?s*?xc5kJS}Xm(9+uvQ%K|%!ja4S2oCP#j9I$4>J*Jb_|AgAEiNha}Pnf=?^LDy> zBAaHS{V`%Qs;J(;t-^@tkB>C69>Wle;H zU^qZt@2;U%)<*0|wDWZS&01%I1e`1_mWx!0(k4cNJAu1yrlG+)(psF+qK|$YIGTm7 zA2pV0%P~}V@lu07kdmw1E5?aT;Y2rS9}pfeGtCpSyW zu&z#bDabc0^=`^J!#_cFyJ%ia?Nm1NxPNRB=TzE4cBdh5Ij1xvxQTLbz+ys3t{^5M zxYx_i!c~SFU%$Ubc5B+NU06l1J5Q)SZZFo1k#^kidKV*$uJf@f*n>^R4sElRw(iKM80N+O;PW5C7s1xu0p^ofSp*ypeW1Mx4Eflr3{-<=C4 zkOyJZh>FF#=EOOGQ8mp%E2>6-7c2U9K`c3nX@dURGCG^`|0VY$uIa!rCiKmIOfw+6k8 zyT0}3@u5S3_Ha*Wc`4JdC~;v9YGEPS%1Doh~)i}Ht;DyMF|4AN8af1oM zz)+Ysl=b23#3N_aHq7>q{#*&Wix=ssVr$(8dM_GVb<9Gqu~#8nL;y*OPoHIhz$A*h z)ghc3U{%xmYjMOa_6VrL?aNJaQ!%Fr8<@`e1(^{=3OFFs@{}B~Q@ZSwBlf(eGP=o( zItWiLiLZx=8zY0i<&+acoT>5c{@)ydmv!Pr^m0Y4HNomVN?Za#VBd2xH2UF{w1WO5pexy%z8St zyJiaJacv`r|Gv;ek*po=T;u6^mBB~7-Wz%c`O=?pBYst! zjM2%wdALMo=02Q>dQZU!y{EcS&_zWh41Ub~*stJFB4upZ0JyU5l=FQn8ut{Pn<8=~ zo8(`+HvghNiPB08TtvutM#g`ERGenkwz8H58N=&Va(J$(+F{9=wSg|xM&8>)C`Dbh zsK#FEm>bRe8nkJuT6-t75u*Ao)Ze#C zmqZu`tA?1Ct-WH|`n->7^7XOQp{g&ELm-O%=1%pyDw{PKIQBm6T{`I}Eb#yX^W)lP zF`R}r(r8V~fYP;niHg1)!v#^p)-?HC`3AJ(@h_k@E63v$`ZN6kADt7hlIqgz^T|yN zMAQ2JFn~jp8FlTilBaIUYez;#Fi61e?$}wzmGIM$M0c;i|HIZ-#zp;a>&^@eEg{_? z(%oGmAcBN+my~oj42^(*(lwxz2-3{}11L2#(k%=~ch{Z&K4+iLz586&E8hIxty$~) ztS9*zjZGA>TjU{v34&`vtlHV)Ux2;VBlZk+_Ym`H@I4 z0X>JohiiP|!-Go;bk~x9*vI*PGUb+Dz}#CvHSXytLss_?CC>1nx`8dFTxP;|05RRx zr@Se?k#^dwd>l+vJn{<4BJjKR(#nd0^tq31?%-dY{YTDko)?k|ltJPdUGh5H5`R*K zw^o2@;>WyxBlHTx7Jk#sqXXwe-*;jl(oB&+6u&df6*Sn$?aB!E&G!c_Dnx<>@cZca z=B>>E^$K!w-ba*9n2RnA%`?|7WRRt`I~o!-8?Y7)O@@@#)MmV}|1LNTe0e%polut2 zywXPELm{9P7C_`7w5L5_^%MNZm^Km&iJz;Y%DwU35MkU{c@OwHsZ~=-x^G+3ur#*( zO;&Cl=1zuiuBp<=h{e`4bgG zUv?8ZV_!DOsxB=D%S{1|7>pcBkJ*G#lETv(9~pvCIekf-k3k0aBdr$x1=pMC(hv-QC@tR z+%QEN@C+gYx5Jy!GiItCw?Q|&qo;;9A6skmo|&C9+l3rt8DD`!7~Q6TLy2b$_YQyE zbg~L3oEK`?8460$3Ezrw%TXb%Dr{C73s;Wba7s?@%bNV`$yaJhu@BTSU6`Mn8whtj zg*EB>n@i*WZW*XvI}&;bk7ra5x;%Gdq3tJEdm8T)RY|D#Qw>3WNmmpluJehP8-+nq zeWU+r_u#%2ZQd6D6+$H>wZC8HI-^#BEWBeQzV1zG%Z<7Im+l6xochsk|M3|(TnQ=7 z^jh~{$GC5$t|9f}+%&hz{+|wIisE6c=l5nmvOt#s!YFTH?z~$nw^02Y2qvM`KQR8X zmdIbi4zF*~Oh5Lh@&9#z`@g8K|L&$El>GoM?%lNOy^%1_KvgG17Zk4Z>i^f;Ahee-VxRnfjN$TBS{hUyF?-h|im@cUHq zEAZ+00cBv+C%mb1UG{kK$mGda;N8Q!c@ z>fT;b$aurPNe*I>unrq%Hro#qmX4sOJ^g0)>Z}{{1rZ+g%Pet^8(F(q@V+Q;hV*H2 zVg%U>;*t2yk_jvb+=m(1K< zqZf{@Q)@B@h9lhgx8ifFPV3F9zQ>Hab?qHW7{z-MX?ne^L2QlH7FL{L~1Y|2Fh_6;_Zj>Ob{g{p1mR z>MVGNasc7Y;J$+-9qUJjh#wR`y9}) z+3bbs&0Lr3;OevEt`Qa=7y1Ij)e-}neKQK2R98Ks^p9-c+Citz-l(h3Y@RG;BF=CBOZP4Q2P1UtmS>uxRqyJ^O`EY$bDKNbo9o{gs8npgV z)WU^~)iU%8`HmgK^H35zU4z7HKG`^6tv3L#0qqP;-t!5dLpfK(m3O3QhM7i5tBea6Kx6P0_Si>5s7c{6LqJ9ofVqu?37_W)5BUh->!s#?Q5CoY>KXeSr0PEM|@S^j#G3 zg;uEC)~E?tEA*1W*&xb1_HjT>Rs~w4T{XfGk~edT>m&u5d~!W=?#1SiD(^zL$Q~v>{&VR!vqv&&$bU zMQM9^)9j|O^M>ypIeJ)3aJXL_*!JFT_1b1>gbD6$QS*452LExkllH4( zJbFIM78pl2qlu1z(E3`5@k8 zfatsaq|f8p93);DtNcGZ<^PMK|F`0MD+9D&6}<1bJ%b817a(+_E3JjDl+7@evmf2P zm1_%c)wsYHOCCM6FpvH8hQb#v9&Y0Su_SWG4q{BMIpte2%2IJP>q76Up;;rhstvWn z%%XH#9RK(P1wRmy9MS1#ei(g`ORN44!KPgY_iwXc8C*?YvkUU~7Z-$)vItbNL+TnQ z4`5EWsQi#^`o~^bb%%h>A9qE?`3HKw0t3VRKfTR+CHVf2 zW%)_psgiMH>HYQEGNC8^((i?*uYe?U>JSO|>gLn;hIUm*pKRhOI+@}*>}WKuBqdX* zxzjW%94EPb96(`b5{EVx){ZW{7TV29g-+f)81mJY_fvLlGgjq zP!oQAMuY_*v4cV{Tt$gqfBE$3J#lTv1L&R731DxDHr}i+d_Qrjy3k$JT7UOQC97le z2@Q?s^9TVG9CD$&Iy{e4wq(SsLK=pAJS4N+u`@sMrocGDR{U`~Dc8B|~XRX;JhRFD;nUHfz!^V9*l(I4p14QlxhBtww zeX!*<28~B0@+>WHFDp7bC6pbWJ^+Jh=1I1a^X!t~F}_U`q1SbtDxp`h4=mDeSJ6y? zIA7{}+arVIZU#}t>rE^E!ol|!oZIJ|xDG_Xlx`s-2eaWB?$<5Y<@4HRiprcF;{ zGvA(g7DJsYvURd_ zvsW6J7s@nTGrH8;2u(kpNza&&>Nt#qVeZCo_LJ7k%VOeS{lv)*=(OfWZF01VhCS}$ zLs+}YFw|SCg^*rL=1;?;6A9boWT1)96fD-*#i-dxbZ}e02ifebnDsr>#H^trTLbo+ zZ}pJ;vWUXY--$I!fnw*mHgzNIZre_d=zi@X$_O~2@8817{}4v~*LLXF!8Z0l@VF+s z!TTVff`SK8g6LEEux@mDrr_2L!-Ua36oF6+tH_2A!|W|17lUe(1y>o55i$Bdj6lf# zU%fD$c6i-=8=u!9Z36p4e4C%x7SB+lawenSt+P&wer8NeF;wa|+TN}wx7&_#@4TWI z7%X$O8gVwROpnyA0(})AUZO|c@Y=b!+!}|(vc7_T-+Lj`6rpKR2`MSr**(e*4wk9Y z#+(k7?KmPUz$+g0{D>1!|0^Q66<|e+;K&$*bGwB{^g9@9d1bqJnMn=H>9S@DpKWAV zK}F{K-{6DT@-jJtsI!Do%um2HOod3iF#unGH>f>me({1DT8-&+zWN}RkMC`$rU(8w zYZjfe&09X71h%G6%n<1LR06m$v|xZs8f#h0;|_zN5c(D^l&IPg$YY!=8vs9JjzYV} zUZm&71pL8L+zUCz`T`69wdgO%O^eC3jO)sAT~Gn>l-d#g^_i2I#Gl?j z8KZ+_KRvku4;sc;gTa|8LQN&>x~7lKroSm$FM#v+g}5aQ+y(sJ!o#ajF?r-b10W+s zUb8T3_z8p9nzT+2AXv4BXrF0Hv*MA<%SKY?Y~|rjS@Y#SU>*BN;@zJ0ybc3Hk}&Q& zF{4Kc@n8{W^MJSc7Ic`&&LfTrG*N6AOG_pg-v!8`>mXQPIiJ`-7DtSrmDzbay6iU2!#{T~%LwJVTE!|`rYqOS8u1}5qMwro=0N0ABTS7t>A zrL)Mlksc^bQyy96bW;2C38oOT4o7_;`5W7BzxGrjGfB7_q3dqaec3*_MEJ53gYJ`w zZABliQPxi*SwSybVrTw?qVccu6bkde0M9@EF~5uF`UR`j{H7nmA8ndcTLMR@0yRR; zHO+6pM&KLp;|(%zFKVa)V37?e0BO$+H08-Tp{c*VY!aQ=Z>pih=54Y?!CG(pqt)Nl zkRR}E1an%nJ^AhL(sj6P!p9dma77rW&Dr+Ba(hn5Q3UVWE5|`T60}Z+f?{^j%R|n{SP> zI5uj{fkQsW4pv7?6Im{tTU8##JQUzOViRv3P%Z-2!OxVWcrY;`l=DgG- zIa{r4z!1G*LhIs^KYg2-A|}OsSmy0X!UMQ-8R83(^SrHpiUbdChp93GA?KD_%A}WG zS(hMre`YeJh+vH3IIA-pO|MA9NPhi7evROlPj7xwmcOxM4CCU`gk*EiQvi||GAza@ zsL0?!)L*bmW-y_42amFWuJcYapNhATl!pmn4A^9b&&ylOzw3H58EGreCMMI=%KnXD zqIr1ofcD_};1Wa1Xjn_yxTn_;y;F($`-4Z=^NV(LW6SWCi^1`95f=gj00mANG;Aw# z^(u$jM-@9b^}|V-VqB!Mr}Lw_Kt<7t=t6X>{HyMM)-Rn-5|2Fr)_JRbO|3S$K9uDV z`)A~<)=RxsUL$28oP3FzB!F20W}uS1=*V;?$mof|_ejD+1t`tCGA^fSb{%YM8ClG` zi#T)=LasQPmg=yQ(xb@+M%Q#bmO)b_#ywWA1Ooj`0UE@yP&umDmlFI!`$?A}4xJOH zkxt_8V_d^0N2)fk`RGazDpM8MJ1@$`SdM8LL_H`2kv+bZ899N(P}Z$G>{qZN zf*+=0D;kHsOoA(!nbw_tu$AU`RqB3sW4168hhX!qf!(^R*7b)gr%r-wgAVh`{K|zp z33rqmu6JAGwrlh>di_i5+eF^JOv{NUf@WLH!P=QYIT^>X6`h~WCU=^xM+LlLJk}wb zlo#tNb?Uvl4WH`cyPafD)6zmCZe@sy+7{!IJ!d{HQB(~az3qi*uo5q)94kc-@`|Wl zd5K;=W3E;aXPNPm^?E2~Uh)cXXjQW_nEVQFRhvjj|8kxk=>PPU|E=0grN(Hz4VQ80 zZh-fqfT73=r3#|{%g9l!uU2~5?v(o}`0@N_x1YR0!$uwIRJ zR3aMnRT%#5@f!z+VPR~c|5Y%Vrxds%_B$0VEMY8R`U)T@&RFp83LKMx$PJ%Qb{0{# z9-g8j>ma2vHn)$H&GZ3a`Gv{0r&*o3N;?BaqnxYj3hGPd>-c|~qXCfX?~7X7Bs)^u zrvkY-(fL6qDqiOgw};9m;IM@zSIpRB6eZ)1j=IuCmX?Ey0UsULf(EOaO@iP>?ipr* z$&;3R>NzaBoKDd2)K|Dgke<4&FJg<}q4n;(w37`nkkGaUcIdNdZ8db+>(H*;Zzt9G zbamzi9An3F%GqU4#_v{bTT1EkVP55@uE?#&+*c+K)2=U)JfbOB`UBup& z5pm!w8dS5vzKvXAEZNeb%zWGyM&H86aYM-LW zjJ3*>gfUV5FnxVIBhMj-i{%?lwPL&TgNTtkDIA0VbS1zB-vIXO=`BEaa0LT(3Qp}U zxFechPcElqImdRgi2v`c?+~QUIgV0Qc<;J@itIctJd?`(N!Zcn)1uO)2JDBl;3p#_ zSk7#WnVhg1BY}HvK(7doSnQmHN+k{yJ zwrd@*+@X(!)_F#b_~NxKt`B}Nzu#Qoh;-ymx6Rl#=ImxWim0|3do~UH8Q7SZyKn#46KFdpJ1Y zB>POw6{k)uI$f(5JNviyj)3sJZlbF|=Yg0<(7l^Bw7$c4NSJ$)9ryI6vP67q`+dN~ z&e)wvl3|qwLik;Kf?bx{Wsiw*a6q1(rM`{yOxA0(DgnGVQZ9s;58p zkMMI(c=B$R``2z1R^$1wItV|A_!d8PGvjT2U)Z_K`?}4C=S0A9*~ao+WoNC^8^_}e z)-a<7nT2hU@f6#Z1Zvxx+UgO(O2NI!lnXA)rD*q1@`lv4+kW3quhl9o^A0(<`@Yen z?;0&nUOJTA)^jZoILkUvivCuqGL<#mYVb=zWik9m!FQR$YC;z~xsKM)iB#9?RaO^L z;0o$WfvXpjlNo6EL4i!c;?lS({v0zYZRKJI4lzXQLSV(81_E^RDwIxiWS%E#f>C-xUWdyW)UmzqKK`J zgPUKBTL^3kUA!lVO>_T+9ryyeop;O=B=KMmH36cc%uJNOSSE(QVB;8jlsi2D?Bc#_ z%*7i#UX}Ov@+n1WnStMzXq1$WHp?!@GjTUtJn5Qgv&JzZE_NVZ9IWX6Z`>-N8}#h- znPwJiFJw}QA`UiQMuBI%o^!HE5sGc+ev#aglR~w8Z;IF|{nk7zWJp6`k z9TJu#kn16Kr5l9{n;KoENz;VqW3rv}Ouan3?#yA%u?P)JWYEt$Pg=;6?^vtJ(I%vT zQUgJ;o^14KXAD-tPehI{9Puif)VnO&vFWT703W@HcOCOCYe9XBKOR}FJDl#wkI%UvP8T-R-t^gc8a5Ca-uqhe zbMq$sjF#Akiv4M4Q$-WXcPkmk7Zt(7HG7N}*_$(t7T+*p1(pf4mouUU4omp1VfI|X z0n!f@fm-%UCW7A5>%!8LLu=5kuKHs$2rxa>hK^A}fw@4$l~ zlXXw$DwzN7lV#72-OP2r+!K{1v&%%G=|#~D2~_38h!6K0VQK0@NOxx`FnFgC2)y7F*vI@ zjlQ93UUeG($8b7Cz$J5AVy{oMxLA1R`Pl!eqkz{I6<_5ZVph*-UaYsOthO-$ho6kt z)}4UmlA4V?&GkV`EHMl9sw5y-xCMJPIdv0O`W_{#oA{NnI-N8Zea9}luDVUo(t%NX z1{+ZHHdF2a*_eMigl{Tt+cW#7zG>t7BKFKAz4MgdA(@{SG4Q#qRJ^?z{kcqzEC;UI-_Z=#Tn>+Nq~R8yeSkPRh>eF*0|!-&%cP)Q^HpN)URA zFGgY!>^SHtkZnaPXF-vrtm?=>TVR@9I-7?dcEBq5yo6^ok(d+sj?$Qq4nHenKm>lw z!@3MCQMi_WI7>bK-CXeKmFOMu%Z2j9ipISd9-gu(D8I)(D(Y_}2Vj9OaKkk93#7TI z+)m#2I~)R8_rYaa{t)>?0lltOAmEJOTLPk|9@8O6(c@L$muZhBQ;aZ897y+C64-sW zmc2gKMiFS3i`I{}_(U_Lx>0y3@JU0WDFo-X8n~?BJ_wD3z0uN~rLt}ZX-Y$UDgE~{ zWz__7hw0N(exc1vSbl4KMNqH<9n~)=7u?*#L$b2C$9iKwQDgY2i6PI#K>|+iIJDx{ zOyjwe)Pw|tz3qqP3XmJ{$oUUC;75T^9h8v{W&%vw(f$m8=G<2dt`2jedZ<0^p(qX54-o-mX&_D5GjLTQD7bEbOBR0jsv z`z#}6x9OIlYoSh;au>mM%4uijeZvKYScSimr|(6UQd(B1oP*GLx_;Nk3~5lWT9HuCd6~Sj3-lv2m9&NsOcjP z@x>qYfbIL4)1G1?U1e|Thei?+1N)+b=Q%T44}Yej50|0A15)`FHx0(wD-4?kr@KZI zZgi%7E$O^Cbtbe_hqosB6M|-_ZYKG|iLh&ps!Bxna4``Lo*6Blq#Tu)&L|o6Ys?Zt z*e=4(CO&T6GEZjZTTbkb`AKl&{5^SmK9E$OuqEiGC9zF8?Jd~Bo|-<=`v2XDgM6P8 z4uV$l*6KeAVZ)Z6Hitfj;H|FvfV-H9=bY8NjHS<6eo640H27pk>l#{gtC(1h0?G@X zpj=3BMEs5v=kk}>W!v4UPnV$e?E!Fhe}^^QSE~aUD=8HFpZV?~AMYqxHmXb|n=L#a zc8}eJX5-_`XTHlFW#hG}u(RPlzkQWVC5#@XtFg=r=+4O9fhPDUIIJ!gc20i}6gMt- zSuYii8e=Y=W45-CaeUZ9xp7UjxVP-YcYtHA9{3qrq=~D}2^%`r!AF1|4PN40{k!41 zt`5)|G|-9`88JCWL@Ldk_#JQ$TmsG=q~~>oWC5%KpDnUTIak_1_z=8DxXsk=6iR0;ge1Jl9A{R2PUgpqSV!iPPV$ANB&kYaaa$EmX<01Ln z!=&FGOK?m$d+B#@k`wE)aAdEii~uZ_!|C(WoV+C6{;~plF zcib98E86*Z@GARkugaX|bmvaOg+A-xGQ;8ax@5Vr_G7}#zMYf;LgfEDiI+aZ#e_e1 z8uz>}ba?7_|9n*m!rHS55X}cA2Fsd?9=NDBrFTitQSOS#1MGpSpBUYknQPzFU29lT zC%=z#*cX45RgkUD@LDv~tMu;g$Ndw03me}@zvP7(PTsI{DlD0{C$)Yd2eNWnt5m)L z2cBQ4ejmgwGC@3+Y;A!0UmUAWm(l>wrOQSFjEQi3FziQ-Of1Fa`0fyMtjP7rM|AtH z1|~td-;@AGz#@7)pvmSOro=VB*%+7b%K;3N?g<8C;18Sv+n)x`#K}VzPqSpaHCASyi_DB$?xTU=bRkm;ho1jnof@TV&IYXupmNrnh4ypNO&)Ao11JI8W4 zIZM5EbiWcaaC(YthAE*Y9Byy5mm1d?&c5J=XT+QNHM^QDVpUTxE&L@fmB$SbTkKwQgTIcpvpy>`@a^MccYy1J7j`wJK7NVdaz^~N zox34VPesbU4ZX1RIxmL~%YBHsj=6W+#X^Qc-eY|;OIZU;0itCmrZK-hVP-ouP_}-! z$OZ-fxKD0ZG!2|@Cw3n02s8xkT$M=7rJvVTSO)CAlR~_c=(#a`HLtivIWrW5(umjy zWTggI($6g|@ycEw-?C*tX>oa}%G+_DY#Fq0Ynzohxmbq+B{Xa18xEyf(> zUhf9ByfW(Dt)^c|O`l%eWdv?X>XhO>=SPZ4!VQ%LVF-?q1XP>Sj@ zUjEF2+4O)P?ZtY|#6-5^Q~Uo_S1zw0&a<1@=-KFIU~E5d80$NkzV86c)Q-Z+g-pvp z7?n9G!OIH74n$nk^$0lO&1lS}F+mGcax|qT6QnCk{=%2N&}9`}4~Wm#v5|HgxDHK?sFiHhU8ZO^uGClo@#z_c zU95qHe$rj}J*999VXMZ^!$5M2MVyZq04(@k6EXY*J{W1wE)(y5@q#Ss#j9&Etlj|X zB$vsdH0Xo`Ho&Wd?1IUWi1qX5jngmEX=cpBd3f1X9sX{NKU%kc5X%~s0`zjG%zfsh z(IFd~2$O3nz1{XzqcV-o8>Zq=P0J{BF> zaP33)haScr*w0vH-}eBPIU^x|rEf4^gL2uFAOAV|xXGgvZBfK&>o9N*awjiv0NhI=R^|Lne= zO5^0mEf=Iz_y!Q>F#L!c!Z9f!>mM*NxjCySW&Tn_=JR1l`RKfB=knylz0d7-=~QQ2 z(CuBTIwxp(yizwTw^T-RUc;CNl_)f#(WqOBJpSs1vJ;spHBYTXxPDgNoH^C*yWKaE zIjw6ia(=B^9&9SItq};lYr9|0lkC4hXzIZ_e5E(;BAbF@q`uV8&ZIzg?@vc%LtzJ= z(&i)*`I|N!+X$G6O-OHw_I7a7hiTr)iK-ZM51vzLEzhNYHtZ?{b%u-aeRT;^k_GW@ zMWt%;{z5SCp1Nf8LC`ejpV95EkavFLLj1$Lq&NrFuK!tP=Ga0uVKcr5R9h?j*c+ti z^zDuMgkCu~OBcTFUDb)0kb0<4*fW_tVk}{NW}+|sf9ok{;qDioanD4aj#7& zqH>!=`ny%y^vS7VWWwa{ElBZ#arh&JYWc@1TzLrMzS9n(hF?&LEQ%mV^shidCiW^%$>K2eNf zoLeD@qiZ3`HS6r#09$5Y6Y5g~6`o%lyJndOvCZUHulGsgz;q+|R`P4}e}B{l6Guf2 zkXg$aLbiMaazFPjo?Nlq;huq>Vjkhg?QVzKFK1MPglfJ3!r9lENUbxl>;*nA@*xvCM+K)RE|{-8Y?ll zq|;KByFUFe{6PT!`gjuvJ^PnJLE~CWJ(UW9~X^#QUi5BGgDCc z`Sxhr!Ml|;Q8Dh?Y>tjDm0Nv9gJL(iq4;eK8QK`Gg;PHrVD|Xy4Tu0HS=OYZG>#Qi z)*Kdvn=Xt)JT@wf))iY5w<^_|s8>@0@K!PPI?0Js?VB_YT98FG`QqjV6NTiEOt z{Tgj8ww$QDtg0)(i(9;GP(xh0=4Ti)&J?-M16-gBa!%CB&4F8>SuH10$~Gj{R9af9 znDX1$_~h2xbfnDsRNUQ^op>^V`d6$n*Pwam@wdB$$2<3H^2e>JL9{CgWwgF>muRD( z1=G_zMR#2UF6obJ`S%egb(b!w!O`W<;^SyWcY-=-GXVPgCoP9DIdHYz%iu=+$+}>N zMy8{(ZaGtt>zWGWzdB;maN^?Bx!JYcyf3>pSdY?3Mnl(FR(>qRK2QbWmzUl+uweVI z$8EDio_9wXLPTUZ#$Tlh;T$&;bhbMeEwi1~!3F!aSF$xSd2n-ofA2x-h{mxjc%8jK%83=^zhnDe$4r+w=wH^$#*vil{Iig(Myqfxjun>lskl)fV|wJVUg;O z(^-=mlhoRGzn`Jwts5to?aH;10C;bvNP=@mY$o5qPGnB~=XhCbjyNAc1}{nr3+SNmvtNK00)|;jp;J#nNBdcm3y}JQj^{k-=zd@9>d;u#PkKZtab-AZ4i*l6QMyP!>4a^BgM3t^POscQ9 zC@}Q!-$RUt{8%=B8^2Xwod;Q7$iXdN8|tMiz8H73fSA|5yLXwx7HD*qSlC)x9v=beE1L871- zdR~Afd2aXCFA9AMF|$WTRp4$H3B)t}1WoU$Ucb_u&#IJjVQO_j2aG^7PE&<}MLs#~ z?0uk_`nFxdGxQh5JnLVa{V#q9D3a0IujC#09t5@hG!ggkFQ)DzhZz%OTOaQL^s!vO ztO}!V1R3PteS4|MKG>aj|8jvtj9-0b1Z$VX5|uO;MzDa+HS_*OR~-6~(j?kuh|sKE zMP{4bBA>ZlLK{O$H5H_Sh3)I?+DYc*?N+_DXYS`x>W$d&E*`kldAi+c_dY&j45_{x z1J}v^dKFP`9gPlEazd3$BHvEvo*p)|^zJzzW|&nFHm_ z+u5}>Mt$PF=n43RNV;M6tFcnU!%1|5V?)_IcZAyn67#_3qy7z2S&a`1^%V8t> zj`&4OrRgSfySg2Wr<2`9eAmuCD=74LeUa;XCWkpYS{c>F8}F8oK=R_0=L}4%ngX7eZ%l!DZPK? z%MhJw^ABt}#?l7g-g1wK+f@QUD6H_liPa7nlS{U;_582jx0d})GXm@liDYBZ1&K;} zkL<(Mn+A{SPR!N6t<6+hr0A`A&NH!&6Dh->E)LvWAVmNumv}0C5t?l$A3=?oNi&Le zXUHjAxu_hESwE3?fMWer>Oo`m#sQ}*>(c74=})|_f{s$LY9|-4;O-y_Nnk3;P(I)y ziCvb8=qtEd8m5IG-DG$u`TJ+27`&Xd4hftkQba#6WR;THGP_!1x8MzmuucTXH^pQY zZ*e3N!SDX&Uf7!0RgbYrOPx63$;E?1$a6XJlY~eQ6^4j+KY0%}&o#dd18R!GU9aK^ zSZgr-+-KodpMI^UTzuWL2I!>WUj4+r^j`E$$SGlxyGPPIP+n3n<87}l^pm^MD~8q9 zaj-_LdkD3ekFc*82FO_g%}_oBE#mE_K8?%K3OfJ==3V9wL(57F+Ib zP19KtEFHsbz!e-rwt#LZj`=9m`s1+4gjaVa1wB&5-3rQU-9I-Hz9W|UFV z@-EQdO;qL_u2?dK@EY`>i{HWhQxchr^v_PKgXHp4usy+<%VEqTPhZm}xKl%EOZCtV z*pDDVTAwxft>Nfg!2As5`e6L$l^$p?+#3SrGfC@%AHInmQG>LVHfi8`O*vEB*p_g8 zsVRvEm7Pox^nM9sAHqNBiJN_mL@p;BD(+lewA!;3(em~4AP8-Fv<4&Bbw+rdu5MYW z(0Ox&Q&E%5ZBKj0T4lA1iNv8^NUm)=0=ok}Mdo@VrJB!ez4v2nQ&ZE36<)TgrZ@&~ zMr}n#AH^HCkylzgCa!YVQ{h|GSr3~B?$`RE$L`mik2{km+wGoQRNu@>K=ZJ@uNLmR z7HzQ0O|$Fc{fLuO0@n4A|N>NSzxn0P%MYGgmx znlIsEwqnzn5tV_o2{dGxjLxz54v822U;Ggv?4YLSW2xW{I;9>EK~(X8>6%pmjQmyggP#O9a#1juXExXe8tjQonu#!sV5?(4!(ebqQfsV7Ry+2 z-q?d8$eS={IQ?*_te;n`Rd3$O2sOkd<8X4)*Rv`b-Gq8cLO@S)W-pk_(?nLxO|eGj zmU(Allw6jBcD1>VyI|#qLV9$&Alr2UKRA+b^lWkx+~6m}(0P`rej(=kW8#JHvz3o- zUB1^=NHj{%o0XJ@+;95mr(#nT!f1ey>BsH8SmN%(U53G zkovL4THs!dKZ8A9IdQk>s7mIBc_$`K3@aS--On5bE({2UAWQ6cN6a}9#^SXa6RUc$ z@1SOp+)PZa{iV+1pnLLKnFlG8TplSET$)3+UU+WKDhLW?rPtKw1g2~|h|?_b5+urU z64;rK-C)BzW{B*y(BYvi<}PZkAU?FjLUf`aas3OzwTfI`&56&vG9K*qvM90m{`URk zlzY9ht!O9-QyaBwh${S78gZk7k@iguy7=7T`)cPc6;2{p8C&_!SIYSb$_UIv1cBrG zfpe4z0@RJMzavtagr(p1O#<+n;Z~QU{tSQFJHE~DY2xt?1A)Bq?(#vTjsP zT>6q;=~S7L?^eowXyW|B`zgOrXBHsj7B^FMEG4>;^>W_r<*kGE>1+Ub!NQ8dhwv6RqT4p6(pRVaRi@rzr3acRxKg5(al9Jo z$dNUb>x|B;Z+AJ5M_Si+UF^eqU-^0jdj!25y^KO`3Kx)vk9h=x^ub4Z{#z1*GIvV; z`*5p}5pSk5Ydf}3w^B4~BZU2M8*Il@DoZ^Zuzo7Gd%nbC)Tvg2y-bd>&XR2ur`W;1~4}indH8Ec+D^qei$~-Y--e@uyYr(cw%_)^~i9c*5u-` zVy#4CV!}o;%f<3P2rT~)THu!opf`rAxBR2dsa4hJi|@|P@M4$|2loLOdWzR5iFDU;jqNocsWr--`PM^$57 zh(-_ho7cQaE!F|$LGF)q1$$pj7S>5bE)l*kVxh|&RfY`WTpXHKSRy{XW%`}G|6#kY zVQ=M+a(9Ynn3Z{;3CHLa;(@TD2|rA}=Aw*nv2j|K6`)f~0)u*RQg@^b^&()V^{1}wTX|Z%e1lxE9N;N}2UzhQQtF2v% zEvXOL`TlIxdlr7MC+8#c+EN#w3OZ$U3_S;^9`=2wI&wdyB@n}Xi4fdaI+9ZGyuvh@ z$(2@!CBA~{=wp7_O)*=9C?ACnh9p$!JgqhrT`dgkNB|A-D%shH$Ns0Y*pjHa z$ryM>TQ@J1`(LQT);k=r4ak3eK&D;-e@RvILbzvlRZa!xrD=0hd#>+Kj_zF$d|pD=uKhTC>D&;Gm_)Q(|+ z)CJXL`d^WLd+Jrnod#Idj>qGG`xQsOX5hRr_hSw7BzVK_Zwe7`gW(Tf6EIUM5l$1n zQk`08)K^HjXm|?0dkdY4dJ9PB@be`=#c~FwE`8kx*Ort62L+8N3@ksc1_iu55Y*^P zS{>NMesO^B+CK8vCIy!=`OEctU}@l`5|T|P|nEDNP!P?bvrXFW?N`l~oQ&&|{LOt% z#JkRt6x4}Qkav>X>8U2Dh3CXnOSL#(zf|5yyL7zvN2>{n zC-THQf+MXIHSuYc;g6MbojPeA}9 z#$wqL-GK$(v+~c$8XGF1zY>&RFLKI&q<2|f`34(5yZubYyehgK4P^dgXa9j`DGE}- zF9spYUI8=gK_0d2upz?}njoxV2rC&H#27FGE2QSbTYZn7{muvpArhd@tK2S_L)ZD;u(6x|+Mjp5qYILdPlLOTX9#+G>dliAJ?SK`w`wB5V7`g>2H-iUw z6xFYYhsjVvzjx;#g$aaA_S&mZ14d2aw4yV^R!rS)7KtBSA_ZmgpEH_?;z?ukp3O=} zo$Zx*0ZoY1)Jk!0j1ftroh&QCqLJGnq~vU3XfX1<^XHwcLpEwD=c*Mrc)&0Fs*!%Z zAKc{sFtT=FvZ?-cGM1D5^ZVmRHD%USx{}kpFF}WZ+z}1LHmKSg?`rsT_k+JKSnte} zFCcy^iIae03(HIbj6RocH#BqVG$O`~Z_RIZSYrC#2%9i>B11O=%I(nFKp zdkYXiid2=}K@?DW?+~O(Z%Qx05PI(rASc)LoM--L&V8RblbK|)XYwvcY0HSbBg=EXlITZcwk z+XZT-cxFq(y`NovMzJBSF4N`4Fvzsij62Ug<^5S}YpVqi(5x(9SnVAWaOy<3L;v|JeEFa4TfMWX+$MhP3uv|X%^4|o>1?3!yrF1~tmbD*DOiyc`KmH3c zax{vIs&t`I8-CMQM|}hQ3vd`|p1EGz??)~9E|Z&&{TOK%!WQmJV_P-Z%=Hk6`Fasa z1;BVKpYLPDOIa7&tfcYxpk81P2;=|aX8g?+poNoC8+b#cczfujt=aip6qQVzE@}pZ zI|iAPn@zRviFGvSoxdf3wJh=aIrY_=0~vvi+*8iUBvJ)!vr&EWr`6}c07GQh5s7*; zHA$6h9@=0>gggH}KN}^)Z?crKr6#Pu&A2T*H*hPBy(Rbjyd9zHdcRnR7v?0n69qVZ z)wgD=0EFg&-nkyJuKJ(Xd9j!3PF-zNP0^U-YJCiZ&8=VV4s4V$3$vycdUR&H9p}~l zJq==p?@k})?64APJQ`FI6V zq}fub#bmlcJ)-&YJkrppCwP^$?71gj$JbQJ*DPK}b*!Z1)KYby<@AHAskVNQ2tW;5 z)QgzxC*Bh?;*`s}#Sh)w&}gn5shNWRE5W6n*%Twqr}mQ7qa8beYg+g-T^2Y+# z2VCW+zjkhlpo1oEogBa$n-4Oaew=97d4tbyott(g{f}--ACacueRT%CN^(g*(inTW zexcOQ>-^8*9)8U~G*hSl2y&8ooZP6;t_hC!9h!fO&GwvIr7O?^#DWYB8XcuKjA2km zNB(4dUDnHv=IfStlQH^;!OCC>b?y=Ev^p8}0IX$SInltW07gO{THG6at|4ljw`BypsdoHP56RW`krR5F1BERnnkLuBx zhd<39HrVyg@R{Pcz3=gnRPT`QNBYvY7O&q`J^Dd2uk|a34tPM$p+aZf{V{;0GXUr| zv3&;QCl7m!glR&^%w+_CWue#FxPaHhv4A>B%SBFg%PewsGYKp9$R73Bh;n;Txuo&J zO&R_kOXlL)7CE&S5t?s7(h?0Z*r9>XHi$t7qALq4iBtJH%|Y#d@3}o=8{4;nSSjTW z1jD=&m}V;8gpu7Xb1fl%nsIvc+#a{wnpTtoL{96_zXJah2uk_0=-bb-K@Q)Pf}(s6 z(g-@Qz9gef!n+3C+061BtFFa@FMJqx3+)gChc2N>h15=wk(MKtLX(Sz{D;IiK)<}9 zI`VNt;$OBY^Iq7gJBro-;I^*a_`{IjAC`fIz-;|xes&Rcw2?RiHSy;}(VR-XP`u(| zg6z)_zxk{$xtVNQ)#)O5(Z1BV`#+)W0ukA$V3>6v+?NJN&YQK8|C07`E=~`dAkdcH z4C{<`lLH70SRWMcQN3jcKW6NPN8;V+3sd?rS<@@4Pl9nCUF zj1cxy@9&#}L#eWTFiuYI>4h(_7Ex~56G?xvLU>W7G^sLbIxs=k53$37qTW*C4U>=WVog|6E-`^+?xARNz zIZy~l(Mw049xmGTAjkjptffep_%8H?XRWyXx^I32;x&Pq&sKuauSYC^ys4oA+$wx@ ztDmntoV+;p%~M5X7?JvW5CCRa41oFD017|Z14<_h`9R~rRjO=MlYfwu_mzlE1nu=i z)qE=W8xoSn%fp4LIc}w_SO(5jmtSBxsiU>iREnu_qx``fzg6_j)^jPb@w zQx9i!=)`1)ej(c@Zyz}A!|rfV=A-qEDPU55wLP0C^-YA0bjxQEwu z<<*EYXD;S(5m4_(U*dZS@c_wm4ePQ93?H>LDMojd7_?UXTofos+M=wv!NX)8VIkf8 zD&)<&z1sJsn$CbiW_8zzhr|Tq_+h(s`6bC)c2Z9bfr_lvf~&4yp@1&EB1Kb>GO#Qw z`}Mt7fTQXfP0^v4y>Se6FPVy>Raj56^e(!k)NxkNd(g>PK8Zt2g!^47its**XG=)v z0I1TKaMeKvh9xFJlnG{VA34Ljw9T4Z`5u>oUsV5W;zF}5e)dJH4FTJx2zbQQ4c{sW zyy{_=!QUV?%(J>(UEbnG>6_j8`!`)SF;g6Hq;LwbnFt>^Vd~m8a^_DKc>L_8pK@p$ zW-uaODQBenOs-p_*QZ38TQy}FFFmQ{BHI`!?606wvV4hjnaF%*SiM#Iu<__k$E&NE zf}_|Q-r|5XY%(xhHVUQBw!+W7!C%Hvm1@Hshb&usu8QDhGvPm2UKC>MsMb^PbF5r! zNwEGnK)2HnC=o{AS1{YkJz=Zc@2~>5N^86_R`6WRdez3@Fld{kZl<1S=KQ4p?oT%T ztASv%^Vv7+M%0Jz>Tg~DXE(R?R}m;33i#*ry;vu-C!pR`5aJ$?jAiN+g0um|Er0BH$Sb{t`!qx5-)s}+Q`Yz?li|HcY8{UGce+|J26 zDvlVu5EBNko6)JPV^0awb#$)xF1hagdXjPw6KuRb<8Qd^p;~Ewd!03zHR$@q@Z!OB zkq=Y3YW{z`5NHlyV|&&=alXschxs+I{V6M$+*5{g3A}U}hCXJ=mR!Frt#k0VRz|+z zcRX;OmlG2YSP=GU=fp5m_{*mlXT|UP0RTjunzUjmz&M%eP-_T~a}U5B6rrMv3mC?Y z1ku!yI+GZAqunP?tbA}#J58bA-FAXn6L^f9N?4DcSg?3C>!bIIzRoCM^U1X$zokAx z>*edFA*r~3r7e!^^x(27vlQO2QE!c*;y!;-lhjJ^G252*(XcDXCw^av^d!~ z^_Cq=B6)cXf!TEj%RsAS0Pa{lDT3E^VPdU?y@GqBm|All=h7wdV)c|gnN0@4MtC0& zNHxl6vo_WbyUYAc5XUOi&}#d>SO)Hx{76@d(3+_Ky%%$$?V!G&R+g{tbkfrzeQp7% z3$<2gAL;fWp`%PEc}{O$vXL9Urjf2I=nS-W6qQV9`jn!(@XGPh}Zh zt9@D=rI=kLmtEYdCx+)gh(^XSNbmJUoo!_s*vJR)_k+_yOuhq9?@K8<@hTd}W5|UOJx0vA8;1Y8(tX>pw^f zxxQEyF7^cr&-gSxn{fIm%W;(!t0}Z2l1^M;(zE={>uRL>&(SM>)2B9ryy%WFuDsF@ z%sY*LFpU$HMH{z)J=HUg3dmb+*0V`*VSDcqg!odTZOgyny>BndAlY^AvykA-lC}Fu zS&}t2!uQ7usdeJr9z56apiAklW8z@%sMH6EKN!pRxm`xnk+5PlOVafV>D4ZsuI~Fo z40!MhWURSDeE8;H>Cc<7a!NH3v?IniCh|{FMgyeJ8yXOFH9WKbr7aVZ7Lt3Z>}>Kp zB)7qM?!QWPMgLm;o{)tS2o8~7z~)5Z3ly&QChK|*jycF@(-_YW`dP|c&|+{fN(|te zgY%g9H0l8WZtwdDP#js{Y&9=)(ja9$SdLOucH{>DG&2p!cL0-e14CzkoCkp0o;#+j zyyg(6O9p1*wk`MNmQDSKY?nsbbL^_gXZ+tFa$RKi%ZcS=WQ4#ss}u{gxWbS%{Y53A zXK5&z(a!C6^E$<7@xV)^~ym<%18o}mD-=ZwRHPFY|d!#ddymD;jqpjXY-+>Po zwB~-~gf+2!v?YzWUe`#^F^&B-a1AQCeXrs!XM1MttmG?n?s{Z-G%KXog528y*P zz#azZ`($}=)tmPJ?xtTz#PAseYQKdzi#*t;#TBnmkuuIUuQ028fFFZnLND@^N?AK( zU+5YusmWbFmJf)QQ*9D}Q-|^_bT{#|MVo^*pMC8^y zdGh3srL$8T&kd(8f{k6+%;O_3 zNHe(}({IyB1b)+G{o5QDG4o{4z%26BTwB@Qwbl08%7{PsK)HAiZ7q{RmuI7qA51Qm zYf*t2de)!hIY+V6#_XFqaO%rj)<2!MGdy&5QHE@QOpEUJC)ortuAGhzw2{^>soR!V ze!!T`c1?ar#V74_-tg0XcRAu3Og%`-C-zlN`0vPyNI6l-JM%dcY}3_{>qNtBeNXZv ziC{`q%P2Aw1P(>WJiAH-X1u^rlQ+?$C3C@KEfR|6yi z06sD#Kobhe7{JaBP@Axdv=I+x?;qw%c8LRuS0%Wlu#-F`cbkGMSV{k$#!Furx>hQOaQaGmNbZ#bZkb zQ&O}kC(LFAP8VWhhC+z@gCGE=cA#c=*TRD>UuNH;IB3V-T`?GLrbEZzMt<`(+w*70 zs46t?4I=~WheJ%TW6i5PSf9J4asHPiVEf_YLN6~LHcyPvBdLv`FB!orczmR$#uzVg zAw}O6AsYvG^E%dWcUMCi$1@l@{_zb1ddy;%FYJs{7`7 z)%K78lH3bCBe}7$ddiAK#^e4q0H-peC4^P*AbBhy#E_L-!OAp8G;Qts4a}s1Y(;1x ze8($RvB}axYPM0SDrlNy$4{;&6W5vJyLrSjQ7!&tKytUV5o56luqv)u`w9n(IK70? zuiJ@v@Ewn!LsxGb%>zvk#}>BvMv$3slo4~d`>UphD*oIL+d z3TcR~ep?end+nP5c|TM=-*6;z`{25CfyU%aw?1gyXl(q*My@;7ZW6s5{5kc1&95ML z>9;7eR;<8fD>sxi`Xp)Z)P8d6;zTH5jqp+3THt$TEnP{ zRg|b;Ua+DtT^ZJ&(N`k)_!AR2Ylh%_s&xM2Yc|ib zXqt~lX9zTU1eK(G@o;@|SAl|6Av(z!d^f>%$jr{$b>XIGuc!%h3N_^zCbW8!ftSw` zWEZwDnFjNE1^6vp+%#5oF1p%t%~Qd$DM05pXyjEFSVwA4m9GoS(Uq15^OKYj2uPpO z!=!hddM%ke`TTdLS)+Q(55QfKcEs=$nqZ=uAn0`!vmgaun!XMqP==0fl39Jze zx@w3kcrVe?e%bFB`Hn0+%b>JpMTVENEmdHs;LN~>Gn90h` zB#tBbJ`W07QrA^Z2E3$5Ng0!dz(N%JD0|}>%>#?mVJP5ATD1@*6G{$vphuDe3Loii z1WoOj@N4Gk^s};*;69Kd2m7dINae8g&YZ2$;ze%#p2G4K) zAkBtZDpUIW@)B+K&P9OtRwky@@oY=bx|6rHc&2Io-W=vn!}aO3hjZJed*Bx%N6_+= zi&+KQ1br)VvNL`;)mB(PTvS!04D6_JD(cj-NLae6G|hux?c{R)_7zQyu{MD;i;DJO zzlp#Sp|ojU+?7hx)=2Mf;RvPi;NcZP;dxYgo!cRj4Z|>`x{yd)xu(IY!t+!5?UWI9 z$xO%TUCY>Mk(_-Nba1XMZpH%K!7EsfMH{)k0W}AsIP%I%5ydVSeDjXZ|A|7vM%gYN ziR?E-&6!wJUw%M>QP7{t2%FpaPr=M)NfO`6Q{7bFI{zDZ;RZ^MJ?0xQ7j9Ucm=su6do znnDDdA;nK-%pGTg@#XI&H$b&6`2|bH^!-AO$Id9U$Loew~q8 zlgQZY_Ae?^F+kF_^M*Zt6+wG$j_bf9Y*t6|uojjXl6$9?8@#-1niRm#T3pf!^}`E9>y2o^|o zi1=g?Iazof%8#|$E*>DF0_Z_CDTadbb|{PJGMQd{KlcgIG4~&kX*<^*S*X8SXCi=v zEriEGylsnMIKokhgdlNcgcxUtz)07itcnXE#p@hsqudHQy=>xwD?a6U)&Cwhaxqbq z+3Gk$h94g2>13zZs>xKE+E zrhv44`sZ8sk6uNV>T$0WQhy=$Z-s|AZ0fv;h^;qk_5LA`d}|~_dNUApB!3Wk_nfgi z(}$7LHp{TXOb9LwsGK1D2Gl%t$l>yjCa*;Bqu$ShNGQh9qDvkR(W$Un2QSaOWu~ENB`iZX>?ao|+NN+n6+l=|MDevVA-dqnimfsax zl~Y-Nr&Drwq-ON~?S+t|y|>%$0tf2e4xU!9m6PABaf3hj$>)~F48;b`R=y=Cr_ga( zYrHN@R3Nq%p#=@23&Gc%G}y=2?e|zyTIHg-BkzeW`BrTL*`tvv?Cu;5wGJ*qUp;B> z&BBFX@3=;d3ch21CH@4Z29&G+mvk96VWws-clM$R*+OeF4NF^}+p$ zJUTHq@iy#&=L#LU_luvj%PGU(vsXG)IqYPuIeCD<5_v zI85CjP$@<$;=5#qX&}Hy{{D&~C8ZNyRezmaL^+UKtc2hO8;jeTlZHX%4$pfkD-lnE zK@6h&!O!xj0d6S_sp)%pz+LnN=`Bb^ zk)MQm9+`mWz-jD&Z+0pR0-7=Z9ANpI=aG2_O-wrG^T>}DmEkve4%k#yOe#eks82 zQwJQac1JSv_tv8ZLky0uuEbbg&EF$+Zxia(tsxvD$sHx|Di&{f z&qPav81NV+qLp^1SQ#D5wDl%u&T>>!rb)qLc7V!C8YGMx^*C*v-Fr+U=8;Vf8o-%N ztm6?q(A-%t;2|3KJw;{@3R{~NOK@D2EadM3*$g@uL^)@$3=R5oG66PqL+t6fYA+?c z+}N7JI+S-BFOui|Y~yIbX86(B%Lk0vzPcMmAy8=C)>bQ!M>>z_TF!CNBZy62sWQhJ zD#@_z;ki_mVB7pvHVv!GwwRczn5!SYI-F_kmj9C#G<^fj@jDOE+molDz&f<2{E6q~ z=!WaY75a(B)W>o<<$Az{mAdn!REtg%aE{04ipr@^2>z{%v{TZZo3BAD-9}u^tSPG4 zO)`&5d}!U%I(^Tkjof+2>$c+iiFmHFO-qH<5)m;pFXYa@`2#JD7TPRjD7Y@+DAw%e zK}GOu9mLvN)9$XhG~q_;gvYt#P3@QhNiWEM^lXVDFV*&r%Qa+DGUACK@nMQJwl2mM zI-?45zU|Pg{p08SA9ZZM_D67^CgWw7?e)G=4kqRucWb+vh3j%&(*o{q8n(eRMN9-O z=WIEYN@$0BghV9*`GJAZo(!{(-~4u4Y*9p%IMQszJWD~UL&YgM&D@D5sdL)gwH>~z zM%o=w`<{)rcXvSF9MA2AnKz!5p|~c)TETgid*a1mRhdSeAzl!dcC>}G1thUuNKqL8 zztJXlE6nA7RDmP%^%2=Gk6GbJgKKg+ zlD<@9uR;0*rT4+Ogy6p|K+=cFM;wA|h4)3e2SI|PPF760O+MCuU-3Txo{>&~I@E+{ zB4972{e)+BueLO?lLH}4^Mt2zQbn%skdipwE3pVK2E>CaHFqdIuHIplD*|~hH}|4C zG%Do7*3FS0Kg|P>cJTr2SsgiI>-L0d{cek2p}|p|pA65M1iNnel^LR?1i1+uQw>u3lyl0zaQ{2HBs|Dltev9F_HfWEhhD67 z(58jF(0}l^#ly>*Y@wM~|AZ4HCnQ3>8?sR1E7}pjkRd$=ZFjh65OvzknpB6X@tCnB zI(RuiUrzx&R&9IzW4^N_XSYAN_8@jpfqzNDl-~c3ZpB%!T}Y5oQBs~p0rcVj=~ETI zVn?mXP5-kuVq4J{$kYJ|aTgi;NY$|mb*y`0lT&uEb*H6p^^m3$D(SDM*j{lBm3N#! z*Mn9El@r@pD3aJ4C8!qHgb~|963wr6FTQ9mj|@SlREL_JZLy4mKNesYBio#RnFs&P zLjC7ju2ASv9MUuAJLFDD!@n_jX@3}FEZh6!n?3&gD zDyac&8w76rIDOO07L$96B;_thpnC0W*is1+c zfu0}B;a(Cq`5zpXK!d%ETvni^P`Ru$Es>)TOqYfKPR@e$1>!z20M=of-ULSK%8f1F z#0Bi+W?@U_AKh4SZMf=i&|VAx8a> zO$FDJ1mVwsB>J69J-}*30sCV%c=kOoSO+f?ssFL^QvOUj7f2Ic*C$-YE@l0AgY6oC zq-8oxKd*-Xs$f4!hP!a4HAQX}zG*M&u$4#&_JN9A4;QZP=?1$&xSYl-0nz%fRvf1z z3eh|f#=Wk1fG79MQvV+&Wzq-j6qL_SE`YO2QH>nL031JAGZ1kyQj9H6jDBg$U}T>H zh$7&GZ%7LgyJ=6Sri7Va!>J>=v)90emO23Q>h-yO^G#ZBP zPGyQQ7utmI2Vq9s5E7B+R3H+fL93WBczSh;)Xn#}?@QGhhTp=(2F>%fX3aLdGnUd@ zt9zr_TW>syP@aoK%XTw1r1AV_+QVwKJ9lL1irSG+$`fX;CLP&K%dmjUwqe7S`Xq}o zPQKq;2AGP_`mwfHc*}4jH1()a`JjCjqJuD9GV7nq-PR3xE@WFMhb|yld0nbipdB@?=>Q? zfkSB4I&e_Ph;6_d$nXx*3~PHu{8S6j{#rs`!rNutw-AK&7+xP@FQ z8gGuYixBl>g=Vhd536e??rge-0yfsge#;On7cWRa#aJY01##hSk78`yBOBY zyt%HG<)L6sW#S=X4!Nqj*`~)dFCyP9+=KV!C6o&SbS26XwX{GzZD;G{HF9A7{zQCK zys_la#8zQV?HJ2m`WQ<VRuMHz$_q?Rs&2a-M9DKOYZ6{ku z5Des7nZnTI>uFY;B<-aDaqN4F7nFu)NX&6e%0piQul5`3lI%=M0o@4`W8>6!Zhxh0 z>csndZkZ3Ey?+SjnGArtjs=Que^W8!r-cxZ)F5UfsQ^ zFktX#2^kQ?nQfpTp&;f@CS`4`?yXe|9$)RfGKYFNN@X1O6Rn>p5ogyFGeA(lF6m1p zE%SQujZ-jm!c~$DqAL1SI@Xa3;aLBB2r9|_+$r1j#j2l78ocxSuGzYWvcvZ;$f=Ld zI2?_uaSJ^0Kme*=}uBd}}yYKGrP3?H~q2*tVJ+b}2dqn3aj@QZu zyhDWRVCba?O=ex#u{ZXePQ0HuX&PtQ4;g=WT>Lrt07^^bHF>IKjLyhI36s<=kqR2O z7Ju8R5nTQcX6FB)XjU15kQfx^dZ*?v8BlybBL>l$vb)|nN+#FN<=HBD zyg0ejkS$1!9(D?-QdNY$d;cb+nTirm=&GjuRAu)zJ08%;f-CK_L1FKeD1SwM*!=Z- z>Ys;)gRkHkvN?mGk#%Vcyjt#Kttwv1wU zZg$x=DbT~Y_{Myr`&jAeY)*L%cmb&i2=-{enND2c)cA!Cq%-I14FB3P;$|SWKL-x! z#ywu@KKD}K0|4qh0mho>yu`r)P%n<=eDA>*E<`-edg28>1F~4Dj=Tu8nqS|r#d74< zQ`E7J0@fGeJbSuyNlC!0kRva^T`Lav8%E-+RpOs2#g^P3XN#_lZj2#<_1g0-AK~Uf z=W-Q2y%cpS*|m9}ZUz7`pd*ooFA84f{{d=TC)No8Gu45Xy}KXly(yL=fWH z4jceRi;Pvj$HIZ=rSBLKF4!-XLqWTh+lXpDM?f(+F&jq`1iAMqWtb9m|Tif zo6X-3;$!m@_C0IQjmpgKZQDrUL0a;|qSfg5V(nDnPel4Md+idbGwnn*`dcRwgYY^B zgTuTdSA`;h%jP#c#p5knc%M0Y^(aqSw)uS?j@`UsjU0`CU05CA+_&QGXeg^sH(j|i zXZtxisMp#Dtn^VW|8#=0%mi`l3P$A}kvbZIU9KOvwyyuNcqnvP<3v`56+a+kP0lg4 zOT(?C$+dAF;|IsfN57qYK^GvE8SDb;=V?wbgP^leF5Bp=`b%hiXZc;_4>K(zM-9cQ z-_k?%xvMAR0$C7V2wmkjr{;gu6i94{JkeKmQ^|kHv)f*&Nz;|KkV)}jvB)4-e|!4& zkZp-;@7e@noa+sL$wzq|{n!yCI5$xRBJ4{(^$!ZqgwUN%BNr#zb>3(NbV}|&CPyKq znW4fzrJVmnX8rFKKMA5ZOd=Q)y%Rqt1y4Q#UnAL0*n;lfjDpXHh&<8D+%AoPg?kv|1!@jmGXzvqj4-dZb;Zk&vU1D>N#}+wDJ@2avxH_Z&@E)X$9YFDU z5H!2Ee)jagtNuIiG znjmNP0!P92LDhF}iEt^q{wgw;Zny*jjkP=-AF#d463gsM3kj2j*ZQyFCgTthzdc>L=)8CHQfAB#s9|=B z*UF3bFl(S6qq~M;HftR9>G7lS_`$qA0=Hp19P=Vx$?Z~X$wIc94_16=tr81@^oqRx zWIif=P81XPY8dk-1f_C!Uz_4xb`6POk-4B$R4T()VS@Y zNMoVQPGJ=D-bK!x)kyj4;&cDH&XyRRAkDvx@L(u}g`zmK=t*@{%<%Bn`a2Cgp0k8- z66|jUp`I%6J{v-?fW?ULhY1ahg@N9B91N`}mQoE~B_yA58LC+9gP`x90jpfSHtl87 z{9P9C-sw z5VM?%;by5i%`&E#cXHhdO*Z_hukr<_ymNvfsiLPX94KVYs-)|3T;~Vj^@<&><~Aqp zN}2vMXKD0Z13F~6TK3}mL(YTdA}k?ReSITcm;^O&qhX;D3)-m^Fq<;E*?y=!B$=1v zB!BW5QY@ZpEg6BGnQ&jr)gNiNUgN7ZJs`64Zr=BeNmL(ZO3&_?;LC;m^Y%Y$WnTo1is9_Ii*;!eZ%%< z#N<`JYL_&Vg)I-x@Jw*u_YBRaif`VZ9B={OZgtvP9cwN!I-Mu_W17>ieXmQ zKAwMdl>s;1)aqcioc9ml@-!gLMAj67{tcL1_A@!@_^CXG_d?ha$ctIzgP7AX%=>s> zXFAE5hlkhyT8Rn{SV!U134gu6bz?aQur?*G`55PQuy@Fja_z)C#^@g9?{((K?EJt^ zASf4Be8Xk0hu9BCqqABEFq@DlO|aQ^s?B$JZ$VE+pNf-Sp%)h*^v=nIP)@bK0` znp~u(cstG&P6}Nd`9o<+hh$bw9Xdn|c2WaBhtsh(6D2G6OEv>hcS|n;!qt*i3c-HY zT4G$68WNA4R0~yrGG5=-*Y$abo zVkFyV>A5X8n?OudMhm2PiycS+DXw*zM2R9J zvGmucCLz`tnKp}^(%$r_S7Ty2Znr6?xWC1;6uh(G%`KxvHTxr%UayGUoH|*dFyyLVDxTn6%FDHH_+tInZS)bhhX{F z=2Y~K^c3U#y0ZI8%~;%wJt}D{Sk791gS#A?S^NKfjd6z_rIT%m7Smy3^KN-y@quQn zo@yuL#5gd_MyvAi z8Oq!NPIL!X(Rs*RKq+!BC4o*?AzwmHgJ1zRZ9sl6GF4@zOQCZQ@?B&_L5SNp3gvWJ zBG7O00bYP@>m~XOX0M!_T=7~d6z~xf`KVa;%bM=u*0Io0uKjMN_~d298lVxryP5pR zTYyrHGC97k?$>Y~%5JItIm@FelSE#^WPJrU`r~o2_o;wL9-OaiRBVY{Ix)NZuAer? zSid{Vt^ewX9+I>;)cnjuD--a(&wbp}Ni~5hpF+>%d!H4v$L0Rc2L_q#SZxAAq0VDe zrp}gN$dC{SCNY6+01mi2ANtJ4V@fS@E@;=M-++9iRF0^bLp&oJ&oUDrnnJj#BQm4$vO zq0+`Ju&3?fCNCi+-ykDPtvHte{mWxtz6^UF2_{}s<7;N>pRQjyzV=iSh zq?q!tb-}Lmsszb>V_GL9jum+2?*=kOI0)J8}7`d972z9NH%&|+$| z_4&ekD`0UFmzP=p?A3Y*N#zXnqmvRH_M2^V)U;&MLQ zgtdzk0~)w$GMfZ*~TUD=EURj=AI2ccdR7%hrv0W(32whAvx;9gpjj7OkS{n3m zf)!?64d*T;ga&EeFjn#)QLmyDp$dM^hJ43J4*{zgtH#AsvCi4>AbRg%%UEt!FPr($ z@@&5Y+swQd4;7!&yYXM6kzKmnl1qDwTm1#b7bv>O6 zZA9V|P&zBd*U$Y7Dh_?i)b+CUwX|Sq>?R>HKQw@>Z;iH%ta5_va9y6PcSpoWpCHnj z(U?%+k0wVSpaBPAd?RHB2FfcOZIci>tVI4V=h zqkVt9(Fv3qI~oZlX{p@f!Gn-Ro^gG_=o%@_yJ}P|0U@g!nnX%CoNn_A5gWTaaaYjb z$yFe&U+$C$YuqZ~Pr!=^J*kcIlet(W1Yy@9=B)Rrp}&_h{`!s>p}NDRkh^T?lg-M5 z=g)ysgon^W!%@Zw11&G(Z0~Rc$0eOW!6z#pY%CHHiv;0CysyD2V6~{x61Qhr==2q zl7^K_$5lL`&tUhxMG)Ui!)T3Qs*eKN@jojoac_zmHvD=$j}3V0&|K6hxc_~BI9Km` zu?riz_Lr$&SYjKtp|_Oi$RwnhWvrpq49CeyZ! z9&awI=0Bpge{b_Oq~yOIjXF6 zy%_z)IaN#eG_H}fAU2YGUw))Lc~t^{h6Cb2gMS#iasaN^Ppas~8o|xoE^qcbjsS7; zP}#=XbU$5Nm=0y_r*HLG<9L&fu76sYz2Ri3IZ5}lW+``4Tf5hP7rWier|?P zbY(ADCpXzSXfR~h@3N*7#pjnq?vec7DsKpjaIf3wN~FuxcXKf|{5FxNCD;)Z)p&iy z1>WBNqr=F$NXELNIir%FqyyJscdOb=oEiUfsadG7y+sIvSe*7l57pNkx1kxiBx`jS zo*sIKTLL0dA`k1IGPsv^mqb|sm_Jpy!$=#<{Y>&cp6Q*EDe2Q9iG`Uv$Q8R%x0ussivezKL3KC1j|s%%m`#O6MA1x&Hh^{J|6=Sd zgWKSira@U|W@ct)nK@vL8DoZ+nH?EohM1Y+n3>s;nVFdxV#YXG-3NBR+WWp+`&+6~ zsm_@>J>5Ms#9zR#7}AKCvW$|Fh?VC0{A9+_^3B9JdE#^2jCDg1^kI^)sDmXDvP^s8 znt~RU0^w@f84XekEG=2z8}p?MI;3rOy8G68KJfD0U95M+!aCGq4_S{!uwte}iI%e- z6gBHpEXHqGo8~GC{D59b&g`W6`=mx5Z*D`riQ0`=omkOCiwQyR^cF{<%>(*?RF-8j z4$aTb5@(qaO9m%+xv9$jH};sc@{U0v-UlHJRg*2DzJ=(}4%tMDM7Vv>WEXry4&GQD`?;@+A z9dmNd6K1wEIW)HF*@W7lN;Hg-S++*m($w^tX8ER0Q-g(oVTT}m5 zD-j6Z3g)5{q!TuMGqY^e1TU_ALS^HojO*}c8{OkF$uPe337$Aq${ue5$ja;LBK8es z4vWDPkJ=Rx5nB!rgwEy=7Z+1bVubiib#ld2x{dBblDvqRdbx(`*mHAC&x7Xggf#WL z6(2Z1?KE+SyK&*zBdIKdLyOdaV3Jgvk`axeJhTKUX;{cpCkF-<0BnyX^UQ)M7G|%& z2v01VIogacvh*b}L#pTlt__7=PI%xz?1#9FEp&5HkFatPE(D@&6YFZ43@LP@fO!Nm zd}Fub#BP=><~cR0F~yg?%s*MOu<|dKsE#Ogio4>@z})K?{@XxPa!r1sQxnhtws?8; z9Aw*!z@to$N^fb$ggk~w3B3KAo9mrq=qjyKfD;0wHnaqIN>=O;2Oy3#aS6t^!w(YH z4l_3I&7pRmJ6!;9wP{}NYl@R0En?fhQIWIU4-1-zI1GBr3EME|I@Z)jn%-*PM*h>vSK1n_+x<+y{c%+JSsn7x&& z!bfxWrjKW-r4=7nGqd#-YI7c!+>OR6#V6iAfOfi=NmHX5w03&;D$btnrND<1Rjpog z9?F$}{Y+x4JF&g+T^dJ0l>0z&6^#-F?vouMBP;KZso>{|%4uh#@4A+CT{6QGdc{BONn*_M@3Cl5(g9?u8&Xx^^2tyUQ0B~<#g*N=jg2<7-YA9Qf zJjqZ*-kgX!%-@-+ce(UD3edaFdwyF2Ox>e%iFc)VS>!bxLFZ!NEd%_N%4tFdc83-O zD=GF4L&`~X!LdNU-Onx$9BkHBsFQv-F^=8n^r&kc7-`oa9L+Bk7_=g}f~T;4y#Yv# z-9j3{>XPNHMJl}hDbuz9pK^Yps%}TVOD%CPd?A!6z(lc8qi*u_3X>OCo8U3zE1gkD zjVkXo3^{g&6F~`@vlN9L(aLbuba>SSte3c{2++Y((oA&h>Jd>!ItTYLn+JlJ&{7;Ik>l5s?AvN><$(12KUA1)u8Dym4} zfKj)AoZYH)1DIb3mMRJ6K?qC{t@)WLkL3IaQiGw}hA;W987D7T5`FjZC%|En3owXy zed4tc2Z=W|cOr6Raq$HVZ4*^QZ+9piksTf7h56eeqdjY2B9JgkhPsYyB9+W0;cOAd zkku(t^NRmO{8jwb+Fz@npLM4SiTl`}i)-Hgl4dq~gh+ryvgj2)>h$lpWp_=(-idu>rs)bAx??~ z$|w0j?|3b0zqF2IvCSMLyvYK?;4CErg#d#KKK+rjienz5F-H44`9a~k!8?oBWv`tq zHwnbMbOU1h*K`NgOgjUQmH&e3|KRr~gurJd#D^gnOfiPI?Ecjx1LZ*$QNkCgEzB2j zkuULk6Pd9iw`Y-A*?K9v#lf{-#=V^sEFE}jMzH#p+FK9~!IpLVlF3odN44EGBS>FF zwQPs#9hPW!k$4TxeF6Tlv;Aa&qak1iDKKZSqg2fuBULSWS$EVx6}N*_-oSF@&sE=-stot6bL~#w6{wK9>KaOrE8r+?32#-B7>Y`UVWqYY>U80wiaEJxo4k;Zp_Qi^%< zWr*E*{gbVVlM_q^+x)?}kGyMoLKR-=3`TTHHVJSaHpt*A&VEcFxho{|bSmM`5j?2C zXK{oFzPE;#^U`AUEm;P$3?FZ=ZWj3+a!W6vRj z?McGLYX-cd!6IP6yVErX@Qn!}8LNwsit$P0AFdI6V<}NvuLD=#&^Cu;z#xoWa1F;U z5p6Tg4wmZV8;mo3HTdD?(mN7BB{OmRJz+F%Wd0|vbPQn;sdsf%4O&K_ahe7StWHzb z+gUE7NkZH-=s(Sx9Np5n=~I3XWlX~nxnyGqS}t)1m+bGQLS5r41g^0$qN6cQby{1r z2cEmShSj1ARtVg-X6^&cb@PdoH*W^(^N| zvEQ%ko7{d3Q>^c1Z9-u+-X8z$9wQDp0#5OVJna%?gzSzpWwC_HP~wxU zJXVB>yU%RRU5ZlnboXrnsJkJhT?4I{Ydp z(En?Oj*EU%temZN$S~pS=BDB8SDxkgI2*AA&*{}&L=sWy$WLSv71OxSZ@0`t&x&q` z|ApJGkLy#N-Qww%AG3POpeTO0cm>pmVw})s_q!J7wD+XKj%QC_|3JRJD_YC$N$jVy z&MHrFU<>L^W=mRPu`cLKe)WcJ z9oxfN-Nylh%xffq%((1a>7gA9BK=DQYJ%I=_PTTLF+oIDog`z8KmtON8u^F^TB+c; z4uru#tBsbAp|zY>fQ=8g{Xt#IfvAStNK3%m36ct@91djQ`z0$cl+Y$vL=0;Um=zT< z!zZLEyZ*xJ8fOCFyU;bGGR=HsqW^H6B-hETr2Y@Pr9 zPFq^3^scg2{ZlWyY~j|+9al4ELro)Ke2t5Q`j7ySJo3itJ%zkOMrXNKWe(1oJlNz8 z@lwEF?qg$^pTJixL5_)=<-rs_s%;6Kp+`CmY5fpgIF4)>qVznJD2W1;5D0QNa^Ul^ zjud^8!;bFA!^4we7!#fh1^QeIChTWiKD)jOK$#mDj0p3M56w(@UMkvuvjn6v_ee$o zfuW#9(Kz9{UCghE(WQ507I0`Fzsu)u!HP+q-;`qS)?>Za7_4@!mOm&$v*vpLp7Te! z-n4n*-2F#C{Fg?b>rv|_cIf^X5TcHLBKrbq?jka+WOQ`&Q6smgsG>VzR!OS=O^ZQk z?r-45#`4ifeYs5fWsK%hi<}g(2cQLI9Wn zD)57!L(Pz&%XX2P$&3|}>B=A^8(n=D<1RPQMt8w1czNTj%RM9mbR;Jj4zS)Db*Qzisw} zOT3aHrws`?q9D!-=4abn9tE%2Pu1rJC6>Cf_s6lJZinw82HK)CN` zmrwKT{c0~N4AhSUud}jkW>I)o4_Ey>Dryow;fx>%uo6ZbUA9rwZ~fDa6?XkndOX5~ zs@MBk)`3VGwJ)X6GN~`J5E$%j{wx&ARZT_OjQSzVO3O-=RDa55jjj1PI#I3P*_=N$ zY{%Y1c$#CI|-V7q*S83XNJNaL<j8v&>8c3dE(f?v5#c%362PqCVxuqgjaHR`o*;r(Yx`MaJ|h9HK^8^xPLYE zZnU1ltufE%_%I(eODO%Z+Huqs&WS@`S2yv-6}4`6s?p0um8l{mbTYwYa>bkrxJ9D5OKIjbLjp;t<0vaa|OFwYC(N-re?JoZC( z>{=cPW#eze-4c`3jIF7iT>Nk^XeZ4QIPa#{5aMH!V^$DkC+S!PrIV3{F}$5f_^o1YmSI>3>LH4>ASJ$W zaIanSfX+5j+G!&~+#Td1i4*$T)X!?GkTa~W+#5X1itVq{9-d5FDSjcyh=mUoGYZX1 z>TQ`V9Mg^jVwK(H#7D{EVhH8>Yhx*4_qe|SXnk&RmB5dgRmu%_W-eL>Leg}>Tq!%P zYg|Gb5Ns&GkK9a0)wErF{?hc|5eq4lgj9L9GrGPM>!D*nQm1SnS#V2&xIaXGE4JWS zZNB^^FHprv{!+9y)|c->#?C?ZJMJaKxUu#g{=1UdDh-!>U24VB1f%w}y~(ap^bG5b ze)U}U)0r3_8yPP377jf}JEDTjTO7Edl=SL+!vHe5iUc7)uQwc_-JXKPqQBq)Db4%FuW_CotECZ ztWW#UYAW|(V#PekLpAAV8Pll*e$*VirhRlnm}>B(Ks;o02|1bj137(6K^xAD+Yz|8 zQJn@}E1yGHJBc6P;#?=SWI}r|Mp1i=*QVS|_q4#d@0vS1D7Qf>z2Z`YwcWDeEe&bi zcffH28ck9~ENsL{qd8@T%#1)FT7QfEfG3LTcDq4`ClSZ`iDD5Or>*uteN)A1bf34K z#^RR-=GaEu0J&Bpi(aM$La%V=x;D1M$=t=K^s66f>P|I>TEOgAH+ z@zqoEzyNHdMVntW$ITWD3gkItf#+bbVR?${Shv?^5~yjhY;jw(<4Z)WO^iJ6!`gDs zg+b%ruuGBj&)_P7$0ueK5dxH;8cPnc|t! zOKx`%r3>?j8|HdYxQ7ofzUKFyAIpyFM|0Khho2k*=5U|`)t7>d15AuCKKd>dpcs%0 z2^JD^K(~wJg=z?SH>l>VrZd>t^72Cg81#F1zAdM|4H3Tgr6*rxK~ET2p1R4v0pmkDlta;hC(!IhL-GT1SCTBe#6PZ4`!gn z^RkfI$5z7!aP1e4whW+Nzh$08)4Z}Oer{-|g4BPl+qpNiX<(ntHDd(YyJSCp!MHOW zzG)~twk35dsrf{1ti^;zh_9A?C++)L*`CeJO<%bfU?!cI@K)HgK2DmO%Y{5N-sxm` zzdE|(&4-;v@;+SR6d+^Qg3_D9#+4P_Q@Uo;Z@k5{C&kfg;dZ(&<$(%lXX2(e$6}Q`03))3D z@w`mE$kLgaU9MrbBw*FpHVG9OZI&vZNBVS}AsGxKU5ZcIX3P5(Rk{#yDZuzv84RaA zF8y`vUS%}KlOb5IUp{l%RpKtI<6Gr6|9wv&_mTjZKeZ>(a$8t^4S%Gxx8a-!$>0wN z2=~v%vdARbLk0|#Fjzh3p`9V(n%Y+6n_5a9Pix#;=lsH z=ECh?AZKh_$@=%!n(oK>HzeAktIM)lEb^<87a9w3Oh8D(Lgm($IFVhS#Xg9JtXAR2m{H?z zrE|f$5bnQCHkoI5OQvoqZGkq2b*Mo_1FW~NFt%0FmzzmSh7SwMi?~}58ajA<>t15> zN25_LT~W%~*do(aFP4NvMSl-PD$KubacF;%06nt^jmDwG3hA$ic5APu&wOZ3fDlw(W&Vjs+7pM(@~6 zM~s+gClO+KVu)kCc_z##vkZtMaq&2hqTIF-%Md|dnk$Lf`#;ei4*uA_dR6h1#t8>w zblS04UD>@&Xj2~}co|E#!zBgaw^4oJ~4TYmmV4P;I2$r43=xfULA!*IasPsT#|t z0p`MWIlpt2(MO~|-q>=6MD<*~(d6dp`(L>6BBd&r$WozVj@z7^%lV1-{D~~WFG>1b zV}WL#R%OwXV+E_`-=KLl$K|KfzPP~;3sn`ll_b8p zANPo3dwXf$&E_X|JQABU>{rBL&dTIWj|meBqA=6_-u_P=0%?*2KR9nR6Pth^{3tTx zA0J@cpLtDqr`*W@K28$2vvkN0%rdWO^ZFd*RLk3qsDJD08eyc8dN7B@Ah*5mQBmNZ z34I4iI&g+4NQ`l9M3NjX!Q=a}DrDbD9=D`y7SPk_+#M5Ta6c~$_-cT0as-W*YXC!j`WGE?i^xtnA1c7!!b7rxFHteI$v*BSW`1T<=$+d z7$eFS4b$`TxNOBsIb(6cOG|x9#usj|ZN3({8)Zk7*RI`{N^u$zmlOC!(P}36e%z7=cl) zWSfNDqLn(aM)cO9AE2l=BCkMDHEHnDKpVM_Vot}rZA)9=bECH7lOc!wkET)b;zO^RSTL3vk32*^VJkE}$#TvXNxWCeA=Au#uANWUVp7e9- z5(SbIDiDOmRR;KhpVLGDBa^0&h1Lz=5*OfDn(vzxfQmjUxl(ja8$_B^uNxKG7AR`) z@{FFtLsi+-ILanQzk(fFxM|E{xcRD!^fB!EE@hJM2Tdw++RmwRL1Cex-{IqK4B7y+ z@e`TvKG4j*A()j{R9Rqf{EF$bB0*h=jv_`Ur&V~E$Aw~FM0u{Kj^Q-QnB-cqq(-F; z(<&{j^<6VQ{s-4D9=6?sz}S_+WQ$jZ*Fw{)Dapb924kOhEb1vZ`AOF^%93AO^KDrW zdeHvt!FM_92q+(Md^FAFW}K2r$o(zC-n%1RQs*1JJ@TTMHDV53#JV!r#u0kZGBV-I z_`Cns!ahoe=tph`u6%z}G}f%O6Rv=4c(;G{IUA!r;wtgDC`V#bZCxef-(H=-^Dw~A zP4=#}Z~DUqYn@pjzH6PvrdRMK_CNL6(I%`PLx}HFzZfo=^1uEb<92G*MRufj8yTm3 z@hoG%J=fe+V=30yG5wBPpzkTzLg2eOObi2s120&j)f}BVuXP>l0D^oGtO({w05sED z_rx35G_pOAbt-$9ybm_fxwpfvQs12Lglj?tHomQ`4J8Zyz{2f;qm)X+T8q&9RLKsx2I27QU0{|}vGpx; z%DK1tSm}JUguH(G69kg?dz;8dMLhBFW30B8Dy&l%jYVlT7A3slNNh&mz-mKPcDUYG zMR=572_Ss*PV?fvmBG%`k`L|-q$e`SxxyYFrr64uh~CR6X?$FuFOTZw5rYq~QgT*O zBov9p8!-Le7>&7mcnuNMVlg|JjqEWPifiM$^2;IQQvV^KSVg~2Z<^6~wL9|07b}+N z{Ja0>NdD|cxz_U9vDQ_w0=t0DlU)IeIt$UJzq}^nVRK%tk@{FkviK#{f?HTv zP2?rclLA5rPR?15%rg;rf$T^nR(K}<7vgQ0tHdn@ko^v%j-TUlV2YAxHfTm2u#Fkl zyjXdMz11_evqRHFm6p;QhFM+!=A2EEc9-LMLh4Zm?*WMPOoO^ zn@j;3On9lC1K$_vXr25r)iKZ1Ti`F(-Nj2x=U%_^nX85v?jwvdYk>%Zf#H%Cg;(x) zEAxsTr!yBdrG8MkhT&JH)2bocOjHs=i%7HgBc(clOzO*0a)Ijt)CN2QW)w#q1>pI5 zfg+`~mJ-xIuKol+82eq6mrxC{sXRPBb9eJloQ^zNh$iy;%e@Z#n96!ya^%*PuyB`K zHnNzVfA7G1vP}3uJ727VXa#fM>%F`dDSY~rIr+%u>+-i@ZYcl?YLySUJ62rOf&~#9 zqCV`z{39}Rumb%UoZhGVyzW5XLwB5w|C?`if zOqup^fKoHrSky!V285>?ivfc#OSIMIg?dMz3C_q&2AOMNYZ~X0t^dGPgMTKMdTPl! zMKXAc#DynL80U#;%()i8{#JViu4!3k>|OwUt@TktT>L@}zG+sN57y0v#%6jH?asuEiT=b;y@rtWth?9ZWfV;V1;0S?9Moq25 zvsEV1uB!-0=A+a=|L#6fXv4wf%e%3Dp(i8Q)JYEp5zTZ<+hk|ck;_r9ub6+jBUf-X zHJA#3ye!2$RM)UEwvu52tto5`jc@5(g5I8n7mt5);ai%jo=-lQZmsblwXe1N#nen~ z^=*r8>=uX4Bxq#MU73D>E_tftO)FJhg4&3p`G;Y2Vwusd_tQx^ICR|BKYrh+b0%`1 zMcNC}*mkCIq(nWBm`8i&x87ktv|}4CbZKV>?2TNq%<6A%GPcyJb)6ZLW~y*EgJO%v zBPuF*4~72;qFSU&ib-}j4uL1$ZBy*q`@aEA0NkVERz}r7sTM|It29*7pBDFk0M2vW zi*hX2boBF_eOlQE)dMZs=&Bz%h=DmDU+0x*MyNE0gD8$?#WSHEa= z{^1~@S`8mODL=4N7Yj*_1Z2afG1!)CpI}wzI9oKarKe{n*IpqL4+LD_g@3+Nyg$i; z+OR%_Fu?q%$I_(Yj_ENDpwP#PR#YBgibZK6BQnf{+!W;Sp7mkCWLy94*7hJOtBArS zd>M+mNsG1co%LR~xQ>*mqUoj@JXMoSTsq5n`!I#?O#nv;&r6mW$_1L8aTQ>(o{7h( z0ScC}y5dcpyg^`DSq;>^HOf;3wItQRNFu{Uo|R;VEBc`I3~&mJ<9U7?nGAiGIisvJ z+>8-_N?hx*QZ!_|JYo1@@N{EOorLW5V-oWIW1g$}0hTpm9v(Wv6H&MF1AR^ZQUXi7)xgkTw$usBGm4$A%1$Fd_R>%4>7sYh;aqtBMx6>7?no4`lw1N2o?aMt596m%GcSC`ho2+ z^Ur4sVZ$DY$Hf=YcelLqBYlX2W)`IS6^uod8?OI?iU0NtL(4d05!xwF^S~2O0SZ|> zvJe`X@AY@l00(YET1J3@Y_SXsIUJD;pceiTlb)le`>Tl>JdsV_hMuNEV0?EOTDM_0 z;YQO9{hnDIwy_2b$ETlt1aRs2%qdPjyx6MxH|$6PxLfb@q7J{R zpfNn7g$x1nx!N0OWL_LndIiN$F|4S8F~qM=Ye%w#r#c)IXK@`uoHM^T)EOokyAi~v zTus5})$!?Ry+b|?-H(c0hIO4qiEazp@@l!nM{XFc7&ulzWSn>_KK(@O7I;FfwT%1` zc1-CF`$hdOw!tm|OWV>c*9n&CP0>6t8HCHNE}_OE4EE%ElS;~%7Qzq#%Wr)r1>fR_ z`AHAR7}81Kukxd(Us94pW1KrVBl4HEt18&wzc)|(eJ+xSCw2-8(;nuAdroKOwdy(T zW~Z^SVsGj2&_51ctWhrXz>^-eeI?u@tBC&7)ZvbW$Un`X&t>L+^MU+TOfPvL-R`sH zsljX^IW3Nd?U8*$5%q?qkStvYk04?EF$Go@kVrG{O9{~6cNKMlqzoD z@rGNpVrXWr;P%|=P;iXz0hM^lPX!%kv(5HU;FI5y*D10Tp!9%<%lBtRzyHd!p_v?K zj^{ZR$TpW%2I`9GSr@ceNFVYLm=bF)4GiBBFgIA-{Njt0Ce#%0j8HagP|6LuN@^f$ zjD16%mdrmGmaIE$3mR4z_Zo>5UuLRF92iPSNykWxJB5rksuN%1h`nu1yDQ@ykw_l# z;5-&Mbl|aY5A{sv?$kGI=C*5?xQHUPU##|9UVFA*tW;{l0{Gm#gY89uvn!xT{sS%?i8B!Xe^;60GfE~`QGk*Z!$@Bf|WEMuIQUbI;nRj(k8g#xQ*WL zT@gEniDnpBQaBqMqstO!18_YdFu2%1KS6f0``Ykfi)0idFHeqQkzF9-Zih;iC zAh6a^pWL0RawDYrQ9XvA8?K|1je!ax$GIX`+ zyngY-d$UTv%ak&FaJR{RSN3z^zVw6D!&ir!bB5W{i5gDc3Vreyw(_3>DFLS?f)~Y` z9-VtlpE~*j?9ckMTn3_6lm34kPN<}cRbb5*N%ad^jldhIZPdp{IW||fPqfuZaTW%H zjb^b%NeZ>--dzZ3PS2J^6MVXtRPqjYA0~!HwVH1~J)DIrD5l?b{vv9U5Y@8S!e_Uc zt7(f3YopPO>Vv!#mXM%zkAaY2Q6+h)$2R3E84O89y2o5f^OIuJuXIx_6l$nTv*J z1}~mSTX_IwC`J*P2d7A@7$_X@6VauJmQ%k&!0c6EkEVKQV2>?K)QPnTrO{5`$gFae zZstOg&TZ&1{fg(6AqA;CX_|V{@bH(>_iWN^m&CHH~dth4pz#*fQPPZaFL|vZkUY#kB(3k8 zvDDk-xT_hg9yJ?%Ka!8^q-)ABsC#}A9gJ`CMgI6j(sH2&^Uqd+sufi9BLQ6%_v1wc zkfS4_CTb$WIF_2i5*hE7a*uO*F~M!LLI%72Ro!5Oul#F6tl@pNI_vc6cec>Yz#6pZ zF+8=~KX46`%vxu=x$CRgv@Izq?KbVMkL&xHgP7ZAL~cv#m`5U1m8A%c)QTHXg{Fsc zRU?co@i2dxzDN_JD4LZZ7xEkiQbjy}m+G>RLX9e=m6>7m+P)=_FRBx$>Y&*DWK{8P z6xqatkSS|npU;g+cDI(Ba7A7EbGqy|IHRax{!B%VTbP_$bs8iqBD%J-jKxqpLL|+c z87bQZ0cPIO#<)lM`!Ye{NnW^cT~0GE&UA-64`tBZbh$X`@c{F^&9mSJsNsn30(E}S zqjLanaj@Y|cc30L`CrL!>qHvz`Oing!&$4{zl+)_N}$;JmS)=M&$j)%ii)ZcVW@o} zRSw^n&|u4Q4^SoAe1tXi3Bpa)5&yCOn+du*yAXCw4hFm@<$852F!=8BfXSW9`CQaU zqS=LurJ|QPFXGuor#bXI99o7-=S-MGLPg(P=2KQjNXI* zB64aa3-d_2En_|Erk2tiRDxc>cUU_5`icGhat2ZC#8*&~1Z#zaAO=O97n)2>4ZKvk zKdTUak>sNE(Cl8d@NraP+OO4YIlShb4+)wXb9Ix`D(`jic+}IaR4U;verLw;b9esI zk7>qPIEDJh*;aV8BcCh7HG6-%Sg|i;xe50owOxB+stF+4h<0Y+flX8`42h@b5_zBO%)8pBCIQn=@IVQ znZx!Wk&`Cx7=xLJ-;YEh7hai&c23xHz>5zO3?uT`ho7z^VAA|*M$p4PQO^%a<;+AF zJ@+-Sn0!%y)YSXF(|w<4Vwj#apE_Tw^y4o3Ht{oc#BObu;7Zr5fzNU4)bA2O2h!OE zE8@u$QP2N(s0Nl}2BN;U@14l>SpDPsyVQ`*E3XH{yoe|u)WUa53CA^i#^oA*O;msH zwJYAysX`m%AT{+(1`sV`KowHkMGxD}6w>_r_)X0RV%ZJJkRW6sR46CN;rF46rQA!O zvyWoS1Aa?p@z+e*7<&~>Ph?rA@_+%5p$&)R|S$yN|xHli@+%9SF$2 z&vX0mVH<0<|DqdR=&KUuMPmOmh2E!U7mU1a1`n)on}u|#!6Vc3T>&F#2NYZXbvBxD zX|$LGjU2KlwiWJM&77QkkN&rZ_Bj1g$F1WT#fMxL@aVOpU@eobS{7Tvn;gMh?0MhQfVOd@JGBo*=6^m-!n5Mqjt1 z3m3$^n#$h!8|Ue()SLYh0h{*;V+}0WOevZerVF1xa9DPpL|q$kC_tRf8j0qWs`SZy z&owDWmzaEG2KPYw3meZDbXIb#e@J;fs)M(#>Dc}@?=DImB$2dBJ!s* z)@-8%hbjAWzseMQiNUKRZ0zi#Jw4yXcGH4+A!j%na}M+7=<=`6D+vu-vNcWORHHmh z{0%?uhD?Yn<_lxBBQl9_VxE`2QW;hs618~blIwbVx59)47qM}04$oZI8Su8sc*J22 zb4}HF0qqpBm+jP`-X}Ln2$b!rVE6p$bZ<#x?9p19PFy-)#v?9p03};m^|wO_YEV7p zd*hYHE8ZFTY|2R49LV3u_FR7YrD`7Wu;j!P$A=y}+?jUAE{m2{tui8QUk$RIChDaX z_yt{tX}^?uTq}A&Jf0Q73o5V~I$_qH8f|*YfiMv*Dg6m`%|iXf`4(Ale5BB& z(v@agxODeGL1XZgHd94@nTlrGpxv*#il<2$^>s33VdbQ9EF-$9i{~l208j4y1nlVt zF=6-fn>Tk%*ghvz$#3kaqVSi6Tz0=mvK91)D0B@E_<3N8m(OCdf6d0Kkg?E0`=uId z5fm$%*~IcPbjqISv>}hprRYmM&b;`xC^gpT?kY`?hP0V==5c*jijo(h=avbgav5 zGy*d?4sXVPBNSj5V`pK&MYGfllmMrAxeXHAV~uFzax+t2D8#5A#GS|{0KwsG04tz8 zp|yY$U*UAnF3gA)WMy2H2V4U6SH#HB#|R|EGhd&b9{9#H`NrsJC05w^;+g2Rn!o# zm&fgjOJ3qEVATWUm7ktptWGid^@1^-gZC5u=(>u#OR+qpC7d z;P`2>`66#Fgl3#7N`6+dgFQ*ms(9G>Ko#y2UTrD>`SU#jXziN-I*7XnUE)KV_eJ zZTP8BRI)hwzqOJ5)lUiWP{=E&mqb^Czi7Dvueq%AyZnKg#muY-%##Vc?F1pRyQ;|; z@NP(8?A!?$160gaY=|ycA1GNw@AdN8U-LhN+F1@!yb8Gp`vX*vRIn_oLka^kY^rJw z!U+*xR=#J`QdhxU=eu+)X$304SO=-Y2!Ott9JRd+*kYgO#ft45?x7AALtO-sV^tb+ z!VogJv}%66x`hT6oy-0p6Wil${2?BY& z+Otu|MEp>LHjM4R^<9rdDk@D51-`!UmjRk_mb*&hx)~qjd8>*-HTG|+Z1}f121rXk z&A(VlGfIC_L{oA>_$+UQOw%m|mfJX81`+)^h6C*W0Kr0-!5A?7AlS5EXyg9Y3*ZMQ z+3Ad3pb<%5jG!})Bx%4$FE>}DBQ2|QVXcC6ec_4r=@nyG%7rlgS{I2>4%-6Z!Lma} zVPs=V4duE{h|N9Lh1z;mJ#5&bPS7Xipy%XV-9N5(_Fu9Lil>P;uLamUiA`$0zE@ak zS5h;TSuZ9>keq4S(oeohIIUkIA7zM)5-!)mp&a9XZ*4Ehu#{op*G@tEC4OXzVNtm; zBu+!SFKSrBbIi?W6pO2)eO=#YSVs&|x2Ra#-`S(iHO6L?)E?_R&&SnH;{Ve?K+We^9ek zp$5ODS`%yhdg??~(u73}j)l`9!YuNTMTQW-na|~&R*~KhN3_a$XJMn{WF^ldG_gw> z*vgZa^e|KHS))0^tS%Y1APd6D5@10~xWLu!vS^HkJsUv-S}V(y z5B#B~m&JOUmXDRe=th&>$h%*f@x2mxK)CGj_0G*3Ypb*H)E}<5?nOng)rd!HQrBa4 zmJ_A6D`3^2V(rVlcm6qtN5{s0zcGKY!H(ZpT`k2~{-q)Fc!7n`vswG-Ij-DFIsqJ1 z$(cDvEFxT-JCfDp6PV5iuVV1ko&#uMr_!c^h;!bLQ11XXj>75z~%SrxN%?~4Xkm3?xFr%gA!TROf)Nr~n zQqYb6MGfEX%RRBnMy6>2Q)?N#YzC=P_B-2{ncD8$&=;pk88LLlp*e0q2GgM6@9`y- z!O|sRNE0fOGE9s1w_M{(1q}AKany^!%g&i|(~K>fJ-|JZZV^|Ru~r5DDNma~bi0iq zx-Q?qWjHzDIlt17d+|3;wtVV7cU%Mg$*G{dY*PuZeWo#9?rBy9Mi?VoR;{dPcn!zk zP@^5|E$b(jS1KvpC50&v@>0*$kgi9v9E3xs>QsH=Mfn+{S%Fi!0`K5&a-`KPqC-6h2 z(D**oT#Ds*QcYb4fyy||;lox@1AJDO>mP~;&@Q7{roLZAL@jeMOwnzIIOpb<5EE}X z$l?p}Hd7s19_)>kx?000B9oy7QB0|>hp0uc+e}%NM*3IU{L(AOu;Byn2k>j}r;uU{ zjrDxXf~0l%xxmws4@^xlkQ$jfBC+0?&su=x(?T<Z|5xH5 zTof}D&-^o9a)wMSvIA_Ts;kB}EPU`?DK7Z_E&diaj--PKK=#eH2h5jq7!8C6X_9AR zZ1BU9B(DN-ye?2;$O#Q3Z*Fonj8^jn?UmPyj!acilh}YfA<*4U1oDAWA0sV#|ChKs zsATpenq$jx;dZuxbB-85Q$k?Qg>&`iNY?VRHH{FQ&rNv5XUB2K&uJG z;ui*uCL4%i&iXyKZEa*v4)b~v8rOO^i@cGHCb(7 zP?Np#$kFsD=Ov!x6a#t~`K)_B$FH)bzmJn%C>W>Sbt@KN*)+^t{6{?he}+0h<|Dy> z&Yc=_baPYxR+A(J;a0NXKS4=7Zc#8h62^!((ZhdgSKPzY8UkfnadcBYEzR!>(j_)T zbv-HY;WPkTk;R86hk(YJg!vIH8caTmKYQV8{&@OWl8d;-hkIu|8El&JbLjx*Qj-c( zji4m0_22zJ}}YR;{$DL9=AT;1JkhKED+-3l6<+jX=*(e#6f6IArAcV1)jf6QDaRv zkM~`scJEJKbb58D`zbRw^*>sEJ>=j{^&7GvVSC(VERMC`PFK>Ex1*w>3v%KEotPs1 zs9hf%C>906;Nxf^cA;4+0~kq~75t6;TcYEMk_^^u6ySiHhXJ!j0iJ+il1V4|6@N34 zk+Qux|4Bd%L%;qqpg34QB^t#$kHraLi#&JuL`a^%t>O}A>Ym9qwk&^Mir5CN9OJhM zKItEkX*uDPc5+aN?11%wqMa3UQTtVe1Fd(3NRcn`WkZ~KxM4Pe5GK5c5IWQFzz8ON z8FCl!UFpeXH*dHtpG7g$Y?_cy`tDY7m?~|5zX0VtJp;$6q9FudyLq}b7Bo&Rk>D3W zvMOx zhb%!=4V|SNdsqC1CD%LnL4Zj$iHFQb1CNAF=!Jq;65TNJzo*r|#y>7>s_e=QSRoPa z{m023DPzo=gRH&w-B0p=K)|;Vl9~0A?wv3Sfv4t+kKt>dPohO*1s{WlX{XmiCk-$i5D@cfQV#CBbks+@%+WnGBz$;#ggF5q zN}VP`%+Awm`MgR1gYxeGBI_-K+HSY6VO)xpQk()siaSMvySsbw;_d{ev{-Q{?v$b} z4hd4+ix+n%c+lj{eV_k1^US=Tn8^&8By;`N-g~XJ*TtJL6+}iOA-uN%OP5m6>hRkl z`Eg}0d>%GS`$etG9EhF0r1(g36s zv2~YTrfk|Qs0VjR#oxRTs7r1Q(bp!v(_D?l*HuPuAtRxbc#@s?$9@I_%RvCeN|*%OJ8t(&$D7^8QI zduXOxf`YhKhsm57T;!X6(dCMDNb3n6f5t~8oP4lX$p@eKmPqR-09g2}Ki6h=4;lV= z@!?&XhiXQfry4^ow}?UJYdUk+{P~!+1fIQ{!X~9!vsz6DGi}lYHX_cUhDuMKb%&iz ziKuw{oXg!GX`19R%X^$lmC5F#j(jg2m*e&IXF1=hckZUT!L2p82kGBMu2zQNI2t5z&AA$Fy;GKKF*o>nUbXg-W*#p zlPbaZ!!vx}b=bVfHuNY|7!2fumg0yaHhW!FGXh%w##?LO1BP}3j7Q$fyfxtbipfU& zw#Z98OP-A{U0KDk>HBzQTKeOGp2ntcHeyRK+jOJ9z$i1jQ#(*&_#3M*Z)*#703srOHv_qCaNePb3QM;#DDx}&d+W`7Zwxa z(&)Xg#Dka!+F-eSm^6X!V>`}u@$21>nYZIbHkB7T;1f8Wp>ABM|;!BQoV_N-um!wV^DHF*nAdU>A zlgGuLR_Zk%bGg$SC|Y-2)2$o^t$k#O7JpwH9Yk;(;HE=;*CR!{S@o61kIlL4RWoKi z6{k)szV|Xx0&bz-F9tfv#dl%NrU@^RirYwvQ5`ua;xNQ6#WI;E!TzK0bBo5I_dIP(@D#s+3NSEABPVs(B;?)|@}LI1p-nWg1Sl&Q!4Rf94d3r@t*7IFEvcDz+$N*_Mo z0&7?S!XqzrByL2qb931hZTmHV4?i#GTR>*!2>(EG-NW~N8)9`c53KVQ*WX{OGCR%K zD5u-f3m5$#4z1}MpAWpq|9`mn|3)Nke3Yg2At|(iO|8B0gmT304A0nmKZaLDzh5MZ zXi&p*sOO(ERwLWDWR8$3_;M4^CyDx6%@#0ECX9rSt^kFkb!@VqcMtz`e{GoDw(H~b zdV>z30_Z2;&xxOD++Os67=jQ!^>xkOIS-O3<(MHd9#qPz7S7T=k$BXZa5rykf zKHj%lPMo8sg4DAI*w%{?VQ>f64P+wAWjY}E$n5M$){{wh>G!LszDVAZ0eNnmCj=QT}rIH=pI0g}NMh+>iC(YTqy-r2Ne59xc)bG;28xjl)l(b3tE4%Q z915;pkRVH4?S;(eymuDnX7`Z|iUVVMM1^IQ$ER~7E%);)80iay=8`&QaA*zMYLLme zzFy76q$R8MNE8ts6hNNMlMrMCpU1!%2*j_Ge_ZuS|LqFW4&7ohXPOM17c-uB%6?N! z^X>>|LD@5Wqu9dCC|%+%vIRjj3E>2%jvUU}q0Vu|G--T)9J715yPaC_ly|2UG~U67QS2q_IjMDS#7dv_nwx1=5~K{Z@}kj?RHfU zUT*xCaRpH@0tCfMPDYky(D}5S?&c#UZG(ZYUO=nvp6fqh01zFj{9HIlv0J-YDNaum zV1pf9-WKtFxAADIVf^(h=+m?W(ij)KPg)P1|Kb+W0FhSQI z9or7eOU~Gni#>N=T?n5I4!K>f+NcfKt*Xu22(WS8nw7WEWH#k;Mlk)^ke*tNE1VVz~ zTiU*-A^)0Y>vyq&pSI!5;7c~Q-rL}rzXs@By(=D%rFW8DGSqutX<3=E=Z?-!-|e z;2_e?HWsm|m%utTTZuA*qv9Fri=Bvh^%pKrYhaIdt-Vcx<}N}OUef(iCUyo3OHKsk z+G&}?Sr%G89IKyAN`IwQoyJDA0OGMJX!$`m&uv*~{Y($#jBwrTP#G z73RBn`%QlClJ#&EK#j{>9{F+we6CYU!&Kv|}l+94D@vWNyBnfV|uQFwxJw3T6&c_>J}WIF7knGw}N z#Xfu%>4gGPyZ*%|@W8KrZHZJDLQ6mpk?CoZ6ocxL!_KT+p6;t-MyG0`b@%-Y)X4F- z*KcZr9>opKpAvuX8V-O2GrUgZ`C2>?akaYK_w~L!kk7>db)PV7pwXYwb7y4}q4>Ig zUS5|-+(LF{t8^OuAg*nv&C8Z!A=;qpGKC$)Eo$iZO%{*f9r6}2HJ{_Avb%8QI>Jzz z6lp-%FKgZ=+XIO%BqDQGOuAPIOQi(>59!bwHMpE>$lvix;>nR*^w7=yQ29g&SQOxS zzQTyBzdR%@PU+$FNJX6FV}Y-z!mi4`!8@nUWcz~CtivUK4{vFir#jfaARG1My|M_7 zY&xx%L7aZ{Lp-jnfJ$W{JsX40Fg7z6jQJ7Nd658@N~8gr=3m5DR38v&09e4+D&Wsf zXZmq@=%C{cbCv}Q;2SD*5U>8>wSZ*zM9|@L1$SsFV@GB%`*KonQFZeNEsJlGm;=$x z$AxE~ZQ%=WMB?PdZ>4-q#He?N40A-20D-rM?YoD*WoE z4j3tplU>tf(1dTQ z$>{^xG!nk0Qxs#s)>v+CbYFL18N3pO7&jTC_oJ8IErcpvl+XxaK@=iU`S|I}$N)GQ zAVBG^|F(#WzJp~vW>#(FxETwXGk%5-XlExMbYOE}Q^uigLe2G^avT8EwQ&v6-dkX@ z*?-_q6n^$~nf7k3F~;f17kPoC;6vT*=kU=ku>sA-eUPD4 zyf8z%S;VxOHiaC9d4@iv6>ds25c>Kn?LzPJf;*DK6dO{b6ZdRwO^p)j;L+s^5-a0g z&GRoRUm7EriTY&v8vQ2UH$rl{id$rU6|tWA7Y1DV5O{w$Q3WmMG@!(J_YQ>cl{8&? z0xbcki=LMLE@)UiJt$r~gg_<{1PkS4lHrvzAo#aj9aNTeHt@5Z?R`tYqFAv@?r-w3 zNgyoL=XL95%<(SxX&wBIzNDnJ^<4kZ?YY*Kl*q zO5$tndX!9#)CXOq-%gaK1oE@j-LU6g>unb8-hsQdzqW<+O&-3QxpfnnBK&cSc{|pj zh1-*g;h}MThb11Uxkdam+**+- znM&$uI0=C~I{A^bMoeT9^#9YQhu6q&xWR8_j+oC!3_zx#2eBZFj_oh_5|{MwSSlIs zI>fIa-gaCo+7d`syZ-NgRFj0)oBPkHPcr@Av#^1cMpuZ?Va^c&AWe;=1J{pWe}ONo z$?Sj`tezocZ!D~3+^9+v4p7+_;^6t|gMm}*qZ&P-7gT9^C4HA=KW970W{%Qr_X?#&cUewq!z+Ios&~m zmU!yOYC`yUZ*A_LdOOF)CmcUPpShj$#k};XflsaMg-LJ82FRqs)X^i76N!ar{;{gO zN{r9Rwp&XRzBcurYVC91Wi%6mpxJInG@OV%iT= z4}MI1?WO+rf4mpWv%D4fIN@dka9*!jMI`_f9-V<6&o-F5U;Pb+fbY~-)h!`wVnrQj zv3}r3czROE3C+%^MX0W8*A2=2Lmgb?{%>8#Tk2|GVhoS27d=~EcYFo+olkQX&%hxG zwxHXSul5p;*_UGL&#dHB6soQY$DUlbRX~WvbCU=cE*?Qu_|YR6V&VAdK|-bga&H0A z=}!U#nud~nNwv6|glBgi5wE`mUlst(THg9UPd=4WiTF#}l6{72tX))GwmqKpb@?j0 zf}aKMV@QE6jUhelxdTuL9{eJ6&i(mwCb0SmMgvj<-SsQ%v>)S-I)$Fk`Ln_8=4K+U zCYIMPBz7Qh7|rhQI6lwQCQR?zb=YZhf5iCvQG5IST`(NBydy4TrK&cLmB$S_{ANyP z0rlb1eS7+d2Y&q!+CRDj1;T3%9<{DRutIHlT@o4^&1TUa_Mu*kKgddE>JrE4QS%znU z9w9)oI6U2&?|$)4;~2z?p^>dGG`=a#xcd+*Gjy4D|8FHOKVqL+xHcYWWx zo)2B|%B-5sZNFo;)a942-V%G3<9hh3yEm5o^KuzHzFt9)0TWk4&-;JJ*Z=GzsKiK~ z?$zDbT2$864Xc13$hlwg?|#w9O%DPC7@ZJzrpMoNH!n0WBB|llu&zH0!dBdIHJMO? z@pWJ7Aq8g~HzHolHQCUeN{cN(ME(aKmi}lSGeW{(QuL6CNG6k`C7W^lNYhQ1D$j)U zh7RY)h#+`_{7+Z|SXWNBB@l9Myz!lMuagC_JWQMx0z(u#N54uYDtun9@QV6 z%r+#t}F(=ZQ)+-==7mtb5aX9xZ@%3FTU;G;mnp%g{SIxHO_`zX}f5WxX1zi53iflNYR-jH##mWxF#~~sPc3~QLw=;va?vDcS6&4YHXW@TmC99vEk#2_? zNa7(dZ)@jaUQSYf+S7!&`!tpoAD=K>Em!z!tjDK#!7m-Zkl2IS$%e-uSH_ zzCU$YkJ!)T$$Wwq#xUdEc71Z(_8HxF0#T}cGIV1pw>BqVKjM;8XL>cUkTO0z^1L_C z2~z*Tf%lFEcCO(5od1fVnSdHlxrj?Z&?n^GaYpH;_styFHjR ze*`rh3&jGjKmDlvF#^A;m56*BAZrf0berL%4!s+_QFwr~SOx+q1lM-cKi!@Z#VT8u40rMhZi5Jf>)Zkh_vgerGFp zva4?~oA*g;xA@tyQYZA>#tUIQqC*p2{+t4(G=Ka3fwW4O_N#& zUgN(X2)Ql+a&-<=luyKhz`sEj#eovA3t)=H!>-_Ai0y~LDA%U*VU1AZH{(YRSF7t+ z%I3c}73I$v$-p!rX+mn~x!h37L@KRFnm1^m_@Eh7Zoq1+^|rNP%|l*X_#Oc)&ZtJ;wx|EBL!UA$wZ^orGQi zE`DPRk*!ousB{Xtv*r4AZks)<_|H|F*Y-X1l7g5eE{G&*pr#aC`xm0eGBgjO?@4%$ zur8i&EZ}$nr1^ruc4CkKi!%8~C>W0VnI|u97^WD%JN$`0j%_|YBOFu>+WZG)3SpKG+^lz8HtE)MX;F7$1p9TVaN`OwnmacSS`9)G- zXAl^4$1PQKt|1)ka^EtXAV@vuTNio*J%-HGg|2yR$_949CgOnwM;iz?+CL5c=%;Qw z01@Z*d6(0F+0BiJmz4|Ww=fsMlT3TsS@^R>uxetSQ8HuT3x)x25u_M$-8jcP5W?&*=grT{O{@9)7)uE$m^ZufJj4jR=FZpoA~7^1R$vb{FcF z_Dl6V@Jlv%+07BQOt2E{U$+81U~!h>=5qS1w_2%K37a&RR zLWX|BZ5)yCdH3m(X^=+K62;;B*0i7dG%co*rpCs~F;lKj6;e|qnH&Ut{Y~*ae#%c;!;y&O z9_PMX`Mj)k2fUH&km@bFCf{hM&CXCEM!k zF}dBoX!{eBN?ii9+y3-haoZXrM!6dKKL;pkg|`Sg$?+@$?TqPBPrCLfjJowvoIYW= zd){{D_V!dFM<&?bU#1S0YB>$>fL6bknD>Q5VtAVVJaHp)J2~rFt|by>y2gt~cD8-B zMQn;*fu@O9i#Ia$w_XJMTqL3HS>2mSn69^dix6>z!-TAn3eReSy^n#ixqxe8!um}u zOTMTL%d?)v4Hf&77^>UyN|NADpcLut-8&eL`FSw=K!}e&4pwqr_lI?pwM&8bv#@!$ zE~9(Ic}`#G+-thr6NJN0LNLQ@^wMt+zfY|4txgf^KHvYz1bwf4&k4HYYjjL~>n?s%HF-R78Fbc0 zupprdx^1eKTvH#ylsG@TRxecH>O$!_0wx6djXH7##r-hql3#=OB!xwpzq4q)o3YCh zjtS~Z5R@X{_Yl5LR=dpBfPI_qcwBqjNiBfon!?KJhN1AsBX7Y+OpIN=f(JC;KQ!!- ziynb%CS1u(^`l)K6$W=(sU7RWOcL-mU@URei<8Qbgr~bf2_5Y($Ff4#*Vim<&mWjM z4UbV>I6BF)?@1KXmJ@M-okE zZTtBgbwQ_2-W>1~d#)bW`$1Gh*zxlHxo7gZ)54FhP!L3>@#CCl+sU8FBG+Ked%~!e<~LodcW}0l03C}_Iz`^AZ2yL9b#9R zYu!g|5G*$gL-gvAo<~(oPPhBwesO1s6`llFBcr3y<<*noj|lAO-M@_IgONx5S#8fS zG&;L)9Ie%4eA_NnFRI8D^@_|k$ z^VpR?Y&eRiw#FGVgSGrhwLN-bJ{%7rDlcBmLvu?Wj>Q~Fw=F%5dwcE z=d;kbq|zDU=4`} zt*giDG#zzW;MwH;X{qcI4tT!f zAMDL0yFWP}z6}^5UD~r1i1Ri^B-6=;@?+1eFoawz=%N8>r<9S1(G9`4wv$e7shlSV zrxd-lYp(6ISSMJ8;(puqX?Q5CFFWAbG|@k>o#zrHS;9lM8VDN$V?P8s$G$>+^EQp5 zn1NmUfHa0sO zpV4UA=8w#+*teu=7{`mZ^75L5H@EZ23f>Lmy!e8UR48}U)OkLU(-zeWU;G)eM>tQ*VFaGcf z>o6+Ol;1MV%8hV&&79^w$ZzrIihBNoy+r^zd$nZTM%$~AijlI9ofJ+_C#_WO1*9J` zxK1J&C0Q*H_EjSi%@+7V85H*z7em_L%!>uqm#oI1<4_ba z*DIw`E%ac%!Af~DXI6iDGeUqfhu1eX^~u!teqkpqH7WI3@JFWCWJsh7buM3?;ivsa z3)rsdcm+;`)DO6ap^_!7R{u>u;>}1Zi;-sd7sm7If9Jk?Iwq)#B+lW?x~|odLl)RJ zJ|7UwX9UNhMB?qS(b3POyB(d2GF86Go$SR~r(hOaI{CSNK4~28M6vo3*BUy{kXGnF zg(Aae+F;nm75KFwup4w<#^$#JBR(UU5R$Rkl>S*A&y@;(K7~XqN>Giw#q7(yy^6#? zd5Zgtf?F3bUOgkNNOHN$tyWIytVZa!mGaVNLu^;Y+1TAuLIcpCXJPs?UZ1zMBs=8S z@3&VWiy>HJ4qY#NMw{_$of^|_>NFosdA)YWbuoZ;W9jEHh^+1YAL*A@1#oR_>YUzv zkJF}gEmBkl_+W#bdxc|2NQkjk*fxTaS*!Vte?`7_H(;3%j`GfLLx*LsmPePWvfJ&A z;Cb6GWv$;?@1W!dy)ofYfC6Coq5j5I0a(}kx;S;y)vlynV_I2Qyb{T`2OVC_$k6Bz z-p_iWojrsXJ^!^N@wEHr1KEm3Tg!+({HYn_V}5diI%71M9Z1keXf7)IaH_V|+dv zILT3KVKp86K`CEb*FP`K_Gz79UK1@Zoz?>r-+?%^=QoA}zqyC(`=y=6 z-iJJhJ&B9qg4+nR7qFT^5reBX1umQ%Z_$Ea6q$5fd6E(sqZJKBeq z97+#@KkqBUAPw}y0_&|FjcvQ$_}+|$OcDv5 zB%jrHyAIhR5gFfx3I7Ny!6l52NxeRjhQsdu73r$Aj zH;Z@;Lk!<0{A@@^gbT#GQDc<2T-54UbAb08odzk8&(5vC( zq$L;oV6Vk0Goz|n8E|eBQUMHl&|2~~RV5Z8+Nr`)BpH7gbHAia)ZxjpT50}iKl0Nf z-{r3u>1QX@;KgPEv4u%rfNuh`5cP&UO|gCcy|I{LakA;ItLrP#O!GkWr{GW{HGmHO zb4KV((Wk!6?23Y~(aP-h$_IhnF$BQ7ZGjx|85?mmZLg4zPEMN%Sov~VIFu?MNsfQ! zxN1sAabb{?v~cuRgyd@{uYVsw(I^S_F!?rLgofg6`QI!6MuPeJNg6*NUiW>#a_IRp zBxTYf7#*un;y^0p>Aqh2ybdBnQ(nhX&|}_L8v2xae8GDoUz8rc(lhH8w)^r*&GzGx zlb0a;_B1c2&D+srenk~>5RDa-G_$b5*DrfcWuw3svZG=QZBL5$1i#D#f7i$Jr&&pM zwDokM32>nlG{hcj=ZwuhX<^IuM?Cud_Z{tD?)tgJ^{_kbOYUT^nsE8woMGh9?2mrT zSmtHLYVFAxX?iZrzGB)q+iU?pcAYWXndQ&`uf9zR%=4@ah=WXC)_b*;-h7XuHVRU=ziVp7JqhmSm+Ch?|t}BDg(WU?P zcv=CD;q=ZztH0r#BDH$?X{}*1q(0>pzOUE@{6t65+b%)$JYlUc?ipEj`S9_FB3*U_wS86O?;9SUI1u%jGC|YaHcQR< z^UZ4JKhO1}0E##KCLh|VLr~k-vf}xTm0}$TN3Cza(a}3^!us0T626}8tsrR|F5CMw z!S2Jc0|CHR9Z-SCJY6LvGQjF(2rBE(-A9nn#qVvs&CeuQwb8wl1h@7EPvT9_m-hd* zH0REQ%)5e@Kf7YwApZv-)Ztxt;hwB7G?5Ga++_uzztg$}-CFJ&L8_|+$++*b-Cm=| z>meWKgeju|ShZ8XGfS4h@(?gkGH6J=k!aZ@E&1JSSR%*h9r6&WHHj>2J-$eeHB3=jM0^oB;I~h^i+!2YK&Jy#^lUu>Jg>! ziXm$0x^k;dHnq*w*5!k3r4h`GZ}F<}QC2G1KOA4KeQWqjHLI3sY}7nfKEBji!2S6p zRnh&=Kl8Tu1Z==t?m`k#GkinO*4H1>fU?Vd^ZS*~)Z4hK%iWnr0^_YA!xMZ!hrfUz zJ2OFv+{CgyCEU-bS2l_yL$vt>qN69o1v2(|7mxd;o?ndYMLlwT|Bx z@za9B#3-#DRy@AtjA3qgrs(dN=pimw`3VE^bF7lD_k81ouUKC)N%fO1DyN}C<6r}; zmc;(8>ZP>bK+UV&;uHOv7$>Yu8=jWmDKrYQw|zssV7p&pM_2egEdPqF04Vpf!*873 zx1%qem%KK|c)Y|(UgYKFwU4HTDmX4hbew94o-(%2Jg<1I*UGZn*5_{8a)rcoBJY*n zgoit@x%&l!Bm@ykA=A%Vl* z81?cxhr*Dmj z8cyS0a-QI3`n8Jccj)7C$HuqE<@2xYFJve08$aCh9wLEA%@L@6?8RL}%(v1L_v=^A zn_ps@KU6W}Yg)KU!wScl-xD?J3^D1u)+^<<@nwCcQDS!V+-LRMoA_psl-CErR{i;R zL>@_}EuWq(UleWuyUgrqIYnJ0ek8r$<#G$xxS;9#C|h%e@$<$m&^2-k6T6+dHP#(l zICO!R-F!vAQE@^zr?!m!L9L=1n-xF!Xr>_Dt)^A`@3KKU`>4T66V_szp7Z$MCIb$$ zoKuTKjy*fIS0di2(!9~7!oYp1(8Z#_T)#E&fgg$=%xj++wV*6G+-VFkZd#dHuie!8 z9Z>W^KDU6M%>u?Ht^({g)MuS)?+5s&gJa0&Yt2v>gx0lHPzj{7!#ge@F}7I~6B@m; zH+nOFr(eAwe$!fO;oc)^DQp#e64sQR6nfq3=!0YXt691Muc)I#wAy$+Fi-EpE54qH zGeYMLk-&MQI-N4mQtyEI=zm5VNit*@M~AgSY&(9vlV;E(>yPdIY7@>B$UKE=t4r;* z>U?kg2U58H#v?8(=+ez;xnM>;$nmdnc#vA?I(Kg9L-j2Bcr7gC$b5A0KeN(LDNBoc z(d{M6o#nv)G$h?#1mQzcPNc_)t2JFEjl?4;d+5S($W;DCZ_vY4ZIM9DOh!ruXsY!X zj-JM-%rbc&v+g7u^uBoap-b6AlD&Niie59kIj+`C&x(^0z;0poTaYnF@i`0(EA?Si zd`8`fu(ago6n&7l2_j8HM-gWIF@$L`HlrtPH>a@} zHwk{_3o9yG)lER02vK0-29;bpU8-^)D$#iqnK{(EJiO9a!x&y?>f^IOcXG z_?CIBD%@rhebsl!n>^e1Res5|S@ppdwD!decV_J^J`o2oj~81C8i<>xa1!twCwm@` zN6_op9bDC2`$@j_ts!no8XAR#(AeOYs{wR(F(f%8Jrblg<%p(+A}xy@-Z~0Q4y-gQ zeC8rYCABq)z0F+wPv5fLJPp-J(GLN-yIwpC()TuPv;9Y9fiE&F>(4y$+r4-#0H%`@ z5Ywx*z39o`BYV-?BnmAnd#4HZw^vITqVvIxAZQnjrNPa;^3kPnv$$C$_Yc!HQwYuT z93Oz#@TG&JBXZR$%GLo(Ruzb}7HdE=XVoG_ZG~7?5Z#p25u?4#rzpOU>ZS|2R)OX& zmR}=qa?K=slZgrczEJr3AwP8c+eD^`YnK^<^GIl-F&5`eZ>+QBm770p(Jx^LbFnOF zab7LAd(PzOKhtQb8o2*DyaRn;4kcRg*oSOnY-sd0fcLHqMs_np)b}rLPnS`TQ9C1C zOx`8+MkDnNGv$TlwI~c<5|94TNBJcw!MiZs+&O4uWJ`NMQS@sXiPyz&mCk+KGTj2U zrLTZ{r3xZc5q952D|;6sZYXD!(?blgo03Db_qR1-*9oImB&|A1Cx}iw0?c z(hFHW$GlFsVEBxaYP;S$X-4ET>fNSyMJGSjDeulKAI>@;)B9kOt8~FP z)dmL-oi5AGKSE802_&9A$y;0(>+ED%n-|V&HoHOU`xy(`tTU8-yo?IhZ?3(w1LU_Op-wH{>pb*>9u4{oUy`7!?Db z=UjkyeToEwh}EF|uhTqfgACXo-hH0#K4|-4H2qFNP(Vd5;5O0rmX&CclIT;{Ev3Ac~>3R`?J`#;FVN7#y}x{aJXX6I0|qzyyUG$(-HUv~$Q z0tg%#k>#jPeYW;Uf3~E{z9OuO84dqDJ7$Kz6G-x@D#*Q4z-7B_!j*bkp#IeKMXF%Ss0LG!v4v8Uz){A|@ zD)yQSPcU)}o}L^Ay!c`fWgp=bjrUswT`o$nQsWRYz7f&dYs~r_4Nw9T-}Al8w15Qw z(9a$5RM0cKS9|10&Dfc8-2o#py9?m^Hz0Vi=gwyA(a%PV3~>snKi)n*qu}SqiXGkS zFHssInlBSGKLA=_N9t{dq%A{8L%wGyW$d+c2yH>6Ce^isP#~AuL2O6Dsxj>h&HQpp z$I@{V>HZ3ppenZyUktZ2?QQ#N#tA*D8R74X2v01VKQ8t1$@sazv)w-z-m=xaH-8sE z#~e^nn+WF9X=4_)+6Mm9S;fG?mA%ig+A0~vjiWD0|N<^JGNXw4G#b~f>A2Yu+E1+sWA?pr{ChDw9VHooy2vm)wU1R-aU9M zoSDtl)l-RM@;AW$Y0)Mm;BP!FB{9ysC zUh_KmVWwc_CIN^FxEjldC{}bO?u&5xYnw@4{T>p$53Xb+PO+Bgg4uhHurLk79_tE- zonQE_kp9z{{fy|Yy;ILhPmGT8T-}2FJg$ATV2%Kpr~@wi8TV)+DXW9d?o(^8yw!9* zGTUxVm>o9Zir_H3{%~+b4raSUBawk!^ zz~;J;E?V9pL?5nV3MYK^f)ePL&~GtF|6hu#j81b6r?KWI&``jy4?P^zD6muC zz>1WTJImu&w8iL?0+b48vcl5_VV{jDHvwOB0agy_YQ(ZfB`z6F;sbK}1PyrN0>aWYVB{H{KZ zzYd=wYHac|e6Uh0l!$q_v&N3kre>)`EiFWns>b5|{m zLqxa>*iopCWpDF)1B|q(J`)qhsGw5mjrEeH*fN~OF${&I7}y9{H5-lu;BBc^#hmPC z`>7Ih8sf>lCc?xh(Tvbc0a95Hx(>t~DLa~RYaBVT-2`@WGBQ?DAydf@R^nPF3T<=O zSiuntXV>r$>qre5akQ zkafoudjMTlX|ocV zyY8U$JIjY19rdV71Jl}A4d;1l!={hX!7qI%8X{BQzF_?Eb5b0K7p7o_%-)kY&u)uc z!}y)beY%1(t*&q7S`4~EpQ<@zf;)=t7I3xX`A}_6K09*FHvMShh=zM?M0(~=u5}{~D|}dk*6CCeG~2gL_~I||wsRK}Tp(mV z2@lhfrIm1%V-$uqPjvCee^j)#+rN;5+?@G^Lc&#};7uITL!9l7vxk!Qaa!vA0yxR4 zR<4RKsIvuh!=ZVbquYC#q5`U%yW4t@p$ROQxDP%JhOI?P`k%FlsQ{tv+2~u*HpC9i zI&!A+`_i=UR>~$JXgN2)z3lP7F2)?fXRX$fL!A<0xW@a1#ZwxEv^R)-BHgRyWdo`E z{mAcFzvFSZp2%MJfqpmzxwzESV*e7CT%fz}Rbt93T&GOCKXn6YRC|QnoySTf!`51N zQYMR%GI55zSqrDlP!`$|{*_hXeuShOrx_op>#$V-sy3)GW`Tr2&@ZzmgT?KirL%w8 zNXj*u6tP1onM)en3VNXvqU-nho#PJZWn?4^W>6WQD@nQX_fGoNKM-Hq^nPWZQwz7Q z^Kz7za&hPM7uP?$yB%J5+hv|4(%Nma*9B#jdaLic_YBvctRIFArs5ZINe6*B6YQ^8 z5THuuU=%ZAooRN<7_u+jg8C1?`@9_Ka~E=Rkp!18qqz@}E91dntwKynkUwBG-#uv6 ziwl~66-Y}#y6&4X%zufyf3Wn#2`g>Yf1RjmU7}O%4EPaghvHD!IvCS8|BgJ!g7L+2qKp+L9Cb5{=wK^msgBs7 zJeQ=P+svrCp$4~9N2B0U_vze3FCJG(}Krc($6snC}%}TZAA&JP zqis0aKJq+G)`a3_A)VHXj;(^lc@_ez{S~^qto$!y1lJH;gS$%ufndR18xO%9f&>X95ZoPtySuwJ?hZji zaQCn~Ykh0|-x>Sg=Mn~ki|(3pzE$*l74pEWWA;oICuj z^f0aGoj@&}X~9-|gn216%zj=i;-7q#u|pM2q0)QHG`j%#MXYTpc> z0eiPK>DDa=LR}Go*5vVsw+8Q=Rt=PFNWJpUnL99L5OzRr;jd|^wS

                                                                                                      eX`#!>=aey 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 to build unique charts with React

                                                                                                      Build unique React charts


                                                                                                      Have you ever wanted to create your own chart for the web?

                                                                                                      Based on hundreds of graph examples, this gallery guides you through the basic concepts of data visualization with React and D3.js. It also provides ready-to-use templates to get started quicker.

                                                                                                      Stop using pre-made dataviz components → imagination will become the only boundary to your creativity.

                                                                                                      The gallery is organized by chart types following the data-to-viz classification.

                                                                                                      Contact

                                                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                      +Learn to build unique charts with React

                                                                                                      Build unique React charts


                                                                                                      Have you ever wanted to create your own chart for the web?

                                                                                                      Based on hundreds of graph examples, this gallery guides you through the basic concepts of data visualization with React and D3.js. It also provides ready-to-use templates to get started quicker.

                                                                                                      Stop using pre-made dataviz components → imagination will become the only boundary to your creativity.

                                                                                                      The gallery is organized by chart types following the data-to-viz classification.

                                                                                                      Contact

                                                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                        -
                                                                                                        \ No newline at end of file +
                                                                                                        \ No newline at end of file diff --git a/interactivity.html b/interactivity.html index 3697e7c6..d5f7137d 100644 --- a/interactivity.html +++ b/interactivity.html @@ -1,4 +1,4 @@ -Interactivity

                                                                                                        Interactivity

                                                                                                        Dataviz logo representing a Interactive chart.

                                                                                                        Interactivity is a key feature of any chart displayed on the web. It includes tooltip, hover effect, cross-graph interaction, zooming, panning and more.

                                                                                                        Interactivity is a big topic. This section aims at giving general tips and tricks on the topic together with applied examples ready to be used in your project.

                                                                                                        Useful links

                                                                                                        Work in Progress

                                                                                                        This section is a work in progress. 🚧

                                                                                                        For now, it just lists all the charts using Interactivity in the gallery.

                                                                                                        But I plan to write some complete tutorials on this passionating and complicated topic. You can subscribe to the project to know when it's ready!


                                                                                                        Subscribe


                                                                                                        GIF of a scatterplot with hover effect

                                                                                                        Scatterplot Hover effect

                                                                                                        How to add a hover effect to highlight a group on a scatterplot

                                                                                                        GIF of a bubble plot smoothly transitioning data

                                                                                                        Bubble plot data set transition

                                                                                                        How to smoothly animate the transition between dataset

                                                                                                        gif of a violin plot smoothly transitioning to a boxplot using shape morphism

                                                                                                        Violin to Boxplot transition

                                                                                                        Using shape morphism to smoothly transition from a boxplot to a violin and reverse

                                                                                                        GIF showing a violin plot with varying bucket size

                                                                                                        Bucket size effect

                                                                                                        Interactive example showing the bucket size effect on a violin chart

                                                                                                        GIF showing a mirror transition between a boxplot and a violin plot

                                                                                                        Boxplot to Violin plot

                                                                                                        Interactive example showing the difference between a boxplot and a violin

                                                                                                        GIF of a histogram with animated data transition

                                                                                                        Histogram dataset transition

                                                                                                        How to animate the transition between datasets

                                                                                                        GIF of a data update on a React barplot

                                                                                                        Barplot dataset transition

                                                                                                        How to smoothly animate the transition between dataset

                                                                                                        GIF of a line chart that animates between 2 dataset

                                                                                                        Line chart with dataset transition

                                                                                                        How to smoothly animate the transition between 2 dataset on a line chart

                                                                                                        GIF of a streamgraph react component that supports hover effect

                                                                                                        Streamgraph with hover effect

                                                                                                        How to add a hover effect on a streamgraph to highlight a group

                                                                                                        GIF of a streamgraph

                                                                                                        Offset and Smoothing transition

                                                                                                        An interactive streamgraph example showing how to animate transition between the chart stacking features.

                                                                                                        GIF of a streamgraph with multiple interactive features

                                                                                                        Streamgraph application

                                                                                                        Streamgraph with a slider to zoom on a time stamp and with interactive inline legends

                                                                                                        Contact

                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                        +Interactivity

                                                                                                        Interactivity

                                                                                                        Dataviz logo representing a Interactive chart.

                                                                                                        Interactivity is a key feature of any chart displayed on the web. It includes tooltip, hover effect, cross-graph interaction, zooming, panning and more.

                                                                                                        Interactivity is a big topic. This section aims at giving general tips and tricks on the topic together with applied examples ready to be used in your project.

                                                                                                        Useful links

                                                                                                        Work in Progress

                                                                                                        This section is a work in progress. 🚧

                                                                                                        For now, it just lists all the charts using Interactivity in the gallery.

                                                                                                        But I plan to write some complete tutorials on this passionating and complicated topic. You can subscribe to the project to know when it's ready!


                                                                                                        Subscribe


                                                                                                        GIF of a scatterplot with hover effect

                                                                                                        Scatterplot Hover effect

                                                                                                        How to add a hover effect to highlight a group on a scatterplot

                                                                                                        GIF of a bubble plot smoothly transitioning data

                                                                                                        Bubble plot data set transition

                                                                                                        How to smoothly animate the transition between dataset

                                                                                                        gif of a violin plot smoothly transitioning to a boxplot using shape morphism

                                                                                                        Violin to Boxplot transition

                                                                                                        Using shape morphism to smoothly transition from a boxplot to a violin and reverse

                                                                                                        GIF showing a violin plot with varying bucket size

                                                                                                        Bucket size effect

                                                                                                        Interactive example showing the bucket size effect on a violin chart

                                                                                                        GIF showing a mirror transition between a boxplot and a violin plot

                                                                                                        Boxplot to Violin plot

                                                                                                        Interactive example showing the difference between a boxplot and a violin

                                                                                                        GIF of a histogram with animated data transition

                                                                                                        Histogram dataset transition

                                                                                                        How to animate the transition between datasets

                                                                                                        GIF of a data update on a React barplot

                                                                                                        Barplot dataset transition

                                                                                                        How to smoothly animate the transition between dataset

                                                                                                        GIF of a line chart that animates between 2 dataset

                                                                                                        Line chart with dataset transition

                                                                                                        How to smoothly animate the transition between 2 dataset on a line chart

                                                                                                        GIF of a streamgraph react component that supports hover effect

                                                                                                        Streamgraph with hover effect

                                                                                                        How to add a hover effect on a streamgraph to highlight a group

                                                                                                        GIF of a streamgraph

                                                                                                        Offset and Smoothing transition

                                                                                                        An interactive streamgraph example showing how to animate transition between the chart stacking features.

                                                                                                        GIF of a streamgraph with multiple interactive features

                                                                                                        Streamgraph application

                                                                                                        Streamgraph with a slider to zoom on a time stamp and with interactive inline legends

                                                                                                        Contact

                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                          -
                                                                                                          \ No newline at end of file +
                                                                                                          \ No newline at end of file diff --git a/line-chart.html b/line-chart.html index 4af5c590..f628b6b6 100644 --- a/line-chart.html +++ b/line-chart.html @@ -1,4 +1,4 @@ -Line chart | The React Graph Gallery

                                                                                                          Line chart

                                                                                                          Dataviz logo representing a Line chart.

                                                                                                          A line chart or line graph displays the evolution of one or several numeric variables. This page is a step-by-step guide on how to build your own line chart component for the web, using React and D3.js.

                                                                                                          It starts by describing how the data should be organized and how to initialize the react component. It then explains how to compute the scales, and axes. Once this is done, it shows how to render the lines and suggests a few variations. 🙇‍♂️.

                                                                                                          Useful links

                                                                                                          The Data

                                                                                                          The dataset required to build a line chart is usually an array where each item is an object providing the x and the y values of the data point.


                                                                                                          Here is a minimal example:

                                                                                                          const data = [
                                                                                                          +Line chart | The React Graph Gallery

                                                                                                          Line chart

                                                                                                          Dataviz logo representing a Line chart.

                                                                                                          A line chart or line graph displays the evolution of one or several numeric variables. This page is a step-by-step guide on how to build your own line chart component for the web, using React and D3.js.

                                                                                                          It starts by describing how the data should be organized and how to initialize the react component. It then explains how to compute the scales, and axes. Once this is done, it shows how to render the lines and suggests a few variations. 🙇‍♂️.

                                                                                                          Useful links

                                                                                                          The Data

                                                                                                          The dataset required to build a line chart is usually an array where each item is an object providing the x and the y values of the data point.


                                                                                                          Here is a minimal example:

                                                                                                          const data = [
                                                                                                             {x:1, y: 90},
                                                                                                             {x: 2, y: 12},
                                                                                                             {x: 3, y: 34},
                                                                                                          @@ -93,4 +93,4 @@
                                                                                                           };

                                                                                                          Click on the buttons to trigger a smooth transition between the 2 line charts.

                                                                                                          Animation in dataviz using React is a big topic. It's impossible to go in-depth here! I will publish a dedicated blog post on the topic soon. Please subscribe to the newsletter if you want to be notified.

                                                                                                          Variations

                                                                                                          You now have the basic understanding on how to build a basic line chart component with React and d3.js. Below are a few examples showing how to build more complex graphs based on those principles.

                                                                                                          GIF of a radar chart, a line chart and a lollipop that animate between dataset

                                                                                                          Radar chart, line chart an lollipop with animated transition

                                                                                                          Three charts connected to same buttons, with smooth, synchronized animation when a button is clicked

                                                                                                          line charts with synchronized cursors

                                                                                                          Synchronized cursors

                                                                                                          Add a cursor synchronized on all your charts

                                                                                                          Picture of a timeseries chart made with React and D3.js: scatterplot and line chart in use.

                                                                                                          Timeseries with moving average

                                                                                                          A scatterplot used for timeseries, with the moving average shown as a line chart on top.

                                                                                                          Next

                                                                                                          The react graph gallery is under heavy development. Here is a list of things that will be added soon.

                                                                                                          ToDoHow to add a tooltip
                                                                                                          ToDoMulti groups line charts aka Spaghetti chart
                                                                                                          ToDoSync with a bar chart
                                                                                                          ToDoDual Y Axis
                                                                                                          ToDoInline legend with Reppel


                                                                                                          Subscribe to the gallery to know when it is ready!

                                                                                                          Subscribe


                                                                                                          Contact

                                                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                            -
                                                                                                            \ No newline at end of file +
                                                                                                            \ No newline at end of file diff --git a/lollipop-plot.html b/lollipop-plot.html index 680deca9..832f1cce 100644 --- a/lollipop-plot.html +++ b/lollipop-plot.html @@ -1,4 +1,4 @@ -Lollipop plot with React

                                                                                                            Lollipop plot

                                                                                                            Dataviz logo representing a Lollipop chart.

                                                                                                            A lollipop plot is a variation of the more common barplot. This page is a step-by-step guide on how to build your own lollipop for the web, using React and D3.js.

                                                                                                            It starts by describing how the data should be organized and how to initialize the lollipop component. It explains how to build the scales and axes and how to add the shapes. A few variations are described and a focus is made on the hover interaction. 🙇‍♂️.

                                                                                                            Useful links

                                                                                                            The Data

                                                                                                            The dataset required to build a lollipop is usually an array where each item is an object providing the name and the value of the group.


                                                                                                            Here is a minimal example:

                                                                                                            const data = [
                                                                                                            +Lollipop plot with React

                                                                                                            Lollipop plot

                                                                                                            Dataviz logo representing a Lollipop chart.

                                                                                                            A lollipop plot is a variation of the more common barplot. This page is a step-by-step guide on how to build your own lollipop for the web, using React and D3.js.

                                                                                                            It starts by describing how the data should be organized and how to initialize the lollipop component. It explains how to build the scales and axes and how to add the shapes. A few variations are described and a focus is made on the hover interaction. 🙇‍♂️.

                                                                                                            Useful links

                                                                                                            The Data

                                                                                                            The dataset required to build a lollipop is usually an array where each item is an object providing the name and the value of the group.


                                                                                                            Here is a minimal example:

                                                                                                            const data = [
                                                                                                               {name:"Mark", value: 90},
                                                                                                               {name:"Robert", value: 12},
                                                                                                               {name:"Emily", value: 34},
                                                                                                            @@ -68,4 +68,4 @@
                                                                                                             }

                                                                                                            → For the second effect, 2 svg rectangles must be drawn. The first one fills the full width and height of the row. It is the one that triggers the mouse event. (It is important to remember that a svg g element does not trigger mouse events. Only what is drawn inside it does). The second rectangle is the one that we see. We can add some vertical padding to it since it is not use for mouse detection.

                                                                                                            20406080100NicolasMarkMarionEmilyMélanieGabrielRobertPaul

                                                                                                            Try to hover a row in the lollipop above to reveal the hover interaction.

                                                                                                            Data transition

                                                                                                            It is very common to deal with various variables and compare the behaviour of some data items for them. It adds a nice touch to the graph to smoothly transition between 2 states using a quick animation.

                                                                                                            For the example below I rely on the react-spring library. This lib allows to quickly create spring animations using javascript. It results in a very a natural transition that can be interrupted without restarting from 0. (try to toggle between datasets quickly).

                                                                                                            It would be too long to explain the code here. Instead, I'm currently writing a set of dedicated tutorials. Please subscribe to the newsletter to know when this will be released.

                                                                                                            A lollipop chart with smooth transition between dataset.

                                                                                                            Variation

                                                                                                            Check a few other examples of the gallery involving lollipop plots:

                                                                                                            GIF of a radar chart, a line chart and a lollipop that animate between dataset

                                                                                                            Radar chart, line chart an lollipop with animated transition

                                                                                                            Three charts connected to same buttons, with smooth, synchronized animation when a button is clicked


                                                                                                            Contact

                                                                                                            👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                              -
                                                                                                              \ No newline at end of file +
                                                                                                              \ No newline at end of file diff --git a/map.html b/map.html index 9abf2db9..a2b9b206 100644 --- a/map.html +++ b/map.html @@ -1,4 +1,4 @@ -How to build a background map with React and D3.

                                                                                                              Background Map

                                                                                                              Dataviz logo representing a Map chart.

                                                                                                              This section is dedicated to background maps. It is the fundation required to build more interesting dataviz-related mapslike bubble maps, choropleth maps and more.

                                                                                                              The interactive sandboxes and explanation below explain how to read a geoJson file and draw its content using React. It also show how useful the d3-geo module can be to deal with this format, notably to control the various existing projections.

                                                                                                              Last but not least, this document also briefly explains how Leaflet can be used in a React environment to display interactive maps.

                                                                                                              Useful links

                                                                                                              The Data

                                                                                                              The first thing you need to build a map is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                                                                                                              Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                                                                                                              Here is a minimal example of the data structure:

                                                                                                              {
                                                                                                              +How to build a background map with React and D3.

                                                                                                              Background Map

                                                                                                              Dataviz logo representing a Map chart.

                                                                                                              This section is dedicated to background maps. It is the fundation required to build more interesting dataviz-related mapslike bubble maps, choropleth maps and more.

                                                                                                              The interactive sandboxes and explanation below explain how to read a geoJson file and draw its content using React. It also show how useful the d3-geo module can be to deal with this format, notably to control the various existing projections.

                                                                                                              Last but not least, this document also briefly explains how Leaflet can be used in a React environment to display interactive maps.

                                                                                                              Useful links

                                                                                                              The Data

                                                                                                              The first thing you need to build a map is the 2d coordinates of the boundaries of the regions you want to represent. If you are trying to build a world map, you need to know where the country boundaries are located 🤷‍♀️.

                                                                                                              Several formats exist to store such a piece of information. When working with d3.js, the expected format is geoJSON. A geoJSON file looks pretty much like this:


                                                                                                              Here is a minimal example of the data structure:

                                                                                                              {
                                                                                                                 "type": "FeatureCollection",
                                                                                                                 "features": [
                                                                                                                   {
                                                                                                              @@ -96,4 +96,4 @@
                                                                                                               }

                                                                                                              I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                              Map inspiration

                                                                                                              If you're looking for inspiration to create your next Map, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                              dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Map looks good!

                                                                                                              visit

                                                                                                              Contact

                                                                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                -
                                                                                                                \ No newline at end of file +
                                                                                                                \ No newline at end of file diff --git a/network-chart.html b/network-chart.html index 3b7c8b6a..779d32b2 100644 --- a/network-chart.html +++ b/network-chart.html @@ -1,4 +1,4 @@ -How to build a Network Diagram with React and D3.

                                                                                                                Network diagram

                                                                                                                Dataviz logo representing a Network chart.

                                                                                                                A network diagram shows the interconnections between entities. It is consituted by nodes that represent entities and by links that show relationships between entities.

                                                                                                                This page is a step by step tutorial explaining how to build a network diagram component with React and D3.js. It relies on the d3-force plugin to compute the node positions. It comes with explanations and code sandboxes. It starts by simple concepts like how to format the data and how to draw nodes and links in SVG, and then goes further with hover effect, tooltip and more.

                                                                                                                Useful links

                                                                                                                The Data

                                                                                                                Two layers of information are required to build a network diagram: a list of nodes to build the circles and a list of links to build the lines.

                                                                                                                Many different data structures can be used to store such information. In this tutorial I suggest to start with the following:

                                                                                                                export const data = {
                                                                                                                +How to build a Network Diagram with React and D3.

                                                                                                                Network diagram

                                                                                                                Dataviz logo representing a Network chart.

                                                                                                                A network diagram shows the interconnections between entities. It is consituted by nodes that represent entities and by links that show relationships between entities.

                                                                                                                This page is a step by step tutorial explaining how to build a network diagram component with React and D3.js. It relies on the d3-force plugin to compute the node positions. It comes with explanations and code sandboxes. It starts by simple concepts like how to format the data and how to draw nodes and links in SVG, and then goes further with hover effect, tooltip and more.

                                                                                                                Useful links

                                                                                                                The Data

                                                                                                                Two layers of information are required to build a network diagram: a list of nodes to build the circles and a list of links to build the lines.

                                                                                                                Many different data structures can be used to store such information. In this tutorial I suggest to start with the following:

                                                                                                                export const data = {
                                                                                                                   nodes: [
                                                                                                                       { id: "Myriel", group: 'team1' },
                                                                                                                       { id: "Anne", group: 'team1' },
                                                                                                                @@ -99,4 +99,4 @@
                                                                                                                 }

                                                                                                                I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                Network inspiration

                                                                                                                If you're looking for inspiration to create your next Network, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Network looks good!

                                                                                                                visit

                                                                                                                Available forces

                                                                                                                The exausthive list of forces that can be applied to nodes is available in the official documentation. Here is an overview of the main ones:

                                                                                                                • d3.forceManyBody() → simulates attraction between nodes if its strength is positive, repulsion otherwise.

                                                                                                                • d3.forceCenter() → translates nodes uniformly so that the mean position of all nodes is at a given position.

                                                                                                                • d3.forceCollide() → tries to avoid node collision and overlap. You can provide a radius and a strength.

                                                                                                                • d3.forceLink() → pushes linked nodes together or apart according to the desired link distance.

                                                                                                                • d3.forceX() → applies a force toward a X position to all nodes. d3.forceY() is also available.
                                                                                                                Radius used to avoid collision: 25
                                                                                                                ManyBody strength: 0
                                                                                                                ForceY strength: 0.1

                                                                                                                A first network diagram built using react and d3-force.

                                                                                                                Variations

                                                                                                                Once you've understood how to build a basic network diagram with d3 and react, it opens an infinite world of customization. Here are a few examples using the same concepts.

                                                                                                                Click on the overview below to get details and code.


                                                                                                                Picture of a circle packing chart made using the d3-force plugin

                                                                                                                Circle Pack with d3-force

                                                                                                                Another approach to build a circle packing chart using physical forces to compute node positions.

                                                                                                                Picture of a vertical arc diagram

                                                                                                                Vertical arc diagram

                                                                                                                The vertical version of the arc diagram is more convenient to display labels

                                                                                                                Picture of a force directed network chart showing character co-occurence in les miserables

                                                                                                                Force directed graph

                                                                                                                A force directed network chart showing character co-occurence in les miserables

                                                                                                                Contact

                                                                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                  -
                                                                                                                  \ No newline at end of file +
                                                                                                                  \ No newline at end of file diff --git a/parallel-plot.html b/parallel-plot.html index 55a71bdc..98ee8897 100644 --- a/parallel-plot.html +++ b/parallel-plot.html @@ -1,4 +1,4 @@ -Parallel Coordinate chart | React graph gallery

                                                                                                                  Parallel coordinates

                                                                                                                  Dataviz logo representing a Parallel1 chart.

                                                                                                                  A parallel coordinate chart is a type of visualization used to represent multivariate data on a two-dimensional plane by plotting each variable as a separate axis arranged in parallel, and then connecting the data points with lines.

                                                                                                                  This page is a step-by-step guide on how to build your own parallel coordinate chart for the web, using React (for rendering) and D3.js (to compute the axis, and shape coordinates).

                                                                                                                  It starts by describing how the data should be organized and how to initialize the parallel coordinate component. It then explains how to compute axis dynamically, and plot the lines and axis. Once this is done, it shows how to deal with scaling and how to add an interactive legend. 🙇‍♂️.

                                                                                                                  Useful links

                                                                                                                  The Data

                                                                                                                  The dataset provides several numeric values for a set of data points. It can also add some categorical variables that can be added to customize the marker colors.

                                                                                                                  The suggested data structure is an array of object, where each object is a data point. It can have as many numeric properties as needed.


                                                                                                                  Here is a minimal example of the data structure:

                                                                                                                  const data = [
                                                                                                                  +Parallel Coordinate chart | React graph gallery

                                                                                                                  Parallel coordinates

                                                                                                                  Dataviz logo representing a Parallel1 chart.

                                                                                                                  A parallel coordinate chart is a type of visualization used to represent multivariate data on a two-dimensional plane by plotting each variable as a separate axis arranged in parallel, and then connecting the data points with lines.

                                                                                                                  This page is a step-by-step guide on how to build your own parallel coordinate chart for the web, using React (for rendering) and D3.js (to compute the axis, and shape coordinates).

                                                                                                                  It starts by describing how the data should be organized and how to initialize the parallel coordinate component. It then explains how to compute axis dynamically, and plot the lines and axis. Once this is done, it shows how to deal with scaling and how to add an interactive legend. 🙇‍♂️.

                                                                                                                  Useful links

                                                                                                                  The Data

                                                                                                                  The dataset provides several numeric values for a set of data points. It can also add some categorical variables that can be added to customize the marker colors.

                                                                                                                  The suggested data structure is an array of object, where each object is a data point. It can have as many numeric properties as needed.


                                                                                                                  Here is a minimal example of the data structure:

                                                                                                                  const data = [
                                                                                                                     {var1: 5.1, var2: 3.5, ..., group: 'setosa'},
                                                                                                                     {var1: 4.9, var2: 3.0, ..., group: 'setosa'},
                                                                                                                     ...
                                                                                                                  @@ -84,4 +84,4 @@
                                                                                                                   }

                                                                                                                  I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                  Parallel inspiration

                                                                                                                  If you're looking for inspiration to create your next Parallel, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                  dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Parallel looks good!

                                                                                                                  visit

                                                                                                                  Contact

                                                                                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                    -
                                                                                                                    \ No newline at end of file +
                                                                                                                    \ No newline at end of file diff --git a/pie-plot.html b/pie-plot.html index 4f62af5c..97cc4d94 100644 --- a/pie-plot.html +++ b/pie-plot.html @@ -1,4 +1,4 @@ -Pie chart with React

                                                                                                                    Pie chart

                                                                                                                    Dataviz logo representing a Pie chart.

                                                                                                                    A pie chart is a type of graph used to visually represent data as a circular, segmented chart. The chart is divided into slices, where the size of each slice represents the proportion of data that falls within a particular category or group.

                                                                                                                    This post explains how to build a pie chart with react, using the pie() function of d3.js. It describes the expected data format, how the Pie component must be structured, how to compute the slice positions and how to render those slices. Last but not least, it provides the implementation for common use-cases like hover effect and data transition.

                                                                                                                    Useful links

                                                                                                                    The Data

                                                                                                                    The dataset required to build a pie chart is pretty simple. It is an array where each item represents a group of the pie chart. Each item is an object with 2 properties. They provide the group name (name) and its value (value).


                                                                                                                    For instance, here is the dataset used for the simple pie chart below:

                                                                                                                    const data = [
                                                                                                                    +Pie chart with React

                                                                                                                    Pie chart

                                                                                                                    Dataviz logo representing a Pie chart.

                                                                                                                    A pie chart is a type of graph used to visually represent data as a circular, segmented chart. The chart is divided into slices, where the size of each slice represents the proportion of data that falls within a particular category or group.

                                                                                                                    This post explains how to build a pie chart with react, using the pie() function of d3.js. It describes the expected data format, how the Pie component must be structured, how to compute the slice positions and how to render those slices. Last but not least, it provides the implementation for common use-cases like hover effect and data transition.

                                                                                                                    Useful links

                                                                                                                    The Data

                                                                                                                    The dataset required to build a pie chart is pretty simple. It is an array where each item represents a group of the pie chart. Each item is an object with 2 properties. They provide the group name (name) and its value (value).


                                                                                                                    For instance, here is the dataset used for the simple pie chart below:

                                                                                                                    const data = [
                                                                                                                       {name:"Mark", value: 90},
                                                                                                                       {name:"Robert", value: 12},
                                                                                                                       {name:"Emily", value: 34},
                                                                                                                    @@ -99,4 +99,4 @@
                                                                                                                     }

                                                                                                                    I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                    Pie Chart inspiration

                                                                                                                    If you're looking for inspiration to create your next Pie Chart, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                    dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Pie Chart looks good!

                                                                                                                    visit

                                                                                                                    Data transition

                                                                                                                    The Pie component expects a data prop. What should we do when this data changes?

                                                                                                                    By default, the chart will update instantly, with no transition. Adding a smooth transition gives a nice polish touch to the graph. Try to switch between the 2 datasets below to see the animation in action.

                                                                                                                    The code below relies on the react-spring library. Instead of rendering a path for each slice, it uses a animated.path component that handles the spring animation for us.

                                                                                                                    The implementation is not trivial. I plan to publish a full tutorial on react-spring for data visualization soon. You can subscribe here to be notified when it is ready.

                                                                                                                    A donut chart with clean inline legends, built thanks to the centroid function of d3.js.

                                                                                                                    Note: check the blue group that appears / disappears between dataset. This kind of enter/exit pattern is something to keep in mind when building animations.

                                                                                                                    Pie chart to barplot

                                                                                                                    Pie charts are often criticized since angles are hard to read. Let's represent the same data using a pie chart or a barplot, to see what's the most insightful 🤷‍♂️.

                                                                                                                    Note that here we animate the transition between different shape types: each arc becomes a rectangle and reciprocally. This is made possible thanks to the flubber library, used in coordination with react-spring.

                                                                                                                    Once more, a full tutorial is needed here. You can subscribe here to be notified when it is ready. In the meanwhile, the code of this specific example is provided below.

                                                                                                                    Transition from a pie chart to a barplot with a smooth animation using the buttons on top.

                                                                                                                    Contact

                                                                                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                      -
                                                                                                                      \ No newline at end of file +
                                                                                                                      \ No newline at end of file diff --git a/radar-chart.html b/radar-chart.html index c8991b0f..7a5eb040 100644 --- a/radar-chart.html +++ b/radar-chart.html @@ -1,4 +1,4 @@ -Radar chart | React graph gallery

                                                                                                                      Radar Chart

                                                                                                                      Dataviz logo representing a Spider chart.

                                                                                                                      A radar or spider or web chart is a two-dimensional chart type designed to plot one or more series of values over multiple quantitative variables. Each variable has its own axis, all axes are joined in the center of the figure.

                                                                                                                      This page is a step-by-step guide on how to build your own radar chart for the web, using React (for rendering) and D3.js (to compute the axis, and shape coordinates).

                                                                                                                      It starts by describing how the data should be organized and how to initialize the Radar component. It then explains how to compute axis dynamically, and plot the lines and axis. Once this is done, it shows how to deal with scaling and how to add an interactive legend. 🙇‍♂️.

                                                                                                                      Useful links

                                                                                                                      The Data

                                                                                                                      The dataset provides several numeric values for a set of data items.

                                                                                                                      The suggested data structure is an array of object, where each object is a data item. It can have as many numeric properties as needed. It also has a name property that identifies the data item.


                                                                                                                      Here is a minimal example of the data structure:

                                                                                                                      const data = [
                                                                                                                      +Radar chart | React graph gallery

                                                                                                                      Radar Chart

                                                                                                                      Dataviz logo representing a Spider chart.

                                                                                                                      A radar or spider or web chart is a two-dimensional chart type designed to plot one or more series of values over multiple quantitative variables. Each variable has its own axis, all axes are joined in the center of the figure.

                                                                                                                      This page is a step-by-step guide on how to build your own radar chart for the web, using React (for rendering) and D3.js (to compute the axis, and shape coordinates).

                                                                                                                      It starts by describing how the data should be organized and how to initialize the Radar component. It then explains how to compute axis dynamically, and plot the lines and axis. Once this is done, it shows how to deal with scaling and how to add an interactive legend. 🙇‍♂️.

                                                                                                                      Useful links

                                                                                                                      The Data

                                                                                                                      The dataset provides several numeric values for a set of data items.

                                                                                                                      The suggested data structure is an array of object, where each object is a data item. It can have as many numeric properties as needed. It also has a name property that identifies the data item.


                                                                                                                      Here is a minimal example of the data structure:

                                                                                                                      const data = [
                                                                                                                         {var1: 5.1, var2: 3.5, ..., name: 'Mark'},
                                                                                                                         {var1: 4.9, var2: 3.0, ..., name: 'Rosa'},
                                                                                                                         ...
                                                                                                                      @@ -89,4 +89,4 @@
                                                                                                                       }

                                                                                                                      I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                      Spider / Radar inspiration

                                                                                                                      If you're looking for inspiration to create your next Spider / Radar, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                      dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Spider / Radar looks good!

                                                                                                                      visit

                                                                                                                      Radar chart with several groups

                                                                                                                      The process to get a radar chart with several groups is very similar to the previous example.

                                                                                                                      We just need to create a color scale and add a shape for each item of the dataset through a loop. Do not try to add too many groups on the same figure, it make it totally unreadable.

                                                                                                                      speedaccelerationconsosafetystyleprice

                                                                                                                      A radar chart with several groups displayed on the same figure. Made with React and d3.js

                                                                                                                      ToDospider chart with small multiple to make it more readable

                                                                                                                      Animation

                                                                                                                      It is common to have a radar chart that is updated when a button is clicked on the application. It is possible to implement a smooth, animated transition between states thanks to the react-spring library.

                                                                                                                      The following example illustrates this with a real world example. The radar chart is animated, together with a line chart and a lollipop.


                                                                                                                      GIF of a radar chart, a line chart and a lollipop that animate between dataset

                                                                                                                      Radar chart, line chart an lollipop with animated transition

                                                                                                                      Three charts connected to same buttons, with smooth, synchronized animation when a button is clicked

                                                                                                                      Contact

                                                                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                        -
                                                                                                                        \ No newline at end of file +
                                                                                                                        \ No newline at end of file diff --git a/react-d3-dataviz-course.html b/react-d3-dataviz-course.html index f5f28465..5da36c5a 100644 --- a/react-d3-dataviz-course.html +++ b/react-d3-dataviz-course.html @@ -1,4 +1,4 @@ -Dataviz with react online course

                                                                                                                        Dataviz with React fundamentals


                                                                                                                        Mastering chart creation with React and D3 involves understanding a multitude of concepts. It took me 5 years to get them.

                                                                                                                        The gallery offers hundreds of examples and several ready-to-use components to help you get started.

                                                                                                                        However, to truly grasp the big picture, guidance is essential. It took me thousands of hours to achieve this understanding, and I'm here to guide you!

                                                                                                                        Module 0

                                                                                                                        Introduction

                                                                                                                        While you're likely familiar with React, you might not know that D3 is the essential JavaScript library for data visualization.

                                                                                                                        This module provides a quick overview of the tools needed to create great charts in a browser.

                                                                                                                        Module 2

                                                                                                                        Scales

                                                                                                                        Your svg area goes from 0 to 500px. Your data goes from 0 to 100. If the value of a data point is 30, where should you draw it?

                                                                                                                        You need a scale to find out.

                                                                                                                        Module 4

                                                                                                                        Responsiveness

                                                                                                                        Some people have big monitors when others will read your work on their phone. Let's see how to make your graph look good in any situation.

                                                                                                                        Module 6

                                                                                                                        Tooltip

                                                                                                                        Let's check how to add a tooltip. Give a tooltip definition. Give several tooltip component starters.

                                                                                                                        Module 8

                                                                                                                        Legend

                                                                                                                        Those little legends are often small, but as complicated to build as the main graph. This module provides a few ready to use legend components.

                                                                                                                        Module 10

                                                                                                                        Canvas

                                                                                                                        With thousands of shapes on your graph, using SVG will make your graph slow.

                                                                                                                        Canvas is an alternative way to draw on a screen. Much more performant, but harder to deal with.

                                                                                                                        Module 1

                                                                                                                        SVG

                                                                                                                        A graph is basically a compendium of shapes drawn on a screen.

                                                                                                                        The most common way to draw shapes in a browser is to use SVG. Let's learn the essential of what SVG is, step by step.

                                                                                                                        Module 3

                                                                                                                        Axes

                                                                                                                        Now that we know how to add shapes on the graph, it is time to add context to it. Let's see how to draw axes.

                                                                                                                        Module 5

                                                                                                                        Hover effect

                                                                                                                        You want something to happen when a graph element is hovered. This module dives into several strategies using CSS and Javascript. It provides a clear mental modal of the main use cases and how to deal with each of them.

                                                                                                                        Module 7

                                                                                                                        Reading data

                                                                                                                        Your data can be a json file or a tabular format. It can be hosted locally or available through an API. How can you read it?

                                                                                                                        Module 9

                                                                                                                        Animation

                                                                                                                        Let's dig into those smooth dataset transition that make the viz magical. It's challenging, but react-spring is of great help here.

                                                                                                                        Contact

                                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                        +Dataviz with react online course

                                                                                                                        Dataviz with React fundamentals


                                                                                                                        Mastering chart creation with React and D3 involves understanding a multitude of concepts. It took me 5 years to get them.

                                                                                                                        The gallery offers hundreds of examples and several ready-to-use components to help you get started.

                                                                                                                        However, to truly grasp the big picture, guidance is essential. It took me thousands of hours to achieve this understanding, and I'm here to guide you!

                                                                                                                        Module 0

                                                                                                                        Introduction

                                                                                                                        While you're likely familiar with React, you might not know that D3 is the essential JavaScript library for data visualization.

                                                                                                                        This module provides a quick overview of the tools needed to create great charts in a browser.

                                                                                                                        Module 2

                                                                                                                        Scales

                                                                                                                        Your svg area goes from 0 to 500px. Your data goes from 0 to 100. If the value of a data point is 30, where should you draw it?

                                                                                                                        You need a scale to find out.

                                                                                                                        Module 4

                                                                                                                        Responsiveness

                                                                                                                        Some people have big monitors when others will read your work on their phone. Let's see how to make your graph look good in any situation.

                                                                                                                        Module 6

                                                                                                                        Tooltip

                                                                                                                        Let's check how to add a tooltip. Give a tooltip definition. Give several tooltip component starters.

                                                                                                                        Module 8

                                                                                                                        Legend

                                                                                                                        Those little legends are often small, but as complicated to build as the main graph. This module provides a few ready to use legend components.

                                                                                                                        Module 10

                                                                                                                        Canvas

                                                                                                                        With thousands of shapes on your graph, using SVG will make your graph slow.

                                                                                                                        Canvas is an alternative way to draw on a screen. Much more performant, but harder to deal with.

                                                                                                                        Module 1

                                                                                                                        SVG

                                                                                                                        A graph is basically a compendium of shapes drawn on a screen.

                                                                                                                        The most common way to draw shapes in a browser is to use SVG. Let's learn the essential of what SVG is, step by step.

                                                                                                                        Module 3

                                                                                                                        Axes

                                                                                                                        Now that we know how to add shapes on the graph, it is time to add context to it. Let's see how to draw axes.

                                                                                                                        Module 5

                                                                                                                        Hover effect

                                                                                                                        You want something to happen when a graph element is hovered. This module dives into several strategies using CSS and Javascript. It provides a clear mental modal of the main use cases and how to deal with each of them.

                                                                                                                        Module 7

                                                                                                                        Reading data

                                                                                                                        Your data can be a json file or a tabular format. It can be hosted locally or available through an API. How can you read it?

                                                                                                                        Module 9

                                                                                                                        Animation

                                                                                                                        Let's dig into those smooth dataset transition that make the viz magical. It's challenging, but react-spring is of great help here.

                                                                                                                        Contact

                                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                          -
                                                                                                                          \ No newline at end of file +
                                                                                                                          \ No newline at end of file diff --git a/react-dataviz-animation-with-react-spring.html b/react-dataviz-animation-with-react-spring.html index 03953c7d..ed77f87f 100644 --- a/react-dataviz-animation-with-react-spring.html +++ b/react-dataviz-animation-with-react-spring.html @@ -1,7 +1,7 @@ -React-spring for data visualization

                                                                                                                          React-spring for data visualization


                                                                                                                          This post is dedicated to react-spring, a javascript library for spring animations. It quickly explains what it is and how it works, and then explains how it can be used in the field of data visualization.

                                                                                                                          A minimal react-spring dataviz example. A viz component expect a position and a color prop. But it smoothly animates the transition.

                                                                                                                          What is spring animation

                                                                                                                          Spring animations are different than typical CSS easing animation. They're built on spring physics, which gives a more fluid and organic feel. The best way to be introduced to this concept is to read Josh Comeau's friendly Introduction to Spring Physics

                                                                                                                          To quote him directly:

                                                                                                                          Spring physics are like a secret ingredient; they make all animations taste better

                                                                                                                          Basic react spring animation

                                                                                                                          The best tool to build a spring animation in the react world is react-spring, a library dedicated to it. If you're not familiar with it already you probably want to take a look at their home page.

                                                                                                                          Let's start with a basic example showing how to animate a very basic viz component that just renders a circle.

                                                                                                                          A very basic animation using react and react-spring.

                                                                                                                          The useSpring funtion can take 2 types of input: an object or a function

                                                                                                                          • if object, it returns an object that has the values of our animation
                                                                                                                          • if function, it returns an array of length 2. First item is the object mentionned above. item 2 is the api that controls the spring. api is used for imperative style

                                                                                                                          Animating axes

                                                                                                                          A common hassle is to animate axes, since it's a lot of svg elements.

                                                                                                                          A very basic animation using react and react-spring.




                                                                                                                          Contact

                                                                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                          +React-spring for data visualization

                                                                                                                          React-spring for data visualization


                                                                                                                          This post is dedicated to react-spring, a javascript library for spring animations. It quickly explains what it is and how it works, and then explains how it can be used in the field of data visualization.

                                                                                                                          A minimal react-spring dataviz example. A viz component expect a position and a color prop. But it smoothly animates the transition.

                                                                                                                          What is spring animation

                                                                                                                          Spring animations are different than typical CSS easing animation. They're built on spring physics, which gives a more fluid and organic feel. The best way to be introduced to this concept is to read Josh Comeau's friendly Introduction to Spring Physics

                                                                                                                          To quote him directly:

                                                                                                                          Spring physics are like a secret ingredient; they make all animations taste better

                                                                                                                          Basic react spring animation

                                                                                                                          The best tool to build a spring animation in the react world is react-spring, a library dedicated to it. If you're not familiar with it already you probably want to take a look at their home page.

                                                                                                                          Let's start with a basic example showing how to animate a very basic viz component that just renders a circle.

                                                                                                                          A very basic animation using react and react-spring.

                                                                                                                          The useSpring funtion can take 2 types of input: an object or a function

                                                                                                                          • if object, it returns an object that has the values of our animation
                                                                                                                          • if function, it returns an array of length 2. First item is the object mentionned above. item 2 is the api that controls the spring. api is used for imperative style

                                                                                                                          Animating axes

                                                                                                                          A common hassle is to animate axes, since it's a lot of svg elements.

                                                                                                                          A very basic animation using react and react-spring.




                                                                                                                          Contact

                                                                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                            Contact

                                                                                                                            👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                              -
                                                                                                                              \ No newline at end of file +
                                                                                                                              \ No newline at end of file diff --git a/ridgeline.html b/ridgeline.html index d11a002d..e1e26414 100644 --- a/ridgeline.html +++ b/ridgeline.html @@ -1,4 +1,4 @@ -Ridgeline chart with React

                                                                                                                              Ridgeline chart

                                                                                                                              Dataviz logo representing a Joyplot chart.

                                                                                                                              A ridgeline chart is a chart type that shows the distribution of a numeric variable for several groups, stacked one of top of each other. This page is a step-by-step guide on how to build your own histogram for the web, using React and D3.js.

                                                                                                                              It starts by describing how the data should be organized and how to initialize the ridgeline component. It then quickly recalls how to compute and draw a kernel density, and shows how to stack this information for several groups of a dataset. 🙇‍♂️.

                                                                                                                              Useful links

                                                                                                                              The Data

                                                                                                                              To build a ridgeline chart, the input dataset must provide a set ofnumeric values for several groups.

                                                                                                                              The best way to format this kind of information is with an array of object. Each object represents a group. Agroup property provides the group name, and a values property provides the values.


                                                                                                                              Here is a minimal example of the data structure:

                                                                                                                              export const data = [
                                                                                                                              +Ridgeline chart with React

                                                                                                                              Ridgeline chart

                                                                                                                              Dataviz logo representing a Joyplot chart.

                                                                                                                              A ridgeline chart is a chart type that shows the distribution of a numeric variable for several groups, stacked one of top of each other. This page is a step-by-step guide on how to build your own histogram for the web, using React and D3.js.

                                                                                                                              It starts by describing how the data should be organized and how to initialize the ridgeline component. It then quickly recalls how to compute and draw a kernel density, and shows how to stack this information for several groups of a dataset. 🙇‍♂️.

                                                                                                                              Useful links

                                                                                                                              The Data

                                                                                                                              To build a ridgeline chart, the input dataset must provide a set ofnumeric values for several groups.

                                                                                                                              The best way to format this kind of information is with an array of object. Each object represents a group. Agroup property provides the group name, and a values property provides the values.


                                                                                                                              Here is a minimal example of the data structure:

                                                                                                                              export const data = [
                                                                                                                                 {
                                                                                                                                   group: "A",
                                                                                                                                   values: [0, 0, 2, 2, 2, 0, 0, 1],
                                                                                                                              @@ -57,4 +57,4 @@
                                                                                                                               }

                                                                                                                              I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                              Ridgeline inspiration

                                                                                                                              If you're looking for inspiration to create your next Ridgeline, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                              dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Ridgeline looks good!

                                                                                                                              visit

                                                                                                                              Variations

                                                                                                                              Ridgeline charts are not the only way to compare the distribution of several groups in a dataset. Boxplots, violins, histograms and densities are variations that could interst you in order to solve this goal. Check the examples below to get the code.

                                                                                                                              Picture of a basic violin chart built in react

                                                                                                                              Basic violin plot

                                                                                                                              Learn how to build a basic violin chart with d3 and react

                                                                                                                              Picture of a density plot with multiple groups

                                                                                                                              Density plot with multiple groups

                                                                                                                              How to add several groups on the same density plot

                                                                                                                              Picture of a histogram with small multiple built with react and d3.js

                                                                                                                              Small multiple

                                                                                                                              Create one panel per group to show its distribution separately

                                                                                                                              Picture of a histogram with multiple groups built with react and d3.js

                                                                                                                              Multiple groups

                                                                                                                              A histogram with <b>multiple</b> groups displayed on the same axis.

                                                                                                                              Picture of a boxplot with jitter built using react and d3.js

                                                                                                                              Boxplot with jitter

                                                                                                                              Add individual data points using jitter on top of the boxplot

                                                                                                                              Picture of a basic boxplot built with react and d3

                                                                                                                              Basic boxplot

                                                                                                                              How to build a basic boxplot with react

                                                                                                                              Contact

                                                                                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                -
                                                                                                                                \ No newline at end of file +
                                                                                                                                \ No newline at end of file diff --git a/sankey-diagram.html b/sankey-diagram.html index 6d484b70..e554b294 100644 --- a/sankey-diagram.html +++ b/sankey-diagram.html @@ -1,4 +1,4 @@ -How to build a Sankey Diagram with React and D3.

                                                                                                                                Sankey Diagram

                                                                                                                                Dataviz logo representing a Sankey chart.

                                                                                                                                A Sankey Diagram display flows. Several entities (nodes) are represented by rectangles or text. Directed links are represented with arrows or arcs that have a width proportional to the importance of the flow.

                                                                                                                                This tutorial explains how to use React, D3.js and the d3-sankey plugin to build a Sankey diagram. It comes with explanations and code sandboxes to play along with the suggested implementation.

                                                                                                                                Useful links

                                                                                                                                The Data

                                                                                                                                Two layers of information are required to build a Sankey diagram: a list of nodes to build the rectangles and a list of links to build the paths between them.

                                                                                                                                Many different data structures can be used to store such information. In this tutorial I suggest to start with the following:

                                                                                                                                const data = {
                                                                                                                                +How to build a Sankey Diagram with React and D3.

                                                                                                                                Sankey Diagram

                                                                                                                                Dataviz logo representing a Sankey chart.

                                                                                                                                A Sankey Diagram display flows. Several entities (nodes) are represented by rectangles or text. Directed links are represented with arrows or arcs that have a width proportional to the importance of the flow.

                                                                                                                                This tutorial explains how to use React, D3.js and the d3-sankey plugin to build a Sankey diagram. It comes with explanations and code sandboxes to play along with the suggested implementation.

                                                                                                                                Useful links

                                                                                                                                The Data

                                                                                                                                Two layers of information are required to build a Sankey diagram: a list of nodes to build the rectangles and a list of links to build the paths between them.

                                                                                                                                Many different data structures can be used to store such information. In this tutorial I suggest to start with the following:

                                                                                                                                const data = {
                                                                                                                                   nodes: [
                                                                                                                                       { node: 0, name: "node0" },
                                                                                                                                       { node: 1, name: "node1" },
                                                                                                                                @@ -82,4 +82,4 @@
                                                                                                                                 }

                                                                                                                                I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                                Sankey inspiration

                                                                                                                                If you're looking for inspiration to create your next Sankey, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                                dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Sankey looks good!

                                                                                                                                visit

                                                                                                                                Application to a real dataset

                                                                                                                                This Sankey diagram visualizes the flow of energy: supplies are on the left, and demands are on the right. It is a reproduction of this famous observable example. Links show how varying amounts of energy are converted or transmitted before being consumed or lost.

                                                                                                                                The code is very similar to the example above. On top of it, a color scale is used for the node and connection colors, and some text labels have been added.

                                                                                                                                A Sankey diagram showing the flow of energy. Supplies on the left, demands on the right.

                                                                                                                                ToDoAdd hover effect to highlight links
                                                                                                                                ToDoAdd gradient along links
                                                                                                                                ToDoFix types

                                                                                                                                Contact

                                                                                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                  -
                                                                                                                                  \ No newline at end of file +
                                                                                                                                  \ No newline at end of file diff --git a/scatter-plot.html b/scatter-plot.html index c3395849..95cc9f59 100644 --- a/scatter-plot.html +++ b/scatter-plot.html @@ -1,4 +1,4 @@ -How to build a scatter plot with React and D3.

                                                                                                                                  Scatterplot

                                                                                                                                  Dataviz logo representing a ScatterPlot chart.

                                                                                                                                  A scatterplot displays the relationship between 2 numeric variables. This page is a step-by-step guide on how to build your own scatterplot for the web, using React and D3.js.

                                                                                                                                  It starts with very basic concepts like data structure, scales and svg circle rendering. It then shows how to add interactivity to the chart with hover effects and tooltips. At the end of the post, you should be able to build you own ready-to-publish scatterplot 🙇‍♂️.

                                                                                                                                  Useful links

                                                                                                                                  The Data

                                                                                                                                  The dataset used to build a scatterplot is usually an array of objects.

                                                                                                                                  For each object, at least 2 properties are required: x and y. The value of x will control the position of the datapoint on the horizontal axis. The value of y will be linked with the vertical axis.

                                                                                                                                  const data = [
                                                                                                                                  +How to build a scatter plot with React and D3.

                                                                                                                                  Scatterplot

                                                                                                                                  Dataviz logo representing a ScatterPlot chart.

                                                                                                                                  A scatterplot displays the relationship between 2 numeric variables. This page is a step-by-step guide on how to build your own scatterplot for the web, using React and D3.js.

                                                                                                                                  It starts with very basic concepts like data structure, scales and svg circle rendering. It then shows how to add interactivity to the chart with hover effects and tooltips. At the end of the post, you should be able to build you own ready-to-publish scatterplot 🙇‍♂️.

                                                                                                                                  Useful links

                                                                                                                                  The Data

                                                                                                                                  The dataset used to build a scatterplot is usually an array of objects.

                                                                                                                                  For each object, at least 2 properties are required: x and y. The value of x will control the position of the datapoint on the horizontal axis. The value of y will be linked with the vertical axis.

                                                                                                                                  const data = [
                                                                                                                                     {
                                                                                                                                       x: 2,
                                                                                                                                       y: 4
                                                                                                                                  @@ -232,4 +232,4 @@
                                                                                                                                   });

                                                                                                                                  Last but not least, some css needs to be added to customize the circle depending on if they are in default, .dimmed or :hover mode.

                                                                                                                                  Note that the filter: saturate(0) is a good way to dim unwanted circles. Also, playing with transition-delay and transition-duration adds to animate the transition is a nice touch you should consider. Check the code below the example to see the full css.

                                                                                                                                  The hover effect is another big topic in data visualization. A dedicated post will be published soon on the topic, feel free to subscribe to know when.

                                                                                                                                  Scatterplot inspiration

                                                                                                                                  If you're looking for inspiration to create your next Scatterplot, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                                  dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Scatterplot looks good!

                                                                                                                                  visit

                                                                                                                                  Real-life application

                                                                                                                                  Let's apply the concepts learned above to a real-life example.

                                                                                                                                  I like this scatterplot originally published on the data wrapper blog. It shows a strong correlation between vulnerability to climate change and CO2 emissions.


                                                                                                                                  The chart has several features that are interesting to reproduce fom a technical point of view:

                                                                                                                                  • Custom annotation: only a fraction of the country names are written
                                                                                                                                  • Hover effect: the hovered country is highlighted with a black stroke. After a short delay, countries of other groups are dimmed. Note that the effect is triggered once the mouse approaches the marker, no need to be perfectly on top.
                                                                                                                                  • Tooltip: highly customized and linked to the mouse position

                                                                                                                                  The countries with the highest vulnerability to climate change have the lowest CO2 emissions

                                                                                                                                  All countries sorted by their vulnerability and readiness to climate change. The size shows the CO2 emission per person in that country.

                                                                                                                                  High ReadinessLow ReadinessQatarBahrainU.S.Trinidad and TobagoCzech RepublicSingaporeNorwayIndiaSudanChadSomalia

                                                                                                                                  Reproduction of a chart originally published by Data Wrapper using react and d3.js.

                                                                                                                                  Variations

                                                                                                                                  The scatterplot examples described above are just the beginning of your journey. There is an infinite world of customization that is open to you. You can also explore related chart types that can be a good fit for your data:

                                                                                                                                  Click on the overview below to get details and code.


                                                                                                                                  gif of a scatterplot with voronoi diagram for closest point detection

                                                                                                                                  Closest point detection with Voronoi

                                                                                                                                  Using a voronoi diagram in the scatterplot background is a smart way to efficiently find the mouse closest point

                                                                                                                                  a scatterplot made with react and rendered in canvas

                                                                                                                                  Scatterplot in Canvas

                                                                                                                                  Learn how to render a scatterplot in canvas to improve performances

                                                                                                                                  Picture of a correlogram built with react and d3

                                                                                                                                  Basic correlogram

                                                                                                                                  Learn how to build a correlogram with react and d3

                                                                                                                                  Picture of a simple bubble plot with a legend made with react and d3.js

                                                                                                                                  Bubble plot

                                                                                                                                  Learn how to build a bubble plot with react and d3.js

                                                                                                                                  Picture of a hexbin chart made with React and d3.js

                                                                                                                                  Hexbin chart

                                                                                                                                  A hexbin chart split the figure in hexagons to show a 2d density

                                                                                                                                  Picture of a timeseries chart made with React and D3.js: scatterplot and line chart in use.

                                                                                                                                  Timeseries with moving average

                                                                                                                                  A scatterplot used for timeseries, with the moving average shown as a line chart on top.

                                                                                                                                  Useful links

                                                                                                                                  The following links have been useful to create this page:

                                                                                                                                  Contact

                                                                                                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                    -
                                                                                                                                    \ No newline at end of file +
                                                                                                                                    \ No newline at end of file diff --git a/shape-morphism-for-dataviz-with-react.html b/shape-morphism-for-dataviz-with-react.html index 89f7d324..366cb0e8 100644 --- a/shape-morphism-for-dataviz-with-react.html +++ b/shape-morphism-for-dataviz-with-react.html @@ -1,4 +1,4 @@ -Shape morphism for data visualization

                                                                                                                                    Shape morphism for data visualization


                                                                                                                                    Shape morphism is the art of transitioning between 2 shapes as smoothly as possible. This post explores how it can be useful for data visualization and how it can be done using React, d3.js, react-spring and flubber.

                                                                                                                                    This post is about shape morphism, which means animating the properties that define the actual shape of the elements.
                                                                                                                                    As always when talking about animation, it is good to recall this citation by Josh Comeau:

                                                                                                                                    Animation is like salt: too much of it spoils the dish

                                                                                                                                    Examples

                                                                                                                                    Here is a list of nifty viz examples using shape morphism to transition between several viz types


                                                                                                                                    Why

                                                                                                                                    In the field of data visualization shape morphism is mostly usefull to transition between 2 chart types. It is pretty hard to implement that kind of smooth transition so why should we even care?


                                                                                                                                    • Eye catching effect

                                                                                                                                    • Highlight the direct relationship between 2 charts. During the transition one can follow a specific item and understand it's the same.
                                                                                                                                    • Make sure that we're looking at the same dataset, but represented differently

                                                                                                                                    What are we trying to do

                                                                                                                                    Sometimes in dataviz we want to transition between 2 chart types, let's say between a pie chart and a barplot. This is pretty hard since the shapes used for those 2 charts are very different: arc versus rectangle.


                                                                                                                                    This is still possible thanks to a few libraries. This post suggests to use d3.js to build the start and end svg path, flubberto interpolate those path, react-spring for the animation and react for the rendering.


                                                                                                                                    This is the kind of thing we're gonna learn to build:


                                                                                                                                    Shape morphism on the web: a review

                                                                                                                                    I knew nothing about shape morphism 3 weeks ago. It took me a lot of effort to browse the web and find what the most appropriate tools are. To avoid you the hassle, here is a quick summary:


                                                                                                                                    • SMIL (Synchronized Multimedia Integration Language) is a feature introduced in firefox 4, allowing to follow a motion path. Basically it means you can use an animate element in your svg that will support shape morphism.
                                                                                                                                      Unfortunately, this feature is probably get deprecated soon. Furthermore, it supports transition only between shapes with the same number of nodes.
                                                                                                                                      DocCodePen.

                                                                                                                                    • pure CSS: Chrome has started to allow shape morphing through css. You can simply change the d attribute of a path in a css file and add sometransition to it. But chrome only and same number of nodes only.
                                                                                                                                      CodePen

                                                                                                                                    • greenSock MorphSvg plugin: a promising javascript library for shape morphism, widely cited on the internet. Supports shapes with different number of nodes. But it's not free and not open source.
                                                                                                                                      WebsiteCodePen

                                                                                                                                    • superformula is a mathematic formula that can be used to describe many complex shapes. Using 6 numbers as parameters, this formula can build many complex shapes. Interpolating between 2 shapes becomes easy: we just have to interpolate those numbers. Problem: it does not work with any shape and building a chart from this formula is thus impossible.
                                                                                                                                      Example

                                                                                                                                    • d3-interpolate is a d3 module that provides a variety of interpolation methods. It works for paths, even with different number of nodes. But when the shape 2 has more nodes than shape 1 it just adds some nodes to the end of the shape 1 path. This result in a bad visual effect.
                                                                                                                                      Doc

                                                                                                                                    • d3-interpolate-path is an open-source js library that adds an interpolator optimized for SVG path elements. It works very well for path including segments only, but from my experience less well for arcs.
                                                                                                                                      DocDemo

                                                                                                                                    • Vizzu is a library for animated data visualizations and data stories. It looks very promising for transition between chart types. But since it is a library, it means that customization is limited to the offered options.
                                                                                                                                      DocDemo

                                                                                                                                    None of the item of this list suits my need. We need an open source library capable of interpolating any path, even with different number of nodes..

                                                                                                                                    Shape interpolation with flubber

                                                                                                                                    flubber is an open source javascript library built by Noah Veltman. Unlike most of the shape morphism libraries it works very well to interpolate shapes that are completely different and don't have the same number of nodes.


                                                                                                                                    Let's start by creating 2 svg shapes

                                                                                                                                    const shape1 = "M10,140 L50,60 L90,140 Z"; // triangle
                                                                                                                                    +Shape morphism for data visualization

                                                                                                                                    Shape morphism for data visualization


                                                                                                                                    Shape morphism is the art of transitioning between 2 shapes as smoothly as possible. This post explores how it can be useful for data visualization and how it can be done using React, d3.js, react-spring and flubber.

                                                                                                                                    This post is about shape morphism, which means animating the properties that define the actual shape of the elements.
                                                                                                                                    As always when talking about animation, it is good to recall this citation by Josh Comeau:

                                                                                                                                    Animation is like salt: too much of it spoils the dish

                                                                                                                                    Examples

                                                                                                                                    Here is a list of nifty viz examples using shape morphism to transition between several viz types


                                                                                                                                    Why

                                                                                                                                    In the field of data visualization shape morphism is mostly usefull to transition between 2 chart types. It is pretty hard to implement that kind of smooth transition so why should we even care?


                                                                                                                                    • Eye catching effect

                                                                                                                                    • Highlight the direct relationship between 2 charts. During the transition one can follow a specific item and understand it's the same.
                                                                                                                                    • Make sure that we're looking at the same dataset, but represented differently

                                                                                                                                    What are we trying to do

                                                                                                                                    Sometimes in dataviz we want to transition between 2 chart types, let's say between a pie chart and a barplot. This is pretty hard since the shapes used for those 2 charts are very different: arc versus rectangle.


                                                                                                                                    This is still possible thanks to a few libraries. This post suggests to use d3.js to build the start and end svg path, flubberto interpolate those path, react-spring for the animation and react for the rendering.


                                                                                                                                    This is the kind of thing we're gonna learn to build:


                                                                                                                                    Shape morphism on the web: a review

                                                                                                                                    I knew nothing about shape morphism 3 weeks ago. It took me a lot of effort to browse the web and find what the most appropriate tools are. To avoid you the hassle, here is a quick summary:


                                                                                                                                    • SMIL (Synchronized Multimedia Integration Language) is a feature introduced in firefox 4, allowing to follow a motion path. Basically it means you can use an animate element in your svg that will support shape morphism.
                                                                                                                                      Unfortunately, this feature is probably get deprecated soon. Furthermore, it supports transition only between shapes with the same number of nodes.
                                                                                                                                      DocCodePen.

                                                                                                                                    • pure CSS: Chrome has started to allow shape morphing through css. You can simply change the d attribute of a path in a css file and add sometransition to it. But chrome only and same number of nodes only.
                                                                                                                                      CodePen

                                                                                                                                    • greenSock MorphSvg plugin: a promising javascript library for shape morphism, widely cited on the internet. Supports shapes with different number of nodes. But it's not free and not open source.
                                                                                                                                      WebsiteCodePen

                                                                                                                                    • superformula is a mathematic formula that can be used to describe many complex shapes. Using 6 numbers as parameters, this formula can build many complex shapes. Interpolating between 2 shapes becomes easy: we just have to interpolate those numbers. Problem: it does not work with any shape and building a chart from this formula is thus impossible.
                                                                                                                                      Example

                                                                                                                                    • d3-interpolate is a d3 module that provides a variety of interpolation methods. It works for paths, even with different number of nodes. But when the shape 2 has more nodes than shape 1 it just adds some nodes to the end of the shape 1 path. This result in a bad visual effect.
                                                                                                                                      Doc

                                                                                                                                    • d3-interpolate-path is an open-source js library that adds an interpolator optimized for SVG path elements. It works very well for path including segments only, but from my experience less well for arcs.
                                                                                                                                      DocDemo

                                                                                                                                    • Vizzu is a library for animated data visualizations and data stories. It looks very promising for transition between chart types. But since it is a library, it means that customization is limited to the offered options.
                                                                                                                                      DocDemo

                                                                                                                                    None of the item of this list suits my need. We need an open source library capable of interpolating any path, even with different number of nodes..

                                                                                                                                    Shape interpolation with flubber

                                                                                                                                    flubber is an open source javascript library built by Noah Veltman. Unlike most of the shape morphism libraries it works very well to interpolate shapes that are completely different and don't have the same number of nodes.


                                                                                                                                    Let's start by creating 2 svg shapes

                                                                                                                                    const shape1 = "M10,140 L50,60 L90,140 Z"; // triangle
                                                                                                                                     const shape2 = "M350,50 L400,83 L400,116 L350,150 L300,116 L300,83"; // polygon

                                                                                                                                    It's very straightforward to interpolate a y between the 2 of them thanks to the interpolate() function offlubber. This function expects 2 arguments: the starting shape and the ending shape:

                                                                                                                                    const interpolator = interpolate(shape1, shape2);

                                                                                                                                    interpolate() returns a function. This function accepts only 1 argument: a value between 0 (start) and 1 (end). It will return the interpolated shape for this progress.

                                                                                                                                    interpolator(0.2)
                                                                                                                                     // M110,58L113.25,62.825L116.5,67.65L119.75,72.475L123,77.3L126.25,82.125L129.5,86.95L.......Z

                                                                                                                                    Here is a visualization of the final result

                                                                                                                                    step: 0.0

                                                                                                                                    Switching from a triangle to a polygon using flubber for shape interpolation


                                                                                                                                    Awesome video by the Flubber creator: link

                                                                                                                                    Animating the transition with react spring

                                                                                                                                    Now that we know how to build an interpolated shape between a starting and an ending point, let's animated this transition using react-spring.

                                                                                                                                    The transition is now animated thanks to react-spring, a react library for spring animation.

                                                                                                                                    Pie chart to barplot transition

                                                                                                                                    I knew nothing about shape morphism 3 weeks ago. It took me a lot of effort to browse the web and find what the most appropriate tools are. To avoid you the hassle, here is a quick summary:

                                                                                                                                    Violin to boxplot transition

                                                                                                                                    I knew nothing about shape morphism 3 weeks ago. It took me a lot of effort to browse the web and find what the most appropriate tools are. To avoid you the hassle, here is a quick summary:

                                                                                                                                    How to smoothly transition between a boxplot and a violin plot. Math by d3.js, rendering using react, animation using react-spring and interpolation using flubber.


                                                                                                                                    Contact

                                                                                                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                    @@ -6,4 +6,4 @@

                                                                                                                                    Contact

                                                                                                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                      -
                                                                                                                                      \ No newline at end of file +
                                                                                                                                      \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 148a32b0..f9438353 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,102 +1,102 @@ -https://www.react-graph-gallery.com2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/2d-density-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/about2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/all2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/animation2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/arc-diagram2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/area-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/articles2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/barplot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/boxplot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/bubble-map2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/bubble-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/build-axis-with-react2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/cartogram2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/chord-diagram2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/choropleth-map2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/circular-barplot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/circular-packing2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/connected-scatter-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/connection-map2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/correlogram2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/axis/axis-variations2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/axis/axis-with-d32024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/axis/bottom-axis2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/axis/introduction2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/axis/margin-and-translation2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/hover-effect/css-descendant-selector2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/hover-effect/css-pseudo-class2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/hover-effect/internal-state2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/hover-effect/introduction2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/hover-effect/link-two-graphs2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/hover-effect/toggle-class-in-js2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/introduction/initial-setup2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/introduction/introduction-to-d32024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/introduction/introduction-to-react2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/introduction/js-dataviz-libraries2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/responsiveness/code-organization2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/responsiveness/common-pitfalls2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/responsiveness/introduction2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/responsiveness/use-dimension-hook2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/responsiveness/using-the-hook2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/scales/introduction2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/svg/introduction2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/svg/main-svg-elements2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/svg/path-element2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/course/svg/tips-and-tricks2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/cross-graph-highlight-interaction2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/dataset-transition2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/dendrogram2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/density-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/donut2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/arc-diagram-vertical2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/barplot-data-transition-animation2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/barplot-stacked-horizontal2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/barplot-stacked-vertical2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/boxplot-horizontal2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/boxplot-jitter2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/circle-packing-with-d3-force2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/histogram-mirror2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/histogram-small-multiple2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/histogram-with-several-groups2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/line-chart-synchronized-cursors2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/network-diagram-with-colored-groups2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/population-pyramid2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/radar-chart-animation2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/scatterplot-basic-canvas2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/example/timeseries-moving-average2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/fix-canvas-blurry-dataviz2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/heatmap2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/hexbin-map2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/hierarchical-edge-bundling2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/histogram2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/interactivity2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/line-chart2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/lollipop-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/map2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/network-chart2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/parallel-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/pie-plot2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/radar-chart2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/react-d3-dataviz-course2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/react-dataviz-animation-with-react-spring2024-09-27T09:12:10.059Zdaily0.7 -https://www.react-graph-gallery.com/ridgeline2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/sankey-diagram2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/scatter-plot2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/shape-morphism-for-dataviz-with-react2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/stacked-area-plot2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/stacked-barplot-with-negative-values2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/streamchart2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/subscribe2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/timeseries2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/treemap2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/typescript-d3-axis2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/violin-plot2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/viz-from-the-future2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/voronoi2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/what-is-a-color2024-09-27T09:12:10.060Zdaily0.7 -https://www.react-graph-gallery.com/wordcloud2024-09-27T09:12:10.060Zdaily0.7 +https://www.react-graph-gallery.com2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/2d-density-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/about2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/all2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/animation2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/arc-diagram2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/area-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/articles2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/barplot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/boxplot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/bubble-map2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/bubble-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/build-axis-with-react2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/cartogram2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/chord-diagram2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/choropleth-map2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/circular-barplot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/circular-packing2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/connected-scatter-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/connection-map2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/correlogram2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/axis/axis-variations2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/axis/axis-with-d32024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/axis/bottom-axis2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/axis/introduction2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/axis/margin-and-translation2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/hover-effect/css-descendant-selector2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/hover-effect/css-pseudo-class2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/hover-effect/internal-state2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/hover-effect/introduction2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/hover-effect/link-two-graphs2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/hover-effect/toggle-class-in-js2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/introduction/initial-setup2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/introduction/introduction-to-d32024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/introduction/introduction-to-react2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/introduction/js-dataviz-libraries2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/responsiveness/code-organization2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/responsiveness/common-pitfalls2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/responsiveness/introduction2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/responsiveness/use-dimension-hook2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/responsiveness/using-the-hook2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/scales/introduction2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/svg/introduction2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/svg/main-svg-elements2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/svg/path-element2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/course/svg/tips-and-tricks2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/cross-graph-highlight-interaction2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/dataset-transition2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/dendrogram2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/density-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/donut2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/arc-diagram-vertical2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/barplot-data-transition-animation2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/barplot-stacked-horizontal2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/barplot-stacked-vertical2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/boxplot-horizontal2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/boxplot-jitter2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/circle-packing-with-d3-force2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/histogram-mirror2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/histogram-small-multiple2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/histogram-with-several-groups2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/line-chart-synchronized-cursors2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/network-diagram-with-colored-groups2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/population-pyramid2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/radar-chart-animation2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/scatterplot-basic-canvas2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/scatterplot-tooltip-with-voronoi-for-closest-point-detection2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/example/timeseries-moving-average2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/fix-canvas-blurry-dataviz2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/heatmap2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/hexbin-map2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/hierarchical-edge-bundling2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/histogram2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/interactivity2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/line-chart2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/lollipop-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/map2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/network-chart2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/parallel-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/pie-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/radar-chart2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/react-d3-dataviz-course2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/react-dataviz-animation-with-react-spring2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/ridgeline2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/sankey-diagram2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/scatter-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/shape-morphism-for-dataviz-with-react2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/stacked-area-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/stacked-barplot-with-negative-values2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/streamchart2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/subscribe2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/timeseries2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/treemap2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/typescript-d3-axis2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/violin-plot2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/viz-from-the-future2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/voronoi2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/what-is-a-color2024-09-27T10:13:47.420Zdaily0.7 +https://www.react-graph-gallery.com/wordcloud2024-09-27T10:13:47.420Zdaily0.7 \ No newline at end of file diff --git a/stacked-area-plot.html b/stacked-area-plot.html index fc4c8099..f7b67b9f 100644 --- a/stacked-area-plot.html +++ b/stacked-area-plot.html @@ -1,4 +1,4 @@ -Stacked Area charts with React

                                                                                                                                      Stacked Area charts

                                                                                                                                      Dataviz logo representing a StackedArea chart.

                                                                                                                                      A stacked area chart is an evolution of an area chart used to display the evolution of several groups in a dataset. This section explains how to build it with d3.js and react. It focus on stacking, so make sure to read the area chart section first.

                                                                                                                                      Useful links

                                                                                                                                      The Data

                                                                                                                                      Most of the time the input dataset is an array where each item is an object.
                                                                                                                                      Each object provides information for a step on the X axis. It has a value like x that provides the exact position on the X axis. It then has several numeric values, one for each group of the dataset.


                                                                                                                                      Here is a minimal example:

                                                                                                                                      const data = [
                                                                                                                                      +Stacked Area charts with React

                                                                                                                                      Stacked Area charts

                                                                                                                                      Dataviz logo representing a StackedArea chart.

                                                                                                                                      A stacked area chart is an evolution of an area chart used to display the evolution of several groups in a dataset. This section explains how to build it with d3.js and react. It focus on stacking, so make sure to read the area chart section first.

                                                                                                                                      Useful links

                                                                                                                                      The Data

                                                                                                                                      Most of the time the input dataset is an array where each item is an object.
                                                                                                                                      Each object provides information for a step on the X axis. It has a value like x that provides the exact position on the X axis. It then has several numeric values, one for each group of the dataset.


                                                                                                                                      Here is a minimal example:

                                                                                                                                      const data = [
                                                                                                                                         {
                                                                                                                                           x: 1,
                                                                                                                                           groupA: 38,
                                                                                                                                      @@ -111,4 +111,4 @@
                                                                                                                                       }

                                                                                                                                      I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                                      Stacked Area inspiration

                                                                                                                                      If you're looking for inspiration to create your next Stacked Area, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                                      dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Stacked Area looks good!

                                                                                                                                      visit

                                                                                                                                      Offset and Curve types

                                                                                                                                      Stacked area charts can easily be customized to use other offset and smoothing algorithm. This process can be used to create streamgraphs which are a varation of the stacked area graph.

                                                                                                                                      The offset type controls how the data are stacked. You can read about the offset options available in the official documentation or play with the little example below.

                                                                                                                                      The curve type controls how the smoothing of each shape is made. There are a myriad of options described in the official documentation.

                                                                                                                                      Offset typeCurve type
                                                                                                                                      246810

                                                                                                                                      Try d3.js various options to offset the data and smooth shapes. See a smooth transition between options.

                                                                                                                                      The animation uses react-spring to run. I'll publish a full blogpost on the topic soon!

                                                                                                                                      Get notified


                                                                                                                                      Contact

                                                                                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                        -
                                                                                                                                        \ No newline at end of file +
                                                                                                                                        \ No newline at end of file diff --git a/stacked-barplot-with-negative-values.html b/stacked-barplot-with-negative-values.html index d0f3d820..174a9fb4 100644 --- a/stacked-barplot-with-negative-values.html +++ b/stacked-barplot-with-negative-values.html @@ -1,4 +1,4 @@ -Dealing with negative values on a stacked barplot

                                                                                                                                        Dealing with negative values on a stacked barplot


                                                                                                                                        Drawing a stacked barplot sounds like pretty basic task for somebody into dataviz. But it gets surprisingly tricky once the dataset includes negative values.

                                                                                                                                        This post explains how to deal with it, suggesting several options coming together with some reproducible code examples.

                                                                                                                                        🍔 Regular stacked barplot with positive values

                                                                                                                                        Let's consider a company that has 3 employees: a, b and c. Each month those employees sell umbrellas and make money.

                                                                                                                                        In January, they made 1, 1 and 2 dollars respectively. It's pretty easy to represent those sales as a stacked barplot!

                                                                                                                                        There is even a bonus! The total height of those bars is 4. So is the value of the stack on the Y axis. We now know what's the total revenue of the company 🎉!

                                                                                                                                        explanation of a stacked barplot wit positive values

                                                                                                                                        Stacking positive values is straightforward


                                                                                                                                        Now let's follow the same process for the 12 months of the year. That makes a stacked area barplot built with react and d3.js. If you need explanations for the code, please refer to the d3.js gallery or to the barplot section of the react gallery.


                                                                                                                                        A stacked area chart with positive values only. Built with react and d3.js


                                                                                                                                        That's the end of the easy part. Now, let's say that sometimes employees spend more money than what they make.

                                                                                                                                        We now have some negative values in the dataset 😳. How can we deal with it?

                                                                                                                                        1️⃣ Stacked barplot with negative values: the diverging strategy

                                                                                                                                        We are in January but this time, employee A lost 1$! 😥

                                                                                                                                        To represent this on the stack, we can add all the positive values on top of the chart, and all the negative ones below the 0 axis.

                                                                                                                                        It is still very easy to see how much each employee made in a glimpse!

                                                                                                                                        However, it is now impossible to know what's the company revenue! Indeed, the total height of the bars is 4, the value on the y axis is 3, but the real revenue is 1 + 2 - 1 = 2!

                                                                                                                                        shema of a stacked barplot with the diverging strategy for stacking

                                                                                                                                        Stacking with negative values with all negative values below the 0 axis


                                                                                                                                        Using almost the same code we can build the stacked barplot including those negative values. Note that when stacking the data with the stack() function of d3, the specific stackOffsetDiverging offset parameter must be passed, handling all the work for us (doc).


                                                                                                                                        With the diverging strategy, all negative values are located under the 0 baseline.


                                                                                                                                        Let's recap the pros and cons of this diverging option:

                                                                                                                                        Pros

                                                                                                                                        • Easy to read the value of each item
                                                                                                                                        • Obvious what's negative and what's positive

                                                                                                                                        Cons

                                                                                                                                        • Impossible to know the total value of each stack
                                                                                                                                        • A series can jump from the bottom to the top of the chart and is thus hard to follow

                                                                                                                                        2️⃣ Stacked barplot with negative values: the overlapping strategy

                                                                                                                                        Another strategy can be applied to stack the items including negative values.

                                                                                                                                        Items can be added one by one, with rectangles going up when values are positive and going down when values are negative.

                                                                                                                                        stacked barplot with overlapping item does not work well

                                                                                                                                        Stacking items by overlapping the items on top of each other.


                                                                                                                                        It's important to understand that here, the item order is important. We will get very different results depending on the order since not all groups are visible.


                                                                                                                                        With the overlapping strategy items are drawn successively, going up and down and overlapping if necessary


                                                                                                                                        Let's recap the pros and cons of this diverging option:

                                                                                                                                        Pros

                                                                                                                                        • Depending on the group order, the Y value can reflect the sum of the items. But it's not guarantee.

                                                                                                                                        Cons

                                                                                                                                        • Groups overlap each other. Information is hidden. Chart is unreadable

                                                                                                                                        Conclusion

                                                                                                                                        In my opinion the first option (diverging) makes much more sense than the second one (overlapping). The cons are very limited:

                                                                                                                                        • It is true that the net total value is not available. But if that's what interests you, you don't have to split the dataset by subgroups, just create a line chart with a single line!
                                                                                                                                        • Having a group flipping from top to bottom is indeed annoying. However, the hover effect that is included allows to quickly see what happens for a specific group.

                                                                                                                                        It's also important to note that most dataviz tools choosed this approach. Here is an example using the same dataset using the ggplot2library (left) and data wrapper (right).


                                                                                                                                        stacked barplot with R and ggplot2stacked barplot with data wrapper

                                                                                                                                        Same dataset that includes negative values plotted with ggplot2 (left) and data wrapper (right)


                                                                                                                                        Last but not least, I really like this example by chartio that fixes the non available total issue by adding a line on top of the stacked barchart to show the total:


                                                                                                                                        stacked barplot with chartio

                                                                                                                                        Chartio displays the total of each timestamp using a line chart on top of the stacked items.




                                                                                                                                        Contact

                                                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                        +Dealing with negative values on a stacked barplot

                                                                                                                                        Dealing with negative values on a stacked barplot


                                                                                                                                        Drawing a stacked barplot sounds like pretty basic task for somebody into dataviz. But it gets surprisingly tricky once the dataset includes negative values.

                                                                                                                                        This post explains how to deal with it, suggesting several options coming together with some reproducible code examples.

                                                                                                                                        🍔 Regular stacked barplot with positive values

                                                                                                                                        Let's consider a company that has 3 employees: a, b and c. Each month those employees sell umbrellas and make money.

                                                                                                                                        In January, they made 1, 1 and 2 dollars respectively. It's pretty easy to represent those sales as a stacked barplot!

                                                                                                                                        There is even a bonus! The total height of those bars is 4. So is the value of the stack on the Y axis. We now know what's the total revenue of the company 🎉!

                                                                                                                                        explanation of a stacked barplot wit positive values

                                                                                                                                        Stacking positive values is straightforward


                                                                                                                                        Now let's follow the same process for the 12 months of the year. That makes a stacked area barplot built with react and d3.js. If you need explanations for the code, please refer to the d3.js gallery or to the barplot section of the react gallery.


                                                                                                                                        A stacked area chart with positive values only. Built with react and d3.js


                                                                                                                                        That's the end of the easy part. Now, let's say that sometimes employees spend more money than what they make.

                                                                                                                                        We now have some negative values in the dataset 😳. How can we deal with it?

                                                                                                                                        1️⃣ Stacked barplot with negative values: the diverging strategy

                                                                                                                                        We are in January but this time, employee A lost 1$! 😥

                                                                                                                                        To represent this on the stack, we can add all the positive values on top of the chart, and all the negative ones below the 0 axis.

                                                                                                                                        It is still very easy to see how much each employee made in a glimpse!

                                                                                                                                        However, it is now impossible to know what's the company revenue! Indeed, the total height of the bars is 4, the value on the y axis is 3, but the real revenue is 1 + 2 - 1 = 2!

                                                                                                                                        shema of a stacked barplot with the diverging strategy for stacking

                                                                                                                                        Stacking with negative values with all negative values below the 0 axis


                                                                                                                                        Using almost the same code we can build the stacked barplot including those negative values. Note that when stacking the data with the stack() function of d3, the specific stackOffsetDiverging offset parameter must be passed, handling all the work for us (doc).


                                                                                                                                        With the diverging strategy, all negative values are located under the 0 baseline.


                                                                                                                                        Let's recap the pros and cons of this diverging option:

                                                                                                                                        Pros

                                                                                                                                        • Easy to read the value of each item
                                                                                                                                        • Obvious what's negative and what's positive

                                                                                                                                        Cons

                                                                                                                                        • Impossible to know the total value of each stack
                                                                                                                                        • A series can jump from the bottom to the top of the chart and is thus hard to follow

                                                                                                                                        2️⃣ Stacked barplot with negative values: the overlapping strategy

                                                                                                                                        Another strategy can be applied to stack the items including negative values.

                                                                                                                                        Items can be added one by one, with rectangles going up when values are positive and going down when values are negative.

                                                                                                                                        stacked barplot with overlapping item does not work well

                                                                                                                                        Stacking items by overlapping the items on top of each other.


                                                                                                                                        It's important to understand that here, the item order is important. We will get very different results depending on the order since not all groups are visible.


                                                                                                                                        With the overlapping strategy items are drawn successively, going up and down and overlapping if necessary


                                                                                                                                        Let's recap the pros and cons of this diverging option:

                                                                                                                                        Pros

                                                                                                                                        • Depending on the group order, the Y value can reflect the sum of the items. But it's not guarantee.

                                                                                                                                        Cons

                                                                                                                                        • Groups overlap each other. Information is hidden. Chart is unreadable

                                                                                                                                        Conclusion

                                                                                                                                        In my opinion the first option (diverging) makes much more sense than the second one (overlapping). The cons are very limited:

                                                                                                                                        • It is true that the net total value is not available. But if that's what interests you, you don't have to split the dataset by subgroups, just create a line chart with a single line!
                                                                                                                                        • Having a group flipping from top to bottom is indeed annoying. However, the hover effect that is included allows to quickly see what happens for a specific group.

                                                                                                                                        It's also important to note that most dataviz tools choosed this approach. Here is an example using the same dataset using the ggplot2library (left) and data wrapper (right).


                                                                                                                                        stacked barplot with R and ggplot2stacked barplot with data wrapper

                                                                                                                                        Same dataset that includes negative values plotted with ggplot2 (left) and data wrapper (right)


                                                                                                                                        Last but not least, I really like this example by chartio that fixes the non available total issue by adding a line on top of the stacked barchart to show the total:


                                                                                                                                        stacked barplot with chartio

                                                                                                                                        Chartio displays the total of each timestamp using a line chart on top of the stacked items.




                                                                                                                                        Contact

                                                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                          -
                                                                                                                                          \ No newline at end of file +
                                                                                                                                          \ No newline at end of file diff --git a/streamchart.html b/streamchart.html index 04da4113..063f75e8 100644 --- a/streamchart.html +++ b/streamchart.html @@ -1,4 +1,4 @@ -Streamchart with React

                                                                                                                                          Streamchart

                                                                                                                                          Dataviz logo representing a Stream chart.

                                                                                                                                          A streamgraph is a variation of the more common stacked area chart. It rounds edges and displays areas around the central axis which gives a nice impression of flow.

                                                                                                                                          This section explains how to stack and smooth the data with d3.js, and render the shapes with react. It starts from the basic and goes until necessary customization like tooltips, hover effect, legend and annotation. Examples always come with editable sandboxes.

                                                                                                                                          Useful links

                                                                                                                                          The Data

                                                                                                                                          Most of the time the input dataset is an array where each item is an object.

                                                                                                                                          Each object provides information for a step on the X axis. It has a value like x or date that provides the exact position on the X axis. Then it has several numeric values, one for each group of the dataset.

                                                                                                                                          Here is a minimal example:

                                                                                                                                          const data = [
                                                                                                                                          +Streamchart with React

                                                                                                                                          Streamchart

                                                                                                                                          Dataviz logo representing a Stream chart.

                                                                                                                                          A streamgraph is a variation of the more common stacked area chart. It rounds edges and displays areas around the central axis which gives a nice impression of flow.

                                                                                                                                          This section explains how to stack and smooth the data with d3.js, and render the shapes with react. It starts from the basic and goes until necessary customization like tooltips, hover effect, legend and annotation. Examples always come with editable sandboxes.

                                                                                                                                          Useful links

                                                                                                                                          The Data

                                                                                                                                          Most of the time the input dataset is an array where each item is an object.

                                                                                                                                          Each object provides information for a step on the X axis. It has a value like x or date that provides the exact position on the X axis. Then it has several numeric values, one for each group of the dataset.

                                                                                                                                          Here is a minimal example:

                                                                                                                                          const data = [
                                                                                                                                             {
                                                                                                                                               x: 1,
                                                                                                                                               groupA: 38,
                                                                                                                                          @@ -100,4 +100,4 @@
                                                                                                                                           }

                                                                                                                                          I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                                          Hover effect

                                                                                                                                          It is pretty hard to follow the evolution of a specific group on a streamgraph.

                                                                                                                                          It is common to add an hover effect to the figure: hovering over a group will highlight it, making it easier to follow its evolution. Try it on the graph below:

                                                                                                                                          246810

                                                                                                                                          StreamGraph with hover effect that highlights a specific series

                                                                                                                                          There are various strategies to implement such an hover effect.

                                                                                                                                          Here, I suggest to do everything in css using pseudo classes, and targetting svg elements only. Basically, everything in the svg container will be dimmed (lower opacity and saturation) when the mouse goes over the chart. But the specific shape that is hovered over will keep its full opacity thanks to a more specific css selector.

                                                                                                                                          Hover effect is a big topic and I will post more about it soon!

                                                                                                                                          Know when

                                                                                                                                          Streamgraph inspiration

                                                                                                                                          If you're looking for inspiration to create your next Streamgraph, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                                          dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Streamgraph looks good!

                                                                                                                                          visit

                                                                                                                                          Streamgraph algorithm with transition

                                                                                                                                          Our streamgraph is renderer using a set of path. The d attribute of those paths provides the boundary coordinates of those paths.

                                                                                                                                          When a prop of the StreamGraph component updates, we might want to update the paths to represent the latest state of our application. It can be an update of the dataset, or an update of the function used to stack the data or smooth the area as below.

                                                                                                                                          It is possible to smoothly animate this transition thanks to react-spring.

                                                                                                                                          Offset typeCurve type
                                                                                                                                          246810

                                                                                                                                          Try d3.js various options to offset the data and smooth shapes. See a smooth transition between options.

                                                                                                                                          The animation suggested above is a bit tricky to implement. Indeed, we need to transition from paths that do not have the same number of edges. It is possible thanks to a library called flubber but definitely deserves its own blogpost.

                                                                                                                                          I'll publish a full blogpost on the topic soon!

                                                                                                                                          Get notified
                                                                                                                                          ToDofind why flubber does some weird interpolation in some cases

                                                                                                                                          Application

                                                                                                                                          The following chart is a real-life application of a streamgraph. It shows the evolution if the number of page-views for 5 tech websites in the last 7 years. My goal was to assess if the rise of chat-GPT had an impact on it.

                                                                                                                                          This interactive chart has several interesting features:

                                                                                                                                          • slider: you can control the displayed time-frame thanks to a slider.
                                                                                                                                          • inline legend: label of each series are written inline. A background proportional to their value provides additional insight.
                                                                                                                                          • hover effect: legend will be updated with precise values at the hovered timestamp.

                                                                                                                                          A customized streamgraph built with React and D3.js. It has inline legends, slider to control timeframe, hover effect and more.

                                                                                                                                          Contact

                                                                                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                            -
                                                                                                                                            \ No newline at end of file +
                                                                                                                                            \ No newline at end of file diff --git a/subscribe.html b/subscribe.html index c8035434..b5a65985 100644 --- a/subscribe.html +++ b/subscribe.html @@ -1,7 +1,7 @@ -Subscribe

                                                                                                                                            Want more graph examples?


                                                                                                                                            The react graph gallery is a project that just started! If you want to know when a new section gets released, follow me on twitter or subscribe below!

                                                                                                                                            +Subscribe

                                                                                                                                            Want more graph examples?


                                                                                                                                            The react graph gallery is a project that just started! If you want to know when a new section gets released, follow me on twitter or subscribe below!

                                                                                                                                              Contact

                                                                                                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                -
                                                                                                                                                \ No newline at end of file +
                                                                                                                                                \ No newline at end of file diff --git a/timeseries.html b/timeseries.html index 2fb326ca..eb4aa8a9 100644 --- a/timeseries.html +++ b/timeseries.html @@ -1,4 +1,4 @@ -Timeseries| The React Graph Gallery

                                                                                                                                                Timeseries

                                                                                                                                                Dataviz logo representing a Time chart.

                                                                                                                                                This section does not target a specific chart type, even though timeseries are often represented as line charts or area charts.

                                                                                                                                                Instead, it provides a tips and tricks to deal with charts that represent the evolution in time of a numeric variable. For instance, it provides hints on how to deal with dates, how to pan on a chart and more

                                                                                                                                                Useful links

                                                                                                                                                Useful chart types

                                                                                                                                                This page is not about a specific chart type. Instead it provides hints on how to deal with time.

                                                                                                                                                Check the graph sections that are used to visualize timeseries below if there is a specific chart type you want to make.


                                                                                                                                                Picture of a simple heatmap made with react and d3.js

                                                                                                                                                Basic heatmap

                                                                                                                                                Most basic heatmap

                                                                                                                                                Picture of a very simple line chart made with react and d3

                                                                                                                                                Most basic line chart

                                                                                                                                                The most basic line chart one can make using d3 and react

                                                                                                                                                Picture of a basic streamgraph made using Reacrt and d3.js

                                                                                                                                                Basic Streamgraph

                                                                                                                                                Most basic streamgraph one can build using d3 and react

                                                                                                                                                The Date format

                                                                                                                                                The first struggle when dealing with timeseries is to work with the javascript Date format. A Date represents a single moment in time and is usually stored as a string in the input dataset.

                                                                                                                                                Here is an FAQ about the Date format. I constantly forget how this works and come back here for reference. Note that it heavily relies on the d3-time-format module that provides great helpers.

                                                                                                                                                Transform a string into a date

                                                                                                                                                In your dataset, the date of each data point is probably stored as a string, like 2015-06-01 for instance.

                                                                                                                                                In order to manipulate and plot those dates, you need to transform it into a javascript date format.

                                                                                                                                                // import the timeParse function from d3
                                                                                                                                                +Timeseries| The React Graph Gallery

                                                                                                                                                Timeseries

                                                                                                                                                Dataviz logo representing a Time chart.

                                                                                                                                                This section does not target a specific chart type, even though timeseries are often represented as line charts or area charts.

                                                                                                                                                Instead, it provides a tips and tricks to deal with charts that represent the evolution in time of a numeric variable. For instance, it provides hints on how to deal with dates, how to pan on a chart and more

                                                                                                                                                Useful links

                                                                                                                                                Useful chart types

                                                                                                                                                This page is not about a specific chart type. Instead it provides hints on how to deal with time.

                                                                                                                                                Check the graph sections that are used to visualize timeseries below if there is a specific chart type you want to make.


                                                                                                                                                Picture of a simple heatmap made with react and d3.js

                                                                                                                                                Basic heatmap

                                                                                                                                                Most basic heatmap

                                                                                                                                                Picture of a very simple line chart made with react and d3

                                                                                                                                                Most basic line chart

                                                                                                                                                The most basic line chart one can make using d3 and react

                                                                                                                                                Picture of a basic streamgraph made using Reacrt and d3.js

                                                                                                                                                Basic Streamgraph

                                                                                                                                                Most basic streamgraph one can build using d3 and react

                                                                                                                                                The Date format

                                                                                                                                                The first struggle when dealing with timeseries is to work with the javascript Date format. A Date represents a single moment in time and is usually stored as a string in the input dataset.

                                                                                                                                                Here is an FAQ about the Date format. I constantly forget how this works and come back here for reference. Note that it heavily relies on the d3-time-format module that provides great helpers.

                                                                                                                                                Transform a string into a date

                                                                                                                                                In your dataset, the date of each data point is probably stored as a string, like 2015-06-01 for instance.

                                                                                                                                                In order to manipulate and plot those dates, you need to transform it into a javascript date format.

                                                                                                                                                // import the timeParse function from d3
                                                                                                                                                 import { timeParse } from "d3";
                                                                                                                                                 
                                                                                                                                                 // create a time parser function that works for our time format
                                                                                                                                                @@ -41,4 +41,4 @@
                                                                                                                                                   .range([0, width]);

                                                                                                                                                Following this code block xScale is a function. You give it a Date, it returns a position in pixels

                                                                                                                                                You can finally use this scale to draw the X axis using your favorite method:

                                                                                                                                                • create your own react component
                                                                                                                                                • call d3.axisBottom() in a useEffect

                                                                                                                                                I'm preparing a full post on axes with d3 and react, subscribe to the newsletter if you want to be notified when it's out!

                                                                                                                                                More on axes

                                                                                                                                                A basic time axis build with d3.js and react.

                                                                                                                                                d3 is very smart at picking the right label format. If you're dealing with a very long period of time (years), it will display years. If you're dealing with a month, it will display days. And so on. It is very convenient. The logic controlling this formatting is provided here.

                                                                                                                                                Note that you can customize how dates are formatted along the X axis thanks to the tickFormat function.

                                                                                                                                                Line chart application

                                                                                                                                                If you already understood the content of the line chart section of the gallery, you just have to use a scaleTime instead of a scaleLinear and that's it, you have your first timeseries visualization. 😋

                                                                                                                                                Line chart section

                                                                                                                                                A first timeseries line chart made thanks to the scaleTime function of d3.

                                                                                                                                                Synchronized cursor

                                                                                                                                                Another pretty common task when dealing with timeseries is to add a synchronized cursor on all charts.

                                                                                                                                                This makes the dashboard more insightful: hovering over an interesting part of a chart reveals where the timestamp is localized on other charts instantly.

                                                                                                                                                The implementation required to build a shared state between all charts of the webpage. Hovering a specific chart will update this state and thus update all other plots. This process is extensively described in this synchronized cursor for timeseries post.

                                                                                                                                                Read full post

                                                                                                                                                Hover over a chart to see a cursor on both of them, easing the time comparison.

                                                                                                                                                On top of the generic use-cases presented above, here is a gallery of chart examples involving timeseries visualization:


                                                                                                                                                Picture of a timeseries chart made with React and D3.js: scatterplot and line chart in use.

                                                                                                                                                Timeseries with moving average

                                                                                                                                                A scatterplot used for timeseries, with the moving average shown as a line chart on top.

                                                                                                                                                Contact

                                                                                                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                  -
                                                                                                                                                  \ No newline at end of file +
                                                                                                                                                  \ No newline at end of file diff --git a/treemap.html b/treemap.html index dba23a7c..48bdf4aa 100644 --- a/treemap.html +++ b/treemap.html @@ -1,4 +1,4 @@ -Treemap with React

                                                                                                                                                  Treemap

                                                                                                                                                  Dataviz logo representing a Tree chart.

                                                                                                                                                  A treemap displays a hierarchical dataset (a tree) as a set of rectangles. Rectangle sizes are proportional to their numeric value.

                                                                                                                                                  d3.js has some handy functions to compute the rectangle positions. React becomes useful to render those rectangles, animate transitions and more. This post explains how to make those 2 tools work together to build a Treemap component.

                                                                                                                                                  Useful links

                                                                                                                                                  The Data

                                                                                                                                                  The dataset describes a hierarchy using a recursive structure. Each item in this structure is called a node, the lowest nodes of the hierarchy being called leaves.

                                                                                                                                                  The dataset is an object that has at least 3 properties: name, value and children.children is an array of nodes that have this structure too.


                                                                                                                                                  Here is a minimal example of the data structure:

                                                                                                                                                  const data = {
                                                                                                                                                  +Treemap with React

                                                                                                                                                  Treemap

                                                                                                                                                  Dataviz logo representing a Tree chart.

                                                                                                                                                  A treemap displays a hierarchical dataset (a tree) as a set of rectangles. Rectangle sizes are proportional to their numeric value.

                                                                                                                                                  d3.js has some handy functions to compute the rectangle positions. React becomes useful to render those rectangles, animate transitions and more. This post explains how to make those 2 tools work together to build a Treemap component.

                                                                                                                                                  Useful links

                                                                                                                                                  The Data

                                                                                                                                                  The dataset describes a hierarchy using a recursive structure. Each item in this structure is called a node, the lowest nodes of the hierarchy being called leaves.

                                                                                                                                                  The dataset is an object that has at least 3 properties: name, value and children.children is an array of nodes that have this structure too.


                                                                                                                                                  Here is a minimal example of the data structure:

                                                                                                                                                  const data = {
                                                                                                                                                     type: 'node',
                                                                                                                                                     name: "boss",
                                                                                                                                                     value: 2300,
                                                                                                                                                  @@ -39,4 +39,4 @@
                                                                                                                                                   }
                                                                                                                                                  Mark90Robert12Emily34Marion53Nicolas98Malki22Djé12Mélanie45Einstein76

                                                                                                                                                  Treemap with 2 levels of hierarchy and a color scale, made with react and d3.js.

                                                                                                                                                  Hover effect

                                                                                                                                                  Adding a hover effect to your treemap is a nice polish detail. Here I suggest to highlight the slice that is hovered over by dimming all the other slices.

                                                                                                                                                  There are several strategies available to implement such an effect. One can rely on css pseudo classes only, or add a css class using javascript and the onMouseEnter event. It's also possible to rely on an animation library like react-spring.

                                                                                                                                                  I'm preparing a full section on the topic. You can subscribe to my dataviz-universe newsletter to know when it will be ready. Meanwhile, there is a code sandbox waiting for you below to reveal the code of this example.

                                                                                                                                                  Subscribe
                                                                                                                                                  Mark90Robert12Emily34Marion53Nicolas98Malki22Djé12Mélanie45Einstein76

                                                                                                                                                  Hover over a group on the treemap to see the other groups fading.




                                                                                                                                                  Contact

                                                                                                                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                    -
                                                                                                                                                    \ No newline at end of file +
                                                                                                                                                    \ No newline at end of file diff --git a/typescript-d3-axis.html b/typescript-d3-axis.html index 4023b995..24eff7ea 100644 --- a/typescript-d3-axis.html +++ b/typescript-d3-axis.html @@ -1,4 +1,4 @@ -Dealing with d3 axis in a typescript environment

                                                                                                                                                    D3 axis and typescript

                                                                                                                                                    Dataviz logo representing a Lollipop chart.

                                                                                                                                                    What is typescript and why it is awesome to use it. How are d3 functions typed.

                                                                                                                                                    A few examples on how it works.

                                                                                                                                                    Useful links

                                                                                                                                                    Most basic linear axis

                                                                                                                                                    A graph axis is based on a scale. But what is a scale? This is how thed3-scale module describes it:

                                                                                                                                                    Scales are a convenient abstraction for a fundamental task in visualization: mapping a dimension of abstract data to a visual representation

                                                                                                                                                    So basically a scale is a function. You provide it with an input like the value of a data point, and it returns another value like a position in pixel.

                                                                                                                                                    Here is a very basic implementation of a scale using the scaleLinear function of d3.

                                                                                                                                                    const xScale = d3.scaleLinear()
                                                                                                                                                    +Dealing with d3 axis in a typescript environment

                                                                                                                                                    D3 axis and typescript

                                                                                                                                                    Dataviz logo representing a Lollipop chart.

                                                                                                                                                    What is typescript and why it is awesome to use it. How are d3 functions typed.

                                                                                                                                                    A few examples on how it works.

                                                                                                                                                    Useful links

                                                                                                                                                    Most basic linear axis

                                                                                                                                                    A graph axis is based on a scale. But what is a scale? This is how thed3-scale module describes it:

                                                                                                                                                    Scales are a convenient abstraction for a fundamental task in visualization: mapping a dimension of abstract data to a visual representation

                                                                                                                                                    So basically a scale is a function. You provide it with an input like the value of a data point, and it returns another value like a position in pixel.

                                                                                                                                                    Here is a very basic implementation of a scale using the scaleLinear function of d3.

                                                                                                                                                    const xScale = d3.scaleLinear()
                                                                                                                                                       .domain([0, 10]) // data can go from 0 to 10
                                                                                                                                                       .range([0, width]); // it will result in a value that goes from 0 to width
                                                                                                                                                     
                                                                                                                                                    @@ -23,4 +23,4 @@
                                                                                                                                                       .range(COLORS);

                                                                                                                                                    You can see how scaleOrdinal type implementation

                                                                                                                                                    Contact

                                                                                                                                                    👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                    Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                      -
                                                                                                                                                      \ No newline at end of file +
                                                                                                                                                      \ No newline at end of file diff --git a/violin-plot.html b/violin-plot.html index 9eeaeb65..09879f5a 100644 --- a/violin-plot.html +++ b/violin-plot.html @@ -1,4 +1,4 @@ -Violin plot with React

                                                                                                                                                      Violin plot

                                                                                                                                                      Dataviz logo representing a Violin chart.

                                                                                                                                                      A violin chart displays the distribution of a numeric variable, often for several groups of a dataset. This page is a step-by-step guide on how to build your own violin component for the web, using React and D3.js.

                                                                                                                                                      It starts by describing how the data should be organized and how to initialize the violin component. D3.js is then used to split the data in buckets thanks to the bin() function. It then adds smoothing to it with curve(). React is finally used to render the violin using a SVG path.

                                                                                                                                                      Useful links

                                                                                                                                                      The Data 💾

                                                                                                                                                      The dataset used to build a violin chart is usually an array of object. For each object, a name property provides the group name, and a value property provides the numeric value. It looks like this:

                                                                                                                                                      const data = [
                                                                                                                                                      +Violin plot with React

                                                                                                                                                      Violin plot

                                                                                                                                                      Dataviz logo representing a Violin chart.

                                                                                                                                                      A violin chart displays the distribution of a numeric variable, often for several groups of a dataset. This page is a step-by-step guide on how to build your own violin component for the web, using React and D3.js.

                                                                                                                                                      It starts by describing how the data should be organized and how to initialize the violin component. D3.js is then used to split the data in buckets thanks to the bin() function. It then adds smoothing to it with curve(). React is finally used to render the violin using a SVG path.

                                                                                                                                                      Useful links

                                                                                                                                                      The Data 💾

                                                                                                                                                      The dataset used to build a violin chart is usually an array of object. For each object, a name property provides the group name, and a value property provides the numeric value. It looks like this:

                                                                                                                                                      const data = [
                                                                                                                                                         { name: "A", value: 10.7577 },
                                                                                                                                                         { name: "A", value: 19.9273 },
                                                                                                                                                         { name: "B", value: 13.8917 },
                                                                                                                                                      @@ -144,7 +144,7 @@
                                                                                                                                                         }, []);
                                                                                                                                                       
                                                                                                                                                         return dimensions;
                                                                                                                                                      -}

                                                                                                                                                      I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                                                      Violin inspiration

                                                                                                                                                      If you're looking for inspiration to create your next Violin, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                                                      dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Violin looks good!

                                                                                                                                                      visit

                                                                                                                                                      Effect of the bucket size

                                                                                                                                                      It's important to understand that under the hood, a violin shape is nothing else than a smoothed histogram. You can use the sentence below the following chart to switch from one to the other and understand the tight connection.

                                                                                                                                                      As a result the violin plot suffers the same flaw as the histogram: its shape highly depends on the number of buckets used for the computation. Use the slider to see the impact of the target bucket number on the violin shape.

                                                                                                                                                      Each violin shape based on approx. 5 buckets
                                                                                                                                                      -10-505101520253035ABCD
                                                                                                                                                      You can use smoothing or steps.

                                                                                                                                                      Interactive violin plot: try to toggle smoothing and change the number of buckets in use.

                                                                                                                                                      Note: the requested number of buckets is a target. The bin() function of d3 will create smart buckets around this value.

                                                                                                                                                      Comparison with a boxplot

                                                                                                                                                      The boxplot is an alternative to represent the exact same kind of dataset. You can visit the boxplot section of the gallery or play with the interactive example below to understand how those 2 options behave on the same dataset.

                                                                                                                                                      Use the slider to switch from the violin to the box. Play with the sentence below the chart to toggle smoothing on the violin.

                                                                                                                                                      -10-505101520253035ABCD
                                                                                                                                                      You can use smoothing or steps.

                                                                                                                                                      Compare how violins and boxplots look like for the same dataset.

                                                                                                                                                      Animation

                                                                                                                                                      Animating the transition between 2 datasets, or from/to another chart type is hard, because the violin plot is based on SVG path. It is doable though and I'm working on a specific post that will be released soon.

                                                                                                                                                      schema explaining how histogram buckets are created from the original dataset

                                                                                                                                                      Using shape morphism to transition between a boxplot and a violin plot. Blog post coming soon!

                                                                                                                                                      If you're interested in this topic, feel free to subscribe to the newsletter to be informed when this post is available!

                                                                                                                                                      Contact

                                                                                                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                      +}

                                                                                                                                                      I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                                                      Violin inspiration

                                                                                                                                                      If you're looking for inspiration to create your next Violin, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                                                      dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Violin looks good!

                                                                                                                                                      visit

                                                                                                                                                      Effect of the bucket size

                                                                                                                                                      It's important to understand that under the hood, a violin shape is nothing else than a smoothed histogram. You can use the sentence below the following chart to switch from one to the other and understand the tight connection.

                                                                                                                                                      As a result the violin plot suffers the same flaw as the histogram: its shape highly depends on the number of buckets used for the computation. Use the slider to see the impact of the target bucket number on the violin shape.

                                                                                                                                                      Each violin shape based on approx. 5 buckets
                                                                                                                                                      -10-505101520253035ABCD
                                                                                                                                                      You can use smoothing or steps.

                                                                                                                                                      Interactive violin plot: try to toggle smoothing and change the number of buckets in use.

                                                                                                                                                      Note: the requested number of buckets is a target. The bin() function of d3 will create smart buckets around this value.

                                                                                                                                                      Comparison with a boxplot

                                                                                                                                                      The boxplot is an alternative to represent the exact same kind of dataset. You can visit the boxplot section of the gallery or play with the interactive example below to understand how those 2 options behave on the same dataset.

                                                                                                                                                      Use the slider to switch from the violin to the box. Play with the sentence below the chart to toggle smoothing on the violin.

                                                                                                                                                      -10-505101520253035ABCD
                                                                                                                                                      You can use smoothing or steps.

                                                                                                                                                      Compare how violins and boxplots look like for the same dataset.

                                                                                                                                                      Animation

                                                                                                                                                      Animating the transition between 2 datasets, or from/to another chart type is hard, because the violin plot is based on SVG path. It is doable though and I'm working on a specific post that will be released soon.

                                                                                                                                                      schema explaining how histogram buckets are created from the original dataset

                                                                                                                                                      Using shape morphism to transition between a boxplot and a violin plot. Blog post coming soon!

                                                                                                                                                      If you're interested in this topic, feel free to subscribe to the newsletter to be informed when this post is available!

                                                                                                                                                      Contact

                                                                                                                                                      👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                      Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                        -
                                                                                                                                                        \ No newline at end of file +
                                                                                                                                                        \ No newline at end of file diff --git a/viz-from-the-future.html b/viz-from-the-future.html index aacbd560..8974b94c 100644 --- a/viz-from-the-future.html +++ b/viz-from-the-future.html @@ -1,7 +1,7 @@ -How to build a responsive chart with React and d3.js

                                                                                                                                                        A viz from the future


                                                                                                                                                        Building a viz from the future?

                                                                                                                                                        What is a viz from the future?

                                                                                                                                                        You know minority report?

                                                                                                                                                        This video is what I mean

                                                                                                                                                        • Dark mode
                                                                                                                                                        • Flashy, Neon color
                                                                                                                                                        • Glowing shapes
                                                                                                                                                        • Gradient
                                                                                                                                                        • Animation

                                                                                                                                                        glowing div with box shadow

                                                                                                                                                        Can be done with overlapping box-shadow.

                                                                                                                                                        Official doc is here

                                                                                                                                                        A box shadow is described by X and Y offsets relative to the element, blur and spread radius, and color.

                                                                                                                                                        With inset, I can put the shadow inside of the shape

                                                                                                                                                        shadows are drawn one of top of each other.

                                                                                                                                                        But there is an issue: box-shadow does not exist for svg.

                                                                                                                                                        Glowing SVG with

                                                                                                                                                        How can I do.

                                                                                                                                                        Two main ways: svg filter and css filter

                                                                                                                                                        css filter is easy, it works like box-shadows that is described above

                                                                                                                                                        BUT, it does not work with inset, so we need another solution for inside shadow.

                                                                                                                                                        But there is an issue: how to do for canvas




                                                                                                                                                        Contact

                                                                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                        +How to build a responsive chart with React and d3.js

                                                                                                                                                        A viz from the future


                                                                                                                                                        Building a viz from the future?

                                                                                                                                                        What is a viz from the future?

                                                                                                                                                        You know minority report?

                                                                                                                                                        This video is what I mean

                                                                                                                                                        • Dark mode
                                                                                                                                                        • Flashy, Neon color
                                                                                                                                                        • Glowing shapes
                                                                                                                                                        • Gradient
                                                                                                                                                        • Animation

                                                                                                                                                        glowing div with box shadow

                                                                                                                                                        Can be done with overlapping box-shadow.

                                                                                                                                                        Official doc is here

                                                                                                                                                        A box shadow is described by X and Y offsets relative to the element, blur and spread radius, and color.

                                                                                                                                                        With inset, I can put the shadow inside of the shape

                                                                                                                                                        shadows are drawn one of top of each other.

                                                                                                                                                        But there is an issue: box-shadow does not exist for svg.

                                                                                                                                                        Glowing SVG with

                                                                                                                                                        How can I do.

                                                                                                                                                        Two main ways: svg filter and css filter

                                                                                                                                                        css filter is easy, it works like box-shadows that is described above

                                                                                                                                                        BUT, it does not work with inset, so we need another solution for inside shadow.

                                                                                                                                                        But there is an issue: how to do for canvas




                                                                                                                                                        Contact

                                                                                                                                                        👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                        Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                          Contact

                                                                                                                                                          👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                          Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                            -
                                                                                                                                                            \ No newline at end of file +
                                                                                                                                                            \ No newline at end of file diff --git a/voronoi.html b/voronoi.html index 113a82cd..562842f5 100644 --- a/voronoi.html +++ b/voronoi.html @@ -1,4 +1,4 @@ -How to build a Voronoi Diagram with React and D3.

                                                                                                                                                            Voronoi Diagram

                                                                                                                                                            Dataviz logo representing a Voronoi chart.

                                                                                                                                                            A voronoi diagram is a partition of a plane into regions called voronoi cells. A voronoi cell consists of every point in the plane whose distance to its linked data point is less than or equal to its distance to any other data point.

                                                                                                                                                            This page is a step-by-step guide on how to build your own voronoi diagram for the web, using React and D3.js.

                                                                                                                                                            It starts by describing how the data should be organized and explains how to run and plot a Delaunay triangulation. Based on this, it explains how to build the voronoi diagram. Finally it shows how this can be used for real life application like for a scatterplot or to build a voronoi treemap.

                                                                                                                                                            Useful links

                                                                                                                                                            The Data

                                                                                                                                                            Everything starts with a set of two-dimensional points. Their coordinates are available with x representing the position on the horizontal axis and y being for the vertical axis.

                                                                                                                                                            As a result, the dataset is pretty simple: an array of objects that looks like this:


                                                                                                                                                            export const data = [
                                                                                                                                                            +How to build a Voronoi Diagram with React and D3.

                                                                                                                                                            Voronoi Diagram

                                                                                                                                                            Dataviz logo representing a Voronoi chart.

                                                                                                                                                            A voronoi diagram is a partition of a plane into regions called voronoi cells. A voronoi cell consists of every point in the plane whose distance to its linked data point is less than or equal to its distance to any other data point.

                                                                                                                                                            This page is a step-by-step guide on how to build your own voronoi diagram for the web, using React and D3.js.

                                                                                                                                                            It starts by describing how the data should be organized and explains how to run and plot a Delaunay triangulation. Based on this, it explains how to build the voronoi diagram. Finally it shows how this can be used for real life application like for a scatterplot or to build a voronoi treemap.

                                                                                                                                                            Useful links

                                                                                                                                                            The Data

                                                                                                                                                            Everything starts with a set of two-dimensional points. Their coordinates are available with x representing the position on the horizontal axis and y being for the vertical axis.

                                                                                                                                                            As a result, the dataset is pretty simple: an array of objects that looks like this:


                                                                                                                                                            export const data = [
                                                                                                                                                               { x: 10, y: 10 },
                                                                                                                                                               { x: 4, y: 4 },
                                                                                                                                                               { x: 35, y: 90 },
                                                                                                                                                            @@ -39,4 +39,4 @@
                                                                                                                                                             }

                                                                                                                                                            I'm in the process of writing a complete blog post on the topic. Subscribe to the project to know when it's ready.




                                                                                                                                                            Voronoi inspiration

                                                                                                                                                            If you're looking for inspiration to create your next Voronoi, note that dataviz-inspiration.com showcases many examples. Definitely the best place to get ... inspiration!

                                                                                                                                                            dataviz-inspiration.com showcases hundreds of stunning dataviz projects. Have a look to get some ideas on how to make your Voronoi looks good!

                                                                                                                                                            visit

                                                                                                                                                            Closest point detection

                                                                                                                                                            The voronoi diagram is commonly used to detect the closest data point of the mouse position. This can be pretty useful to highlight the closest point without having to hover exactly over it.

                                                                                                                                                            In the example below, the closest dot will be highlighted with a red circle ⭕️ using the voronoi cells.


                                                                                                                                                            Use the voronoi algorithm to detect the closest point of the mouse position.

                                                                                                                                                            Variations

                                                                                                                                                            A glimpse of what it is possible to do using the voronoi diagram for data visualization.

                                                                                                                                                            Click on the overview below to get details and code.


                                                                                                                                                            gif of a scatterplot with voronoi diagram for closest point detection

                                                                                                                                                            Closest point detection with Voronoi

                                                                                                                                                            Using a voronoi diagram in the scatterplot background is a smart way to efficiently find the mouse closest point

                                                                                                                                                            ToDoAdd voronoi treemap example

                                                                                                                                                            Contact

                                                                                                                                                            👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                            Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                              -
                                                                                                                                                              \ No newline at end of file +
                                                                                                                                                              \ No newline at end of file diff --git a/what-is-a-color.html b/what-is-a-color.html index 832131e4..77d9ac50 100644 --- a/what-is-a-color.html +++ b/what-is-a-color.html @@ -1,7 +1,7 @@ -What is a color

                                                                                                                                                              What is a color


                                                                                                                                                              There are so many ways to define a color when talking with a computer. Let's take a tour and see what's the most appropriate in a dataviz point of view.

                                                                                                                                                              Color on screen

                                                                                                                                                              A computer screen is made of thousands of pixels.

                                                                                                                                                              Each pixel generates three colors of light (red, green, and blue) and the different colors we see are due to different combinations and intensities of these three primary colors.

                                                                                                                                                              red, green and blue are the primary colors.

                                                                                                                                                              The RGB color model

                                                                                                                                                              The color information for each pixel is typically stored in a 24-bit format: 8 bit per primary color. This is 2^8 = 256 possibilities for each primary color. This means more than 16M possible color variations for each pixel (256^3)!

                                                                                                                                                              The HSV, HSL and HSB color model

                                                                                                                                                              That's the famous color wheel you see in every color picker!


                                                                                                                                                              overview of color picker.me

                                                                                                                                                              On colorpicker.me you can define a color using its hue (vertical bar), its saturation (x axis of the square) and its lightness (vertical axis)

                                                                                                                                                              HSL stands for hue, saturation, lightness

                                                                                                                                                              HSV and HSB are the same and stand for hue, saturation, value or hue, saturation, brightness respectively.

                                                                                                                                                              But what does it even mean?

                                                                                                                                                              • Hue: the initial color. Between 0 and 360.
                                                                                                                                                              • Saturation: when closer to 100, the color shines. represents how “colorful” the color is. Intensity. Purity. When 0, you get grey
                                                                                                                                                              • Lighness, Value, Brightness

                                                                                                                                                              color cylinder of HSV

                                                                                                                                                              The color cylinder of HSV

                                                                                                                                                              There are an alternative to the RGB color model to more closely align with the way human vision perceives color-making attributes

                                                                                                                                                              Indeed, it allows us to describe meaningful relationships between colors. For instance, to create 2 complementary colors you can select 2 colors on the opposite side of the wheel, with same saturation and brithness. Same principle for analogous, monochrome palette and other famous combinations.

                                                                                                                                                              HSV is criticized. This is because in HSV the V (value) is just a measure for the physical lightness of color, but not for the perceived brightness. So 2 colors with the same value are not perceive with the same lightness by the Human Eye. There is a hue-dependency of brightness in this model.

                                                                                                                                                              Note: pastel color = high lightness and low saturation.

                                                                                                                                                              The CIELAB color model

                                                                                                                                                              Try to fix this difference between computer and human perception.

                                                                                                                                                              unintuitive to use to generate colors

                                                                                                                                                              cielab color spec

                                                                                                                                                              The cielab color space

                                                                                                                                                              The HCL color model

                                                                                                                                                              Stands for Hue-Chroma-Lightness. A cylindrical transformation of CIE Lab*

                                                                                                                                                              Luminance of a color

                                                                                                                                                              TODO

                                                                                                                                                              The Contrast Ratio

                                                                                                                                                              The Web Content Accessibility Guidelines (WCAG) include convenient quantitative recommendations for making a color accessible based on the minimum acceptable contrast of foreground against background.

                                                                                                                                                              Basically, you can compare the luminance of 2 colors and compute their contrast ratio. The luminance is computed using the amount of red, green and blue in it.

                                                                                                                                                              To see the exact formulas and compute the contrast ratio between 2 colors, see this notebook by Mike Bostock


                                                                                                                                                              contrast ratio calculator

                                                                                                                                                              A tool to compute the contrast ratio between 2 colors.

                                                                                                                                                              Note: the notebook provides the d3 code to compute this contrast ratio.




                                                                                                                                                              Contact

                                                                                                                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                              +What is a color

                                                                                                                                                              What is a color


                                                                                                                                                              There are so many ways to define a color when talking with a computer. Let's take a tour and see what's the most appropriate in a dataviz point of view.

                                                                                                                                                              Color on screen

                                                                                                                                                              A computer screen is made of thousands of pixels.

                                                                                                                                                              Each pixel generates three colors of light (red, green, and blue) and the different colors we see are due to different combinations and intensities of these three primary colors.

                                                                                                                                                              red, green and blue are the primary colors.

                                                                                                                                                              The RGB color model

                                                                                                                                                              The color information for each pixel is typically stored in a 24-bit format: 8 bit per primary color. This is 2^8 = 256 possibilities for each primary color. This means more than 16M possible color variations for each pixel (256^3)!

                                                                                                                                                              The HSV, HSL and HSB color model

                                                                                                                                                              That's the famous color wheel you see in every color picker!


                                                                                                                                                              overview of color picker.me

                                                                                                                                                              On colorpicker.me you can define a color using its hue (vertical bar), its saturation (x axis of the square) and its lightness (vertical axis)

                                                                                                                                                              HSL stands for hue, saturation, lightness

                                                                                                                                                              HSV and HSB are the same and stand for hue, saturation, value or hue, saturation, brightness respectively.

                                                                                                                                                              But what does it even mean?

                                                                                                                                                              • Hue: the initial color. Between 0 and 360.
                                                                                                                                                              • Saturation: when closer to 100, the color shines. represents how “colorful” the color is. Intensity. Purity. When 0, you get grey
                                                                                                                                                              • Lighness, Value, Brightness

                                                                                                                                                              color cylinder of HSV

                                                                                                                                                              The color cylinder of HSV

                                                                                                                                                              There are an alternative to the RGB color model to more closely align with the way human vision perceives color-making attributes

                                                                                                                                                              Indeed, it allows us to describe meaningful relationships between colors. For instance, to create 2 complementary colors you can select 2 colors on the opposite side of the wheel, with same saturation and brithness. Same principle for analogous, monochrome palette and other famous combinations.

                                                                                                                                                              HSV is criticized. This is because in HSV the V (value) is just a measure for the physical lightness of color, but not for the perceived brightness. So 2 colors with the same value are not perceive with the same lightness by the Human Eye. There is a hue-dependency of brightness in this model.

                                                                                                                                                              Note: pastel color = high lightness and low saturation.

                                                                                                                                                              The CIELAB color model

                                                                                                                                                              Try to fix this difference between computer and human perception.

                                                                                                                                                              unintuitive to use to generate colors

                                                                                                                                                              cielab color spec

                                                                                                                                                              The cielab color space

                                                                                                                                                              The HCL color model

                                                                                                                                                              Stands for Hue-Chroma-Lightness. A cylindrical transformation of CIE Lab*

                                                                                                                                                              Luminance of a color

                                                                                                                                                              TODO

                                                                                                                                                              The Contrast Ratio

                                                                                                                                                              The Web Content Accessibility Guidelines (WCAG) include convenient quantitative recommendations for making a color accessible based on the minimum acceptable contrast of foreground against background.

                                                                                                                                                              Basically, you can compare the luminance of 2 colors and compute their contrast ratio. The luminance is computed using the amount of red, green and blue in it.

                                                                                                                                                              To see the exact formulas and compute the contrast ratio between 2 colors, see this notebook by Mike Bostock


                                                                                                                                                              contrast ratio calculator

                                                                                                                                                              A tool to compute the contrast ratio between 2 colors.

                                                                                                                                                              Note: the notebook provides the d3 code to compute this contrast ratio.




                                                                                                                                                              Contact

                                                                                                                                                              👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                              Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                                Contact

                                                                                                                                                                👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                                Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                                  -
                                                                                                                                                                  \ No newline at end of file +
                                                                                                                                                                  \ No newline at end of file diff --git a/wordcloud.html b/wordcloud.html index ebb5e34c..d6000e71 100644 --- a/wordcloud.html +++ b/wordcloud.html @@ -1,4 +1,4 @@ -Wordcloud with React

                                                                                                                                                                  Wordcloud

                                                                                                                                                                  Dataviz logo representing a Wordcloud chart.

                                                                                                                                                                  This page explains how to build a wordcloud using react and d3.js. It uses the d3-cloud plugin to compute the position of each word, and render them with react.

                                                                                                                                                                  This section is rather short as I'm not a big fan of wordclouds. They can be quite misleading and you should consider building a barplot or a lollipop plot instead.

                                                                                                                                                                  Useful links
                                                                                                                                                                  This page uses the d3-cloud plugin that you can install in your project with npm install d3-cloud

                                                                                                                                                                  The Data

                                                                                                                                                                  The data is an array. Each item is an object describing a word. Its name is provided, together with a related value that will be used to size the word on the final figure.

                                                                                                                                                                  Note that you can add any additional property here, like a color, a font weight or anything else that you want to use to draw the word later on.

                                                                                                                                                                  const data = [
                                                                                                                                                                  +Wordcloud with React

                                                                                                                                                                  Wordcloud

                                                                                                                                                                  Dataviz logo representing a Wordcloud chart.

                                                                                                                                                                  This page explains how to build a wordcloud using react and d3.js. It uses the d3-cloud plugin to compute the position of each word, and render them with react.

                                                                                                                                                                  This section is rather short as I'm not a big fan of wordclouds. They can be quite misleading and you should consider building a barplot or a lollipop plot instead.

                                                                                                                                                                  Useful links
                                                                                                                                                                  This page uses the d3-cloud plugin that you can install in your project with npm install d3-cloud

                                                                                                                                                                  The Data

                                                                                                                                                                  The data is an array. Each item is an object describing a word. Its name is provided, together with a related value that will be used to size the word on the final figure.

                                                                                                                                                                  Note that you can add any additional property here, like a color, a font weight or anything else that you want to use to draw the word later on.

                                                                                                                                                                  const data = [
                                                                                                                                                                     { text: "hello", value: 12 },
                                                                                                                                                                     { text: "world", value: 2 },
                                                                                                                                                                   ];

                                                                                                                                                                  Most basic wordcloud with React and D3.js

                                                                                                                                                                  Everything starts by instantiating a wordcloud layout using thed3Cloud() function of the d3-cloud library.

                                                                                                                                                                  const layout = d3Cloud()
                                                                                                                                                                  @@ -11,4 +11,4 @@
                                                                                                                                                                     });

                                                                                                                                                                  This layout can then be called from a useEffect using layout.start(). The layout algorithm will loop through each word of the dataset and try to place them on the chart, avoiding overlaps with other words.

                                                                                                                                                                  Once the loop is over, the layout algorithm will produce a words object and provide it to the end() function. This function update a state that stores the position and feature of each word.

                                                                                                                                                                  It is thus possible to map through those word features and draw them using html, svg or canvas. Here is an example using HTML


                                                                                                                                                                  Most basic Wordcloud made with react and d3.js

                                                                                                                                                                  Todo: write better explanation
                                                                                                                                                                  Todo: the layout algorithm currently provides unperfect values, resulting in a lot of word overlaps. Please tell me if you find where the bug is.

                                                                                                                                                                  Warning

                                                                                                                                                                  Wordclouds are useful for quickly perceiving the most prominent terms. They are widely used in media and well understood by the public. However, they are criticized for 2 main reasons:

                                                                                                                                                                  • Area is a poor metaphor of a numeric value, it is hardly perceive by the human eye
                                                                                                                                                                  • Longer words appear bigger by construction

                                                                                                                                                                  To put it in a nutshell, wordclouds must be avoided. You can read more about that in data-to-viz. Why not consider a lollipop plot or a barplot instead?

                                                                                                                                                                  Contact

                                                                                                                                                                  👋 Hey, I'm Yan and I'm currently working on this project!

                                                                                                                                                                  Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!

                                                                                                                                                                    -
                                                                                                                                                                    \ No newline at end of file +
                                                                                                                                                                    \ No newline at end of file