I have a problem regarding filtering the data in multiple stages and rendering the filtered dataframes.
To put things as simply as possible I have:
- 2 range based filters that span from 0 - 100
- Individual graph dropdown selections for selecting the X-axis categories
- Button selections for selecting segmentation types for the data
- Currently i have a single callback function which takes in as input all of these interactive components and then recalculates everything for the graphs to be drawn.
This means that if one of the range filters was selected - all the dataframes are recalculated based on those filters and then it recalculates for the individual graph dropdown selections and looks for button selections
- All of the dataframes have to be recalculated for every single interactive component even if the change didn’t happen for the range sliders, but for example only a dropdown was selected to change a single graph’s X-axis categories
- https://dash.plot.ly/sharing-data-between-callbacks Example 3 is something that seems to address this problem of only computing the large data once and then passing it to all the individual callback functions for individual graphs to use this computed dataset without having to recalculate.
- This solution doesn’t work when you have something like a range slider (or even worse - multiple range sliders) which means that the different possibilities of input values are insanely large (lets consider it infinite) because you cannot cache every single possible filtering variation. The 4 datasets are roughly 100MB combined.
Is there a way to share data to other callbacks without having to cache it in hope that sometime in the future the same filtering combination will be applied and the dataframes will just be returned from memory instead of recalculating?
Thanks for any tips regarding this, it’s making my head explode after multiple days of trial and error