-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Improve perfomance of extremely large datasets #5641
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks for this issue! We'd love any help to improve performance (in a backwards-compatible way) anywhere in the library. One quick note re the code above is that you're using the |
Thanks for the recommendation! When using It'd still be nice to have faster hover though. Do you have any preferred solution? |
Following up on this. Is there a straighforward way to perform dynamic downsampling depending on zoom range ? So far, This has been mentioned in thread #145 but not yet solved as far as I know. Would appreciate any lead on this ! 🙏 |
For extremely large datasets it would be ideal if data could be provided on demand, so you don't end up downloading GBs of data to the client. There is no use of having more data points than there are pixels on the screen. |
Hi, We created the functionality that @szkjn states, available for |
Hi - we are trying to tidy up the stale issues and PRs in Plotly's public repositories so that we can focus on things that are still important to our community. Since this one has been sitting for several years, I'm going to close it; if it is still a concern, please add a comment letting us know what recent version of our software you've checked it with so that I can reopen it and add it to our backlog. Thanks for your help - @gvwilson |
When I search around for plotting libraries for a large number of data points, people are talking 50k, I'm talking 10M. I made a simple React demo that generates 10 random sinusoids of 1M points each. 10 * 100k works fine, but 10 * 1M becomes unusable.
I did a bit of profiling, and there are two issues. The first on is relatively simple, and the comment already describes what needs to be done to make hovering over the plot not lag because it's looping over every single data point.
plotly.js/src/components/fx/helpers.js
Lines 59 to 62 in 623fcd1
The second issue seems to be just the drawing of the plot itself after a drag or zoom action. It spends all its time in
plot
,plotOne
andlinePoints
.What's interesting is that even if you zoom in, where it would only have to draw a small subset of the line, it's still just as slow.
plotly.js/src/traces/scatter/line_points.js
Line 346 in 623fcd1
So it seems like both problems could be solved with some sort of index to avoid looping over all the datapoints. Some suggestions to jumpstart the discussion:
If I end up using Plotly in production I'd be happy to try and contribute towards this, but for now just some suggestions to see how the maintainers feel about the issue and what their preferred approach would be.
The text was updated successfully, but these errors were encountered: