Line Chart using React.js d3.js & TypeScript with the help of d3.bisector interaction — Part I
To create interactivity of the mouse following the plotted data there is a need to do a calculation of the closest point to the mouse. Luckily, d3 has a method d3.bisector that can help us with these calculations. In this two-part tutorial, I will show you how to work with d3.bisector.
In this first part, part one, I will be working with two linear scale values as the metric and in part two I will be working with value and time metrics using d3.bisector.
You can see the final result of this tutorial below;
Setting up your project
I will be using CRA (SPA) using the MHL template to get TS, SCSS, formatting, templates, linting, etc.
$ yarn create react-app bisector --template must-have-libraries
Add d3, d3-cloud and types;
$ yarn add d3 @types/d3
data.csv
A good place to start when working with charts is from the data. The data is made out of three metrics: x, y values. We also have the date that it’s not being using in our code for now.
/public/data/line.csv
x,y,date
1,0.03,1/1/2021
2,0.04,1/2/2021
3,0.06,1/3/2021…