Hi Jonas,
Bokeh is actually two libraries, the python "bokeh" module and a JavaScript library, BokehJS. When you make a plot with Bokeh (python), you are actually constructing a declarative JSON representation of your visualization, and shipping it to BokehJS to be interpreted and displayed. But this means normally you have to ship all the data ahead of time. We can't do things like scale-dependent re-sampling and aggregation automatically the browser using pandas, because your browser can't run python code. To accomplish that kind of functionality, there are basically two options
* Do it in JavaScript
* Use a Bokeh Server to respond to range updates with real python code
The downside to "doing it in JS" is that BokehJS is already a large library by JS standards. We can't continually bloat core BokehJS by adding every possible imaginable feature, or it will become unusable. On the other hand, it is now possible to extend Bokeh and BokehJS with custom user models, so something like this might make a prime candidate for that. In fact I believe some folks have already made custom models to support scale-dependent downsampling.
Certainly a Bokeh app is also a reasonable approach, but that's something a user would write because the user knows what kind of downsampling or refined is appropriate to the actual data and use case.
If your data is very large, and you want things like automatic progressive refinement and visual queries across large scales, you might want to look into the related (OSS) DataShader project, that integrates closely with Bokeh:
GitHub - holoviz/datashader: Quickly and accurately render even the largest data.
http://datashader.readthedocs.io/en/latest/
http://go.continuum.io/datashader/
Last link is a webinar behind a small questionnaire.
Thanks,
Bryan
···
On Jun 1, 2016, at 10:30 AM, Jonas Haag <jonas.haag@cashlink.io> wrote:
On 01 Jun 2016, at 17:23, Aaron Goldenberg <aaron@aiutoplan.com> wrote:
We are telling you to separate the tasks of data munging and plotting
Understood, I’m just wondering if this doesn’t actually belong to the plotting component? What if you want to zoom the data further than the aggregation date range? If I understand things correctly I have to decide beforehand what X axis ranges are likely to be viewed? (If my aggregation interval is too small, the plot will be difficult to read; if it is too large, some details will be missing if zoomed in far enough.)
Jonas
--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4FA2E4F3-832D-427D-ACF7-828D897A1B54%40cashlink.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.