This article gives a great intro to D3.js, and I'll be looking into it more. A colleague also recently showed me Dash by Plotly [0] which may be of interest to folks in a similar situation.
This article gives a great intro to D3.js, and I'll be looking into it more. A colleague also recently showed me Dash by Plotly [0] which may be of interest to folks in a similar situation.
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.
There is no endless RAM, even for browsers :)
DOM-nodes are rather heavy compared to simple JS objects, so getting rid of them can bring some visualizations that are too heavy for the browser back into the realm of doable.
After that you have to optimize your other data-structures. If you have objects with many boolean fields or strings that are essentially used as enums, you can try to replace them with bit-fields, I read some library creators (BlueBird promise) got much performance gains with them.
As a non-javascript user who does data visualization, I would love to have some advice about which technology(es) to invest time into
Not even Leaflet? I've been using its R interface and I think it's fairly easy to pick up.
I know. I spend much of my days writing 'high performance' Python, and Python is still my go to tool for just about everything. Julia's big advantage is, kind of like Fortran vs C back in the day, that it's fast even if you're just writing things in the most obvious and natural way for your domain.