Line Chart using React.js d3.js & TypeScript with the help of d3.bisector interaction — Part I

Eli Elad Elrom
Master React
Published in
7 min readJul 1, 2021


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


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.