Canvas is way more performant than SVG for a lot of shapes, since they don't have the overhead of a DOM node.
But in general, you want to work outside of the browser if you have that much data. What I'll usually do is either:
- write a python script to process my data and use d3 for the final visualization, or
- have an API that returns a sliced portion of the data and create an interface that will request different sliced datasets when interacting with filters, controls, etc.
it hits two endpoints, which return basically the maximum amount of data you can expect a browser to handle (the massive dataset is processed elsewhere). You could create an endpoint to return different views when you click on, eg, a different date, although then the user would have to wait for the data to load.
https://wattenberger.com/blog/d3#drawing-svg-shapes
Canvas is way more performant than SVG for a lot of shapes, since they don't have the overhead of a DOM node.
But in general, you want to work outside of the browser if you have that much data. What I'll usually do is either:
- write a python script to process my data and use d3 for the final visualization, or
- have an API that returns a sliced portion of the data and create an interface that will request different sliced datasets when interacting with filters, controls, etc.
This election dashboard is a good example:
https://currents.parsely.com/election
it hits two endpoints, which return basically the maximum amount of data you can expect a browser to handle (the massive dataset is processed elsewhere). You could create an endpoint to return different views when you click on, eg, a different date, although then the user would have to wait for the data to load.